「設定 - SUSE Linux」の版間の差分
233行目: | 233行目: | ||
または | または | ||
sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/ # SUSE 15.2 | sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/ # SUSE 15.2 | ||
<br><br> | <br><br> | ||
2021年5月24日 (月) 10:03時点における版
概要
SLE 15およびopenSUSE Leap 15.xをインストールした後に初期設定として様々なことを実行する必要がある。
ここでは、推奨事項のリストを記載する。
ブータブルUSBの作成
SUSEのISOファイルをダウンロードした後、SUSEをインストールするために、ブータブルイメージを作成する必要がある。
ブータブルストレージを作成するには、balenaEtcher、ventoy、dd
コマンドを使用する。
ブータブルイメージを作成するストレージの場所
ストレージをシステムに接続する。
ブータブルイメージを作成するストレージの場所を確認するには、lsblk
コマンドまたはfdisk
コマンドを使用する。
以下の例では、/dev/sdcストレージの/dev/sdc1パーティションにブータブルイメージを作成する。
sudo fdisk -l # 実行例 ディスク /dev/sdc: 14.33 GiB, 15376318464 バイト, 30031872 セクタ ディスクモデル デュアルドライブ 単位:1 * 512 = 512バイトのセクター セクターサイズ(論理/物理):512バイト/512バイト I/Oサイズ(最小/最適):512バイト/512バイト ディスクラベルの種類:DOS ディスクの識別子 0x3f046fe3 デバイス ブート スタート エンド セクター サイズ Id タイプ /dev/sdc1 2048 30031871 30029824 14.3G c W95 FAT32 (LBA)
ブーターブルストレージの作成
ストレージの場所を確認した後、起動可能なイメージを作成する。
起動可能なイメージを作成するには、以下のコマンドを実行する。(このプロセスは、完了するまでに時間が掛かる)
sudo dd if=<ISOファイルのフルパス> of=/dev/<ストレージのパーティション名> status=progress
もし、SUSEのブータブルイメージの作成に問題がある場合は、以下の動画を閲覧すること。
https://www.youtube.com/watch?v=x65P-B3E_FY&t=56s
SUSEのインストール時の注意点
openSUSE / SLE
もし、インストーラがフリーズする場合は、以下の手順を実施する。
- DVD / BD / USBメモリからインストーラを起動する。
- インストール画面にて、インストーラの設定を行う。
- UEFIを使用してインストール
- インストール画面にある[Install]にフォーカスを移動して、[e]キーを押下する。
- grubエントリから、linuxefi/boot/vmlinuzxxxで始まる行を見つけて、splash=silentの後に
nomodeset
を追記する。 - [F10]キーを押下して、インストーラを起動する。
- レガシーBIOSを使用してインストール
- インストール画面にある[Install]にフォーカスを移動して、[F5]キーを押下する。
- 画面下にある[nomodeset]を選択して、[Enter]キーを押下する。
- [F5カーネル]に
nomodeset
と表示されていることを確認する。 - [Enter]キーを押下して、インストーラを起動する。
- UEFIを使用してインストール
- インストール完了後、リポジトリを更新してシステムをアップグレードする。
sudo zypper refresh && sudo zypper dup
- OSを再起動する。
- 再起動後、YaSTのブートローダから
nomodeset
の記述を削除する。
または、/etc/default/grubファイルから、GRUB_CMDLINE_LINUX_DEFAULT =
で始まる行を見つけて、nomodeset
の記述を削除する。
以下のコマンドを実行して、GRUBを更新する。sudo grub2-mkconfig -o /boot/grub2/grub.cfg
- OSを再起動する。
SLE - 拡張機能とモジュールの選択
ライセンスの登録後、SUSE Linux Enterpriseで使用可能なモジュールと拡張機能が一覧表示される。
モジュールとは、ユーザのニーズに合わせて製品を構築できるコンポーネントのことで、無償で提供されている。
拡張機能は、製品に特定の機能を追加する。
また、拡張機能はサブスクリプションとして提供されており、登録キーを必要とする。
提供されるモジュールまたは拡張機能は、インストールの最初のステップで選択した製品に応じて異なる。
モジュールとそのライフサイクルの説明については、モジュールを選択した後に表示されるテキストを参照すること。
詳細については、Modules and Extensions Quick Startおよびリリースノートを参照してください。
モジュールの選択はインストールのスコープに間接的な影響を与える。
インストール環境と実働システムでどのリポジトリを使用できるかが定義されるからである。
SUSE Linux Enterpriseでは、次のモジュールと拡張機能が提供されている。
- Basesystem Module(必須)
- 統合インストーラ上に基本システムを追加する。
- このモジュールは、デフォルトでインストール用に選択されており、選択解除してはならない。
- 依存関係: なし
- Desktop Applications Module(必須)
- グラフィカルユーザインタフェースと重要なデスクトップソフトウェアを追加する。
- このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。
- 依存関係: Basesystem
- Development Tools Module(推奨)
- ソフトウェアのコンパイルとデバッグに必要とされるコンパイラ(gccを含む)およびライブラリが含まれる。
- 以前のソフトウェア開発キット(SDK)を置き換える。
- 依存関係: Basesystem、Desktop Applications
- Python 2 Module(必須)
- このモジュールには、Python 2ランタイムおよびモジュールが含まれる。
- このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。
- 依存関係: Basesystem
- SUSE Cloud Application Platform Tools Module
- SUSE Cloud Application Platform製品とのやり取りを可能にするツールを追加する。
- 依存関係: Basesystem
- SUSE Linux Enterprise Workstation Extension(必須)
- オフィススイートやマルチメディアソフトウェア(例 : ミュージックプレーヤ、ビデオプレーヤ)等の追加デスクトップツールが含まれる。
- この拡張機能は、SUSE Linux Enterpriseサブスクリプションに含まれる。
- このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。
- 依存関係: Basesystem、Desktop Applications
- SUSE Package Hub(推奨)
- openSUSEコミュニティが管理しているSUSE Linux Enterpriseパッケージへのアクセスを提供する。
- これらのパッケージは、L3サポート無しで配布されるため、SUSE Linux Enterpriseのサポート可能性に影響を与えることはない。
- 詳細については、https://packagehub.suse.com を参照すること。
- 依存関係: Basesystem
一部のモジュールでは、他のモジュールをインストールする必要が生じるため、
モジュールを選択すると、この依存関係を満たすために他のモジュールが自動的に選択される場合がある。
製品によっては、特定のモジュールと拡張機能に登録サーバが推奨マークを付けている場合もある。
推奨されたモジュールと拡張機能は、登録およびインストールのために自動選択される。
これらの推奨項目をインストールしないときは、手動で選択を解除する必要がある。
ブートローダの設定
ブートローダのquiet
オプションは、ブートプロセスを出力しないようにする設定である。
splash
オプションはブート画面を表示するための設定である。
もし、Linux起動時にブートプロセスの情報を見る場合は、ブートローダのオプションを以下のように設定する。
splash
システムの更新
インストールした直後に、システムの更新を実行して、システムが最新の状態を保つようにする。
sudo zypper update
スナップショットの設定
まず、スナップショットを有効にするため、/etc/sysconfig/yast2ファイルにあるUSE_SNAPPER
が"yes"
に設定されていることを確認する。
初期設定では、ルートディレクトリとホームディレクトリが同じパーティションの場合、ホームディレクトリはスナップショットには含まれない。
ホームディレクトリをスナップショットに含めるには、別のSnapper設定ファイルを作成する必要があるため、以下のコマンドを実行する。
以下のコマンドを実行すると、スナップショットの設定ファイルである/etc/snapper/configs/homeファイルが作成される。
sudo snapper -c home create-config /home
必要に応じて2つの設定ファイルを変更しなければならない。
- /etc/snapper/configs/rootファイル
- /etc/snapper/configs/homeファイル
ルートパーティションのスナップショットの設定を編集するため、以下のコマンドを実行する。
sudo vi /etc/snapper/configs/root または sudo vi /etc/snapper/configs/home
以下に、変更箇所の説明を記載する。
- BACKGROUND_COMPARISON="yes"
- 指定したディレクトリ(ルートディレクトリまたはホームディレクトリ)の新しいスナップショットを作成する時、
- Snapperはバックグラウンドで比較プロセスを実行することで、新旧ファイルを区別することができる。
- その後にSnapperが起動した時、新旧のスナップショット間の変更を表示するための時間は掛からない。
- これは、良い機能である反面、時間の経過とともにI/O処理に負荷が掛かり、十分なリソースがないとシステムが遅くなる可能性があるので、
no
に設定した方がよい。
- NUMBER_CLEANUP="yes"
- この設定を使用すると、毎日保持するスナップショットの数を制限して、スナップショットをクリーンアップできる。
- また、NUMBER_LIMIT="50"およびNUMBER_LIMIT_IMPORTANT="10"と一緒に使用して、システムに保持するスナップショットの数をSnapperに伝える。
- NUMBER_LIMITは一般的なスナップショット向け、NUMBER_LIMIT_IMPORTANTは重要なスナップショット向け(パッケージ管理等)である。
- また、数に関係なく全てのスナップショットの数だけを保持したい場合は、NUMBER_MIN_AGEを0に設定する。(初期設定では、30分未満のバックアップは削除されない)
- これらの値については、Snapperの公式ドキュメントを参照すること。
- TIMELINE_CREATE="yes"およびTIMELINE_CLEANUP="yes"
- この設定は、毎時スナップショットの作成とクリーニングを行う。
- Snapperは、ルートディレクトリとホームディレクトリの両方のスナップショットを1時間ごとに作成し、
- TIMELINE_LIMIT_HOURLY等で指定した値よりも古いスナップショットを自動的に削除する。
- 例えば、過去24時間以内のスナップショットをすべて保持してそれ以降は削除したり、1日1個のスナップショットを保持する等、システムに指示することができる。
- これらの設定については、公式ドキュメントを参照すること。
- EMPTY_PRE_POST_MIN_AGE="<数値(秒)>"
- zypperコマンドまたはYaST2を実行すると、実行する操作の前後にスナップショットが作成される。
- 前後のスナップショットの作成は、EMPTY_PRE_POST_MIN_AGE="<数値(秒)>"で指定できる。(値は秒単位)
公式リポジトリが利用可能か確認
まず、SUSEの公式リポジトリが利用できるかどうかを確認するため、ソフトウェアのインストールを行う。
例えば、nanoをインストールする場合は、以下のコマンドを入力する。
sudo zypper install nano
PackmanリポジトリとPackman Essentialを追加
Packmanリポジトリは、SUSE用の追加パッケージを提供している。
したがって、ダウンロードしているものを理解している場合は、Packmanリポジトリを有効にする。
SUSEの公式リポジトリにほぼ依存している場合は、Packman Essentialを有効にすることをお勧めする。
※サードパーティのリポジトリには潜在的なリスクが伴う可能性があることに注意すること。
# Packman全体を有効にする場合 sudo zypper ar -cf https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ packman # SLE 15(推奨) または sudo zypper ar -cf https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman # SUSE 15.2(推奨) または sudo zypper ar -cf https://packman.inode.at/suse/openSUSE_Leap_15.2/ packman # SUSE 15.2(非推奨)
# Packman Essentialを有効にする場合 sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/Essentials/ packman-essentials # SLE 15 または sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/Essentials/ packman-essentials # SUSE 15.2
Packmanリポジトリを追加した後は、システムパッケージをPackmanに切り替えること。
両方のリポジトリのパッケージが混在すると、様々な問題が発生する恐れがある。
sudo zypper dup --from packman --allow-vendor-change # packman または sudo zypper dup --from packman-essentials --allow-vendor-change # packman-essential
マルチメディアコーデックのインストール
注:これらのコーデックをインストールするには、Packmanリポジトリを有効にする必要がある。
openSUSEでは、マルチメディアコーデックがデフォルトでサポートされていない。
詳細については、公式Webサイトで読むことができる。
なお、--allow-vendor-changeオプションは、インストールされた解決可能なソフトウェアのベンダーの変更を許可する。
--no-allow-vendor-changeオプションは、外部リポジトリのパッケージをディストリビューションバージョンに変更しない場合に使用する。
まず、以下のリポジトリを追加する。
sudo zypper addrepo -f http://opensuse-guide.org/repo/openSUSE_Leap_15.1/ dvd # SUSE 15.1 sudo zypper addrepo -f http://opensuse-guide.org/repo/openSUSE_Leap_15.2/ dvd # SUSE 15.2
コーデックのパッケージ群を纏めてインストールするには、以下のコマンドを実行する。
sudo zypper install --allow-vendor-change x264 libx264-* libx265-* ffmpeg gstreamer-plugins-bad gstreamer-plugins-libav gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon lame libavdevice56 libavdevice58 libdvdcss2 vlc-codecs
コーデックを個別にインストールするには、以下のコマンドを実行する。
H264 / AVCサポートをインストールするには、以下を実行する。
sudo zypper install --allow-vendor-change x264 libx264-* libx265-* vlc-codecs
音声や動画を記録、変換、およびストリーミングする機能が必要な場合は、以下を実行して、FFmpegマルチメディアフレームワーク等をインストールする。
sudo zypper install --allow-vendor-change ffmpeg libavdevice56 libavdevice58 libdvdcss2 lame
GStreamerライブラリが必要な場合は、以下のコマンドを実行する。
sudo zypper install --allow-vendor-change gstreamer-plugins-bad gstreamer-plugins-bad-orig-addon gstreamer-plugins-libav gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-base gstreamer-plugins-good gstreamer-plugins-good-extra gstreamer-plugins-qt5 vlc-codec-gstreamer ogmtools
今後、Pacmanリポジトリから取得することを設定する。
sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.1/ # SUSE 15.1 または sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/ # SUSE 15.2
Webブラウザのプラグイン
多くのWebサイトでは、期待どおりに機能するために様々なブラウザプラグインをインストールする必要がある。
これらのプラグインは、Webサイトの閲覧中にパフォーマンスとセキュリティに影響を与える可能性があるため、必要な場合にのみインストールすること。
オンライン動画やゲーム等のFlashサポートが必要な場合は、freshplayerpluginをインストールする。(Packmanリポジトリが必要)
sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_15.1/ packman sudo zypper install freshplayerplugin
Javaアプレットは、ゲームや一部の国のホームバンキングなど、様々な用途に使用されている。
java-1_8_0-openjdk-pluginがインストールされていない場合は、パッケージマネージャを使用してインストールする。
sudo zypper install java-1_8_0-openjdk-plugin
Firefoxおよびその他のWebブラウザで様々なマルチメディアストリームのサポートを取得するには、xine-browser-pluginをインストールする。(Packmanリポジトリが必要)
sudo zypper install xine-browser-plugin
公式リポジトリには存在しないアプリケーションのインストール
公式リポジトリ(またはソフトウェアセンター)に存在しないアプリケーションをインストールする必要がある場合は、
FlatpakまたはSnapsを有効にするか、
他の方法にて必要なアプリケーションを簡単にインストールできる。
電力管理の改善(TLPのインストール)
システム設定から電力を管理するためのオプションがいくつかある。
ただし、ラップトップでopenSUSEを使用する場合は、バッテリーの使用量を減らしたい場合がある。
TLPをインストールすることにより、コンピュータを監視し、最適な手法を(自動的に)実装してバッテリーの寿命を最適化する。
TLPをインストールするには、以下のコマンドを実行する。
sudo zypper install tlp tlp-rdw sudo systemctl enable tlp
.profileファイルの設定
マルチユーザモード(Run Level 3)でSUSEを起動した場合、ログインシェルの日本語表記が文字化けをする。
そこで、ログインシェルの時は英語表記にして、GUIでターミナルを使用する時は日本語表記に設定する。
したがって、ログインシェルの起動時に呼ばれる.profileファイル(ホームディレクトリに存在する)の最下行に以下の設定を追記する。
# 使用しているシェルの種類を表示する
echo "" 1>&2
echo "Login Shell is $0" 1>&2
# CUIで起動する時は英語表記にする
RUNLEVEL=$(echo <ユーザのパスワード> | LANG=C sudo -S runlevel)
MUMODE="N 3"
if [ "$RUNLEVEL" = "$MUMODE" ]; then
GUI=$(echo $XDG_CURRENT_DESKTOP)
if [ -z "$GUI" ]; then
export LANG=C
echo 'Set $LANG is $LANG=C'
fi
unset -v GUI
fi
echo ""
# Oracle JDKの設定
export JAVA_HOME="$HOME/InstallSoftware/Java/jdk-15.0.1"
export J2SDKDIR="$HOME/InstallSoftware/Java/jdk-15.0.1"
# Vagrantのホームディレクトリの変更
export VAGRANT_HOME="<Vagrantのホームディレクトリのフルパス>"
# VirtualBoxの仮想マシンディレクトリの変更
VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス>
.bashrcファイルの設定
ホームディレクトリに存在する.bashrcファイルに以下の設定を記述する。
# ~/.bashrcファイル # Ctrl+Dでシェルを終了しない set -o ignoreeof # 既存のファイルをリダイレクトで上書きしない set -o noclobber # ディレクトリ名だけで実行する時、cdコマンドの引数で指定したものとして実行する shopt -s autocd # コマンドの重複を履歴に残さない export HISTCONTROL=ignoredups # 空白から始めたコマンドを無視 export HISTCONTROL=ignorespace # コマンド履歴に残さないコマンド群 HISTTIMEFORMAT='%Y%m%d %T '; export HISTTIMEFORMAT # エイリアスの設定 alias cd='cd -P' alias rm='rm -i' alias cp='cp -i' alias mv='mv -iv' alias ls='ls -hlF --color=auto' alias cat='cat -n' alias less='less -n' alias clear='clear && echo -en "\e[3J"' alias en='LANG=C LANGUAGE=C LC_ALL=C' alias lgrep='ls -ahlF | grep' alias igrep='sudo zypper search -i --detail' alias repoclean='sudo zypper clean -a && sudo zypper --gpg-auto-import-keys refresh && sudo zypper refresh' alias nano='nano -lmS' alias snano='sudo nano -lmS' alias skate='kdesu /usr/bin/kate' alias startnw=' sudo systemctl stop wickedd wicked; sudo systemctl start NetworkManager' alias startwicked=' sudo systemctl stop NetworkManager; sudo systemctl start wickedd wicked' # KDE Plasmaを使用している場合 alias plasma=' /usr/bin/kquitapp5 plasmashell; plasmashell > /dev/null 2>&1 & disown; sleep 2; exit' #alias plasma=" killall plasmashell; plasmashell > /dev/null 2>&1 & disown" # VS Codeをインストールしている場合 alias scode='code --user-data-dir='<VSCodeのプロジェクトディレクトリ> alias suse='cat /etc/SUSE-brand' alias sshpi='ssh <ユーザ名>@<ホスト名またはIPアドレス> -p <ポート番号> -i <暗号鍵のフルパス名>' # Raspberry Pi向けSSH接続の設定 alias sshxrea='sshpass -p <パスワード> ssh <ユーザ名>@<ホスト名> -p <ポート番号>' # XREA向けSSH接続の設定 # KVMをインストールしている場合 alias startkvm='sudo systemctl restart libvirtd' alias stopkvm='sudo systemctl stop libvirtd && sudo systemctl stop libvirtd.socket && sudo systemctl stop libvirtd-admin.socket && sudo systemctl stop libvirtd-ro.socket' # FreeRDPをインストールしている場合 alias rwin10='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.130' alias r2016='/home/ユーザ名/FreeRDP/freerdp-nightly/bin/xfreerdp /u:<仮想マシンのユーザ名> /p:<パスワード> /w:1536 /h:960 /sound:latency:400 /drive:suse,<共有するディレクトリ> /v:192.168.122.131' # SUSEが仮想マシンの場合 alias mhgfs='sudo vmhgfs-fuse -o allow_other .host:/Common /mnt/hgfs' alias uhgfs='sudo fusermount -u /mnt/hgfs' # コマンド履歴に残さないコマンド群 # SUSEがホストの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:" # SUSEが仮想マシンの場合 export HISTIGNORE="fg*:bg*:history*:cd*:ls*:cat*:less*:more*:grep*:lgrep*:igrep*:startkvm:stopkvm:repoclean*:suse:which*:clear:man*:repoclean:startx*:exit:mhgfs:uhgfs" # プロンプトの表示形式 PS1='\e[0;31m\u\e[0m@\e[0;32m\h\e[0m(\t) [Path \w] \n> ' # 変数FIGNOREのカスタマイズ # ディレクトリ名およびファイル名を設定する場合、補完対象から除外される export FIGNORE=.svn:${FIGNORE} # mkdirとcdを同時実行 function mkcd() { if [ "$#" -eq 0 ]; then echo "Too few arguments!" elif [ "$#" -eq 1 ]; then if [ -d $1 ]; then echo "$1 already exists!" cd $1 else mkdir -p $1 && cd $1 fi else echo "Too many arguments!" fi } # カレントディレクトリに存在するディレクトリとファイルの検索 function lgrep() { if [ "$#" -eq 0 ]; then echo "Please specify Regular Expression." elif [ "$#" -eq "1" ]; then OLDIFS=$IFS IFS=$'\n\t' for OBJECT in $(\ls -A --group-directories-first | \grep -iE "$1") do ls -AdhlF $OBJECT done unset OBJECT echo "" IFS=$OLDIFS else echo "Too many arguments!" fi } # パターンにマッチするファイル内容を検索する function filegrep() { if [ "$#" -eq 2 ]; then local IFS_BACKUP=$IFS IFS=$ for OBJECT in $(\find . -type f -name "${1}" -print0 | \xargs -0 \grep -inE "${2}") do echo "${OBJECT}" done echo "" IFS=$IFS_BACKUP elif [ "$#" -eq 3 ]; then # 第1引数で指定したディレクトリが存在するか確認する if [ ! -d "$1" ]; then echo "Not Exist Directory $1" 1>&2 return 1 fi local IFS_BACKUP=$IFS IFS=$ # 現在のカレントディレクトリを一時的に保存する local CURRENTDIR=$(\pwd) # 第1引数で指定したディレクトリに移動する cd "${1}"; # 第2引数で指定したパターンを使用して検索する for OBJECT in $(\find . -type f -name "${2}" -print0 | \xargs -0 \grep -inE "${3}") do echo "${OBJECT}" done # カレントディレクトリに戻る cd "${CURRENTDIR}" echo "" IFS=$IFS_BACKUP unset -v OBJECT else echo "Specify Arguments." 1>&2 fi return 0 } # manコマンドの結果をfirefoxで閲覧 function manh() { if [ "$#" -eq 0 ]; then echo "Too few arguments!" elif [ "$#" -eq "1" ]; then man --html=firefox $1 & else echo "Too many arguments!" fi } # KVMの起動 function startkvm() { local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "dead") if [ -n "KVM_STATUS" ]; then sudo systemctl start libvirtd fi local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "no") if [ -n "$NETWORK_STATUS" ]; then sudo virsh net-start default fi } # KVMの停止 function stopkvm() { local NETWORK_STATUS=$(sudo virsh net-info default | grep -ie "起動中" -ie "Active" | grep -ie "yes") if [ -n "$NETWORK_STATUS" ]; then sudo virsh net-destroy default fi local KVM_STATUS=$(sudo systemctl status libvirtd | grep "Active:" | grep -ie "running") if [ -n "KVM_STATUS" ]; then sudo systemctl stop libvirtd libvirtd.socket libvirtd-admin.socket libvirtd-ro.socket fi } # Apache2とMySQLの起動 function startlamp() { local APACHE2_STATUS=$(sudo systemctl status apache2 | grep -ie "Active:" | grep -ie "dead") if [ -n "APACHE2_STATUS" ]; then sudo systemctl start apache2 fi local MYSQL8_STATUS=$(sudo systemctl status mysql | grep -ie "Active:" | grep -ie "dead") if [ -n "MYSQL8_STATUS" ]; then sudo systemctl start mysql fi } # Apache2とMySQLの停止 function stoplamp() { local APACHE2_STATUS=$(sudo systemctl status apache2 | grep "Active:" | grep -ie "running") if [ -n "APACHE2_STATUS" ]; then sudo systemctl stop apache2 fi local MYSQL8_STATUS=$(sudo systemctl status mysql | grep "Active:" | grep -ie "running") if [ -n "MYSQL8_STATUS" ]; then sudo systemctl stop mysql fi } # 環境変数PATHの設定 function SetPATH() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME=${HOME} PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export PATH="$PATH_NAME:$PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} return 0 } function SetLIBRARY() { OLDIFS=${IFS} IFS=$':' BEFORE_HOME='$HOME' AFTER_HOME="$HOME" PATH_NAME=$(echo ${1//${BEFORE_HOME}/${AFTER_HOME}}) SLASH=$(echo ${PATH_NAME: -1:1}) if [ ${SLASH} = "/" ]; then LENGTH="${#PATH_NAME}" let LENGTH=${LENGTH}-1 PATH_NAME=$(echo ${PATH_NAME:0:${LENGTH}}) fi if [ ! -d ${PATH_NAME} ]; then echo "No Exist Directory" return 1 fi EXIST_FLAG=0 for VALUE in ${PATH} do if [ ${VALUE} = ${PATH_NAME} ]; then EXIST_FLAG=1 break fi done if [ ${EXIST_FLAG} -eq 0 ]; then export LD_LIBRARY_PATH="$PATH_NAME:$LD_LIBRARY_PATH" elif [ ${EXIST_FLAG} -eq 1 ]; then echo "Already Exist ${PATH_NAME} in PATH " 1>&2 fi unset -v OLDIFS SLASH LENGTH BEFORE_HOME AFTER_HOME PATH_NAME EXIST_FLAG VALUE IFS=${OLDIFS} } # 環境変数PATHの重複を削除する function DeleteDuplicate() { if typeset -A &>/dev/null; then # 連想配列が使用できるか確認する # 使える場合 typeset -A _paths typeset _results while read -r _p do if [[ -n ${_p} ]] && (( ${_paths["${_p}"]:-1} )); then _paths["${_p}"]=0 _results=${_results}:${_p} fi done <<<"${PATH//:/$'\n'}" PATH=${_results/:/} unset -v _p _paths _results else # 使えない場合はawkを使用する typeset _p=$(awk 'BEGIN{RS=":";ORS=":"} !x[$0]++' <<<"${PATH}:") PATH=${_p%:*:} unset -v _p fi }
コマンド履歴を残さない設定
ここでは、Bashを使用していることを前提に記載する。
まず、.bash_historyファイルを削除する。
rm -rf ~/.bash_history
次に、現在、メモリ上に残っているコマンド履歴を削除する。
history -c
最後に、以下の設定を.bashrcファイルに追記する。
export HISTFILESIZE=0 export HISTSIZE=0 unset HISTFILE
設定を反映させるため、ログアウトまたは再起動する。
パスワードフィードバックの設定
ターミナルでパスワードフィードバックを有効にする方法を記載する。
まず、/etc/sudoersファイルのバックアップを作成する。
cd /etc sudo cp sudoers sudoers_org
次に、visudoコマンドを実行して、sudoersファイルの構成を編集する。
sudo EDITOR=nano visudo
/etc/sudoersファイルにあるDefaults env_reset
という設定を、以下のように変更する。
# 変更前 Defaults env_reset # 変更後 Defaults env_reset,pwfeedback
[Ctrl]キー + [o]キーを同時押下して編集内容を保存して、[Ctrl]キー + [x]キーを同時押下してNanoを終了する。
その他の設定
自動ログイン
- YaST
- YaSTを起動して、[セキュリティとユーザ] - [ユーザとグループの管理]を選択する。
- [ユーザとグループの管理]画面の[ユーザ]タブを選択して、画面右下の[熟練者用オプション]プルダウンから[ログイン設定]を選択する。
- [ディスプレイマネージャのログイン設定]画面の[自動ログイン]にチェックを入力して、
[ログインするユーザ]プルダウンからユーザを選択する。 - [OK]ボタンを押下する。
- 手動
- 以下のファイルを編集する。
sudo vi /etc/sysconfig/displaymanager
DISPLAYMANAGER_AUTOLOGIN
項目において、自動ログインするユーザ名を記述する。- 変更前
DISPLAYMANAGER_AUTOLOGIN=""
- 変更後
DISPLAYMANAGER_AUTOLOGIN="<自動ログインするユーザ名>"
- Linuxを再起動して、自動ログインできるか確認する。
- 以下のファイルを編集する。
日本語環境のインストール
基本的には、SUSEのインストールメディアを使用して、インストール開始時に日本語を選択することである。
ただし、SUSEのLive DVDには、日本語関連のパッケージが含まれていないので、以下の手順を実行する必要がある。
また、何らかの理由で、テキストモードや英語でインストールしなければならない場合でも、インストール完了後に次の手順で日本語化できる。
- インストールメディアが無い場合
- インターネットに接続する。
- YaSTを起動して、[言語設定]を選択して、[日本語]に設定する。
- [ソフトウェアの管理]を選択して、[View]プルダウンから[Languages]を選択する。
- [ja 日本語]にチェックを入力して、[Accept]ボタンを押下する。
- ibus-mozc(デフォルト)またはfcitx-mozcを選択する。
KDEのメニューの一部が英語のままの場合は、KDEのキャッシュファイル(/var/tmp/kdecache-<ユーザ名>)を削除すること。
ホームディレクトリのディレクトリ名を英語に変更する
一括で変更するには、以下のコマンドを実行する。
LANG=en xdg-user-dirs-update --force
日本語入力の設定
インプットメソッドフレームワーク(IBusやFcitx等)と変換エンジン(ibus-mozcやfcitx-mozc等)をインストールする。
(SUSEのインストール時に日本語環境を指定すると、自動的にこれらのパッケージがインストールされる)
使用するインプットメソッドフレームワークを指定する場合、~/.i18nファイルの環境変数INPUT_METHOD
を設定する。
以下の例では、IBusを自動起動するように設定している。
FcitxとIBusがインストールされている場合、Fcitxの方がIBusより優先度が高いため、初期設定ではFcitxが自動起動する。
以下のように、IBusを設定することで、IBusを自動起動することができる。
# ~/.i18nファイル INPUT_METHOD=ibus
Windowsで作成したzipファイルを文字化けせずに展開する
unzip-rcc
パッケージに含まれているunzip
コマンドを使用すると、文字コードを自動判定して展開される。
CPU緩和策の設定
Intel CPUの脆弱性において、2018年1月以降、SpectreとMeltdownに始まり、同年年8月のL1 Terminal Faultに至るまで、
様々なCPUサイドチャネル情報のリークが公開されている。
そこで、デプロイされた全てのソフトウェアのミティゲーションについて、ミティゲーションの動作を有効化、無効化、または制御する1つ以上のブートオプションが追加された。
また、これらの緩和策は、影響を受けるCPUの自動検出も行う。
SUSEは、安全な標準設定でアップデートをリリースされているが、パフォーマンスとセキュリティのバランスをとることができないことが予想される。
これらのCPU問題に関する全てのオプションを一元的に管理するmitigationsと呼ばれるブートオプションを導入している。
mitigationsオプションには、以下の設定がある。
- mitigations=off
- 全てのCPUサイドチャネルの緩和は無効になる。
- この設定は、最高のパフォーマンスを提供するがセキュリティは最低限であり、信頼されないソフトウェアおよびソースコードは実行しない方がよい。
- mitigations=auto
- CPUの種類に基づいて検出されるため、全てのCPUサイドチャネルのミティゲーションが有効になる。
- 自動検出は、影響を受けていない古いCPUと影響を受けていない新しいCPUの両方を処理して、透過的にミティゲーションを無効にする。
- このオプションは、SMTを有効にしたままにしておきます。
- mitigations=auto,nosmt
- この設定は、mitigations=autoと同じだが、必要に応じてCPUの対称的なマルチスレッドが無効になる。
- 例えば、L1ターミナルフォルトのサイドチャネルの問題を緩和するため等。
システム設定
初期設定では、マウスのシングルクリックでディレクトリやファイルを開く。
この設定をダブルクリックに変更する場合は、[KDE システム設定] - [ワークスペースの挙動] - [ワークスペース]で設定できる。
Klipperの無効
KDE向けのクリップボードソフトウェアであるKlipperを停止する場合は、タスクバーを右クリックして、[Editパネル]を選択する。
マウスカーソルをシステムトレイ付近に移動すると、[システムトレイ]ポップアップが表示されるので、[設定]を選択する。
[システムトレイの設定]画面が表示されるので、画面右の[システムサービス]項目 - [クリップボード]プルダウン - [Disabled]を選択すると、
Klipperが無効になる。
便利なソフトウェア
- qBitTorrent
sudo zypper install qbittorrent
- KolourPaint
sudo zypper install kolourpaint
- Krita
sudo zypper install krita
または、公式WebサイトからAppImageファイルをダウンロードして使用する。
- Kdenlive
sudo zypper install Kdenlive
テーマの変更
GTK 3 / 4 Theme
- Obsidan 2
- GTK+ 3.22以降をインストールする必要がある。
- https://www.pling.com/p/1173113
- 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
- gsettings set org.gnome.desktop.interface gtk-theme Obsidan
- gsettings set org.gnome.desktop.wm.preferences theme Obsidan
- BlueSky-GTK Themes
- GTK+ 3.22以降をインストールする必要がある。
- https://www.pling.com/p/1271140
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
- gsettings set org.gnome.desktop.interface gtk-theme BlueSky-GTK
- gsettings set org.gnome.desktop.wm.preferences theme BlueSky-GTK
- Bubble
- GNOME Shell 3.14以降、GTK+ 3.14以降、gnome-themes-standard、Murrine Engineをインストールする必要がある。
- CentOS : gnome-themes-standard gtk-murrine-engine
- SUSE : gnome-themes-standard gtk2-engine-murrine
- https://www.pling.com/p/1253999
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
- gsettings set org.gnome.desktop.interface gtk-theme Bubble
- gsettings set org.gnome.desktop.wm.preferences theme Bubble
- Fluent gtk theme
- GTK+ 3.20以降とMurrine Engineをインストールする必要がある。
- CentOS : gtk-murrine-engine
- SUSE : gtk2-engine-murrine
- https://www.pling.com/p/1477941
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
- gsettings set org.gnome.desktop.interface gtk-theme Fluent-gtk
- gsettings set org.gnome.desktop.wm.preferences theme Fluent-gtk
GNOME Shell Theme
- BlueSky
- https://www.pling.com/p/1315849
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.themesディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
Plasma Theme
設定方法は、KDEシステム設定から[Plasmaスタイル] - [ファイルからインストール]ボタンを押下して、ダウンロードしたファイルを選択する。
- Breeze Noir Dark Blur(推奨)
- ROUNDED COLOR
SDDM Login Theme
SDDMログインテーマは、以下のURLに示すBreeze Noir Darkを推奨する。
設定方法は、KDEシステム設定から[起動と終了] - [ログイン画面(SDDM)] - [テーマ]タブ - [ファイルからインストール]ボタンを押下して、
ダウンロードしたファイルを選択する。
https://www.pling.com/p/1361460
アイコン
- Obsidan
- https://www.pling.com/p/1169579
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/iconsディレクトリに配置する。
- または、解凍したディレクトリを、~/.iconsディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/iconsディレクトリに配置する。
- Delft
- https://www.pling.com/p/1199881
- 以下にインストール手順を示す。
- 解凍したディレクトリを、/usr/share/iconsディレクトリに配置する。
- または、解凍したディレクトリを、~/.iconsディレクトリに配置する。
- または、解凍したディレクトリを、~/.local/share/iconsディレクトリに配置する。
カーソル
カーソルテーマは、以下のURLに示すVolantes Cursorsを推奨する。
設定方法は、KDEシステム設定から[カーソル] - [ファイルからインストール]ボタンを押下して、ダウンロードしたファイルを選択する。
https://www.pling.com/p/1356095
zypperコマンドでアップデートできない場合の対処
以下のコマンドを実行する。
sudo zypper clean -a sudo zypper --gpg-auto-import-keys refresh sudo zypper refresh
デスクトップエントリファイルの更新
デスクトップエントリファイルにおいて、自動的に更新されない場合は、以下のコマンドを実行する。
update-desktop-database ~/.local/share/applications または update-desktop-database /usr/local/share/applications
その他のエラー対処法
X Windowエラー
マルチユーザモード(ランレベル3)からstartx
コマンドを実行すると、〜 /home/ユーザ名/.serverauth.XXXX does not exist
メッセージが表示される場合がある。
これを回避するには、/usr/bin/startxファイル(シェルスクリプト)を以下のように編集する。
sudo vi /usr/bin/startx
# /usr/bin/startxファイル # 変更前 xserverauthfile=$HOME/.serverauth.$$ # 変更後 xserverauthfile=$XAUTHORITY
サスペンドまたはハイバネード復帰時のUI崩れ
NVIDIA製のGPUを使用している場合、GPUのドライバのバグにより、サスペンドまたはハイバネードの復帰時にUIの描画が崩れるときがある。
この時、以下のコマンドを実行することでUIを再描画する。(エイリアスに追加することを推奨する)
killall plasmashell; plasmashell > /dev/null 2>&1 & disown
また、任意のディレクトリに以下のシェルスクリプトとデスクトップエントリファイルを作成後、グローバルショートカットキーに登録してもよい。
# KDE-Plasma-Restart.shファイル #!/bin/sh killall plasmashell; plasmashell > /dev/null 2>&1 & disown
# /home/ユーザ名/.local/share/applications/KDE-Plasma-Restart.desktopファイル [Desktop Entry] Type=Application Name=KDE Plasma Restart GenericName=KDE Plasma Setting Comment=KDE Plasma Restart Program Exec=/home/ユーザ名/KDE-Plasma-Restart.sh %F Icon=/home/ユーザ名/.icons/SUSE.png Terminal=false Categories=Settings; MimeType=application
一部のソフトウェアで日本語が文字化けする場合
例えば、WebブラウザでYoutubeを視聴した場合、字幕が文字化け(□□□または〼〼〼等)する時がある。
[YaST2] - [ソフトウエア管理]を選択して、arphic-uming-fontsをインストールする。
以下のコマンドを実行して、/usr/share/fonts/truetype/ipagp.ttfファイル(IPA Pゴシック)等の好みのフォントファイルにて、uming.ttcを上書きする。
sudo cp /usr/share/fonts/truetype/ipagp.ttf /usr/share/fonts/truetype/uming.ttc
OSのアップデートエラー
SUSEのアップデートを行う時、いくつかの更新パッケージをCD/DVDドライブから取得しようとしてエラーが発生する場合がある。
以下に、その例を示す。
Media source 'cd:///?devices=/dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7280S' does not contain the desired medium Please insert medium [openSUSE-20160205-0] #1 and type 'y' to continue or 'n' to cancel the operation. [yes/no] (no): yes File './suse/x86_64/liborcus-0_10-0-0.9.2-1.1.x86_64.rpm' not found on medium 'cd:///?devices=/dev/disk/by-id/ata-Optiarc_DVD_RW_AD-7280S' Please insert medium [openSUSE-20160205-0] #1 and type 'y' to continue or 'n' to cancel the operation. [yes/no] (no): Problem occured during or after installation or removal of packages: Installation aborted by user Please see the above error message for a hint.
上記のエラーが発生した場合、リポジトリの設定を確認して、URLがCD/DVDになっているリポジトリを無効にするか、
zypperに--no-cd
オプションを付けて更新する。
sudo zypper --no-cd dup
カーネルエラー
ブート時に、以下のエラー群が出力される場合がある。
これはマザーボードのBIOSの一部がLinuxに対応していないためである。
エラー sp5100-tco : Watchdog hardware is disabled
ウォッチドッグ機能はIPMI準拠のマザーボードでのみ利用できる。
したがって、この機能が存在しない場合は、このカーネルモジュールの読み込みを無効にすればよい。
/etc/modprobe.d/sp5100_tco.confファイルを作成して、以下のように編集する。
sudo vi /etc/modprobe.d/sp5100_tco.conf # /etc/modprobe.d/sp5100_tco.confファイル blacklist sp5100_tco
Linuxを再起動して、設定を反映させる。
エラー do_IRQ: 〜 No irq handler for Vector
このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。
sudo vi /etc/default/grub # /etc/default/grubファイル GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet splash pci=nomsi,noaer"
ブートローダを作成して再起動する。
sudo grub2-mkcongif -o /boot/grub2/grub.cfg sudo shutdown -r now
起動時のテキストコンソールの解像度の設定
特に、4Kディスプレイを使用する場合かつマルチユーザモード(ランレベル3)で起動する場合、起動時のテキストコンソールの解像度が最適でない可能性がある。
Grub2では、初期画面の解像度を設定することができる。
また、KMS(kernel mode setting)の解像度については、カーネルパラメータを追加することができる。
解像度の自動検出が正しくない場合は、これらの設定(Grub2とカーネルパラメータ)を設定する。
以下のように、/etc/default/grubファイルを編集する。
sudo vi /etc/default/grub
# 解像度を指定する # 以下の例では、2560x1440(WQHD)に設定している GRUB_GFXMODE=2560x1440 # GRUB_GFXMODEの下に記述する GRUB_GFXPAYLOAD=keep # カーネルパラメータ(GRUB_CMDLINE_LINUX_DEFAULT)の最後に以下の設定を追記する GRUB_CMDLINE_LINUX_DEFAULT="... ... video=1280x1024"
設定を有効にするため、ブートローダを作成して、OSを再起動する。
sudo grub2-mkconfig -o /boot/grub2/grub.cfg sudo shutdown -r now
KDE 5におけるアプリケーションランチャーの日本語入力
KDE 5において、初期状態ではアプリケーションランチャーの日本語入力ができない。
そのため、以下の手順を行って、ibusを設定する必要がある。
まず、~/.profileファイルに以下の設定を追記する、または、~/.ximファイルを作成して以下の設定を記述する。
# ibusの設定 export XMODIFIERS="@im=ibus" export GTK_IM_MODULE=ibus export QT_IM_SWITCHER=imsw-multi export QT_IM_MODULE=ibus LANG=ja_JP.UTF-8 ibus-daemon -dx
次に、パネル(システムトレイ)からibusのアイコンを右クリックして、[Configure Input Method]を選択する。
[IBusの設定]画面から、[一般]タブ - [フォントとスタイル]項目 - [プロパティーパネルを表示する]プルダウンから、[自動的に隠す]を選択する。
同様に、[IBusの設定]画面から、[詳細]タブ - [グローバル入力メソッドの設定]項目 - [すべてのアプリケーション間で同じ入力メソッドを共有する]チェックボックスにチェックを入力する。
PCを再起動または再ログインして、アプリケーションランチャーの日本語入力および変換候補ウインドウが出力されるか確認する。
スケーリング時におけるKonsoleおよびYakuakeのスラッタリング
KDEにおいて、ディスプレイのスケーリングを設定を変更する時([KDEシステムの設定] - [ディスプレイの設定] - [Global scale:]項目)、
KonsoleおよびYakuakeのコンソール画面において、スラッタリングまたはティアリングが発生する場合がある。
これを解決するには、まず、Konsoleのメイン画面から、[設定]メニューバー - [現在のプロファイルを編集]を選択する。
プロファイルの編集画面が起動するので、左ペインの[外観] - 右ペインの[その他]タブ - [Line spacing:]項目の値を1
、[Margins:]項目の値を1
に設定する。
最後に、OSまたはKDEを再起動する。