「設定 - SUSE Linux」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の105版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
SLE 15およびopenSUSE Leap 15.xをインストールした後に初期設定として様々なことを実行する必要がある。<br>
SUSE Linux EnterpriseおよびopenSUSEのインストールおよびインストール後の初期設定について記載する。<br>
ここでは、推奨事項のリストを記載する。<br>
特に、推奨事項に関する事柄を記載する。<br>
<br><br>
 
== SUSE Linux Enterpriseの登録 ==
==== インストール画面から登録する ====
# SUSE Linux Enterpriseの[言語/サポート/製品選択]画面において、[言語]や[インストールする製品]を選択して、[次へ]ボタンを押下する。<br>
# [使用許諾契約]を確認して、[次へ]ボタンを押下する。
# 必要であれば、[ネットワーク設定]画面において、ネットワークの設定を行う。
# [登録]画面において、SUSE Linux Enterpriseの登録を行う。
#* [scc.suse.comを介してシステムを登録]
#*: [電子メールアドレス]項目と[登録コード]項目にそれぞれ入力して、[次へ]ボタンを押下する。
#* Register System via local SMT Server
#*: 組織がローカル登録サーバを提供している場合は、[ローカル登録サーバのURL]プルダウンにURLを入力して、[次へ]ボタンを押下する。
#*: これは、SUSEカスタマサービスにおいて、SUSE Linux Enterpriseの登録コードを登録して、[ローカルSMTサーバを使用してシステムを登録する]機能を有効にしている必要がある。
<br>
==== コマンドから登録する ====
現在の登録情報を削除する。<br>
sudo SUSEConnect --cleanup
<br>
新しい登録コードを登録する。<br>
sudo SUSEConnect -r <登録コード> -e <Eメールアドレス>
<br><br>
 
== SUSE Linux Enterpriseの自動更新 ==
サブスクリプションの自動更新を無効にする手順を、以下に示す。<br>
# まず、[https://www.findmyorder.com/DRHM/store?Action=DisplayContactFormPage&SiteID=suse&Locale=ja_JP&ThemeID=3905993500&Env=BASE#contactcs SUSEカスタマサービス]にアクセスする。
# 次に、[注文番号]または[メールアドレス]を入力して、件名[サブスクリプションリクエスト]プルダウンを選択した後、[マイサブスクリプションからAuto-Renewをキャンセルしてください]プルダウンを選択する。
# 最後に、[電子メールの送信]を選択する。
<br>
注文の詳細を確認する手順を、以下に示す。<br>
# https://www.findmyorder.com/ にアクセスする。
# [Email Address]と[Last 4 digits of your credit card]、または、[Password]と[Order Number]を入力する。<br>
# 次のページの下部に[サブスクリプションの管理]を選択する。<br>
<br><br>
 
== OSのダウンロード ==
公式Webサイトにアクセスして、OSのイメージファイルをダウンロードする。<br>
* SUSE Linux Enterprise Desktop
*: https://www.suse.com/download/sled/
* SUSE Linux Enterprise Server
*: https://www.suse.com/download/sles/
* openSUSE
*: https://www.opensuse.org/
*: openSUSEではTorrentファイルが存在するため、Torrentを使用した方がダウンロード速度が速い。
* 過去にリリースされたSUSE
*: http://ftp5.gwdg.de/pub/opensuse/discontinued/distribution/
<br><br>
<br><br>


32行目: 77行目:
起動可能なイメージを作成するには、以下のコマンドを実行する。(このプロセスは、完了するまでに時間が掛かる)<br>
起動可能なイメージを作成するには、以下のコマンドを実行する。(このプロセスは、完了するまでに時間が掛かる)<br>
  sudo dd if=<ISOファイルのフルパス> of=/dev/<ストレージのパーティション名> status=progress
  sudo dd if=<ISOファイルのフルパス> of=/dev/<ストレージのパーティション名> status=progress
<br>
もし、SUSEのブータブルイメージの作成に問題がある場合は、以下の動画を閲覧すること。<br>
https://www.youtube.com/watch?v=x65P-B3E_FY&t=56s
<br><br>
<br><br>


== SUSEのインストール時の注意点 ==
== SUSEのインストール時の注意点 ==
==== openSUSE / SLE ====
==== SLE / openSUSE ====
もし、インストーラがフリーズする場合は、以下の手順を実施する。<br>
もし、インストーラがフリーズする場合は、以下の手順を実施する。<br>
# DVD / BD / USBメモリからインストーラを起動する。
# 可能であれば、BIOS / UEFIの設定画面からセキュアブートを有効にする。
#: <u>以下の設定例は、GIGABYTEのX570 UDの設定手順である。</u>
#: [BIOS]タブ - [CSM Support]を[Disabled]に変更する。
#: [BIOS]タブ - [Secure Boot] - [Secure Boot Mode]を[標準]に変更する。
#: [BIOS]タブ - [Secure Boot] - [Secure Boot]を[Enabled]に変更する。
#: 上記の設定により、[BIOS]タブ - [Secure Boot] - [System Mode]が[User]と表示されていることを確認する。
# DVD、BD、USBメモリ等からSUSEのインストーラを起動する。
# インストール画面にて、インストーラの設定を行う。
# インストール画面にて、インストーラの設定を行う。
#* UEFIを使用してインストール
#* UEFIを使用してインストール
57行目: 105行目:
# OSを再起動する。
# OSを再起動する。
<br>
<br>
==== SLE - 拡張機能とモジュールの選択 ====
==== SLE - 拡張機能とモジュールの選択 ====
ライセンスの登録後、SUSE Linux Enterpriseで使用可能なモジュールと拡張機能が一覧表示される。<br>
ライセンスの登録後、SUSE Linux Enterpriseで使用可能なモジュールと拡張機能が一覧表示される。<br>
86行目: 135行目:
*: 依存関係: Basesystem、Desktop Applications
*: 依存関係: Basesystem、Desktop Applications
*: <br>
*: <br>
* Python 2 Module(必須)
* Python 2 Module(SUSE15.3以前では必須)
*: このモジュールには、Python 2ランタイムおよびモジュールが含まれる。
*: このモジュールには、Python 2ランタイムおよびモジュールが含まれる。
*: このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。
*: このモジュールは、標準でインストール用に選択されており、これを選択解除することは非推奨である。
117行目: 166行目:
== ブートローダの設定 ==
== ブートローダの設定 ==
ブートローダの<code>quiet</code>オプションは、ブートプロセスを出力しないようにする設定である。<br>
ブートローダの<code>quiet</code>オプションは、ブートプロセスを出力しないようにする設定である。<br>
<code>splash</code>オプションはブート画面を表示するための設定である。<br>
<code>splash</code>オプションは、ブート画面を表示するための設定である。<br>
もし、Linux起動時にブートプロセスの情報を見る場合は、ブートローダのオプションを以下のように設定する。<br>
もし、Linux起動時にブートプロセスの情報を見る場合は、ブートローダのオプションを以下のように設定する。<br>
splash
* <code>quiet</code>オプションを削除する。
* <code>splash</code>オプションを、<code>splash=verbose</code>に設定する。
<br><br>
<br><br>


180行目: 230行目:


== PackmanリポジトリとPackman Essentialを追加 ==
== PackmanリポジトリとPackman Essentialを追加 ==
Packmanリポジトリは、SUSE用の追加パッケージを提供している。<br>
Packmanリポジトリは、SUSE向けの追加パッケージを提供している。<br>
したがって、ダウンロードしているものを理解している場合は、Packmanリポジトリを有効にする。<br>
したがって、インストールされるパッケージ群を理解している場合は、Packmanリポジトリを有効にする。<br>
SUSEの公式リポジトリにほぼ依存している場合は、Packman Essentialを有効にすることをお勧めする。<br>
<br>
ユーザのシステムが、SUSEの公式リポジトリに多く依存している場合は、Packman Essentialを有効にすることを推奨する。<br>
<br>
<br>
※サードパーティのリポジトリには潜在的なリスクが伴う可能性があることに注意すること。<br>
※サードパーティのリポジトリには潜在的なリスクが伴う可能性があることに注意すること。<br>
  # Packman全体を有効にする場合
  # Packman全体を有効にする場合
  sudo zypper ar -cf https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ packman # SLE 15(推奨)
または
## SLE 15 〜 SLE 15 SP6 (推奨)
  sudo zypper ar -cf https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/ packman  # SUSE 15.2(推奨)
  sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ Packman
または
sudo zypper ar -cf https://packman.inode.at/suse/openSUSE_Leap_15.2/ packman  # SUSE 15.2(非推奨)
  ## openSUSE Leap (推奨)
  sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' Packman
<br>
<br>
  # Packman Essentialを有効にする場合
  # Packman Essentialを有効にする場合
  sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/Essentials/ packman-essentials # SLE 15
  または
## SLE 15 〜 SLE 15 SP6
  sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.2/Essentials/ packman-essentials  # SUSE 15.2
  sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/Essentials/ Packman-Essentials
   
  ## openSUSE Leap
  sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/Essentials/' Packman-Essentials
<br>
<br>
Packmanリポジトリを追加した後は、システムパッケージをPackmanに切り替えること。<br>
Packmanリポジトリを追加した後は、システムパッケージをPackmanに切り替えること。<br>
両方のリポジトリのパッケージが混在すると、様々な問題が発生する恐れがある。<br>
両方のリポジトリのパッケージが混在すると、様々な問題が発生する恐れがある。<br>
  sudo zypper dup --from packman --allow-vendor-change  # packman
  sudo zypper dup --from Packman --allow-vendor-change  # Packman
  または
  または
  sudo zypper dup --from packman-essentials --allow-vendor-change  # packman-essential
  sudo zypper dup --from Packman-Essentials --allow-vendor-change  # Packman-Essential
<br><br>
<br><br>


== マルチメディアコーデックのインストール ==
== マルチメディアコーデックのインストール ==
'''注:これらのコーデックをインストールするには、Packmanリポジトリを有効にする必要がある。'''<br>
<u>※注意</u><br>
<u>これらのコーデックをインストールするには、Packmanリポジトリを有効にする必要がある。</u><br>
<br>
<br>
openSUSEでは、マルチメディアコーデックがデフォルトでサポートされていない。<br>
openSUSEでは、マルチメディアコーデックが標準でサポートされていない。<br>
詳細については、公式Webサイトで読むことができる。<br>
詳細については、公式Webサイトで読むことができる。<br>
なお、--allow-vendor-changeオプションは、インストールされた解決可能なソフトウェアのベンダーの変更を許可する。<br>
--no-allow-vendor-changeオプションは、外部リポジトリのパッケージをディストリビューションバージョンに変更しない場合に使用する。<br>
<br>
<br>
まず、以下のリポジトリを追加する。<br>
<code>--allow-vendor-change</code>オプションは、インストールされた解決可能なソフトウェアのベンダーの変更を許可する。<br>
sudo zypper addrepo -f http://opensuse-guide.org/repo/openSUSE_Leap_15.1/ dvd  # SUSE 15.1
また、<code>--no-allow-vendor-change</code>オプションは、外部リポジトリのパッケージをディストリビューションバージョンに変更しない場合に使用する。<br>
sudo zypper addrepo -f http://opensuse-guide.org/repo/openSUSE_Leap_15.2/ dvd  # SUSE 15.2
<br>
<br>
<u>'''コーデックのパッケージ群を纏めてインストールする'''</u>には、以下のコマンドを実行する。<br>
<u>Packmanリポジトリから必要なコーデックをまとめてインストールする場合、以下に示すライブラリをインストールする。</u><br>
  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
# SLE 15 SP 6 / openSUSE Leap 15.6
  sudo zypper install --allow-vendor-change x264 libx264-164 libx264-164-32bit \
                                          x265 libx265-209 libx265-209-32bit \
                                          vlc vlc-codecs vlc-codec-gstreamer \
                                          ffmpeg-4                          \
                                          libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit              \
                                          libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \
                                          libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit        \
                                          libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit      \
                                          libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit              \
                                          gstreamer-plugins-libav gstreamer-plugins-libav-32bit                          \
                                          gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon
<br>
<br>
<u>'''コーデックを個別にインストールする'''</u>には、以下のコマンドを実行する。<br>
<u>Packmanリポジトリからコーデックを個別にインストールする</u>場合を、以下に示す。<br>
H264 / AVCサポートをインストールするには、以下を実行する。<br>
PackmanリポジトリからH264/AVCおよびh265/HEVCをインストールするには、以下に示すライブラリをインストールする。<br>
  sudo zypper install --allow-vendor-change x264 libx264-* libx265-* vlc-codecs
# SLE 15 SP 6 / openSUSE Leap 15.6
  sudo zypper install --allow-vendor-change x264 libx264-164 libx264-164-32bit \
                                          x265 libx265-209 libx265-209-32bit \
                                          vlc vlc-codecs vlc-codec-gstreamer
<br>
<br>
音声や動画を記録、変換、およびストリーミングする機能が必要な場合は、以下を実行して、FFmpegマルチメディアフレームワーク等をインストールする。<br>
Packmanリポジトリから音声や動画を記録、変換、およびストリーミングする機能が必要な場合は、以下に示すライブラリ (FFmpegマルチメディアフレームワーク等) をインストールする。<br>
  sudo zypper install --allow-vendor-change ffmpeg libavdevice56 libavdevice58 libdvdcss2 lame
# SLE 15 SP 6 / openSUSE Leap 15.6
  sudo zypper install --allow-vendor-change ffmpeg-4                                                                        \
                                          libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit              \
                                          libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \
                                          libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit        \
                                          libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit      \
                                          libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit
<br>
<br>
GStreamerライブラリが必要な場合は、以下のコマンドを実行する。<br>
PackmanリポジトリからGStreamerライブラリが必要な場合は、以下に示すライブラリをインストールする。<br>
  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
# SLE 15 SP 6 / openSUSE Leap 15.6
  sudo zypper install --allow-vendor-change gstreamer-plugins-libav gstreamer-plugins-libav-32bit              \
                                          gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon \
                                          vlc vlc-codec-gstreamer vlc-codec-gstreamer                       \
                                          ogmtools
<br>
<br>
今後、Pacmanリポジトリから取得することを設定する。<br>
今後、Pacmanリポジトリから取得することを設定する。<br>
  sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.1/  # SUSE 15.1
# SLE 15 〜 SLE 15 SP6
または
  sudo zypper dup --allow-vendor-change --from https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/
  sudo zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/ # SUSE 15.2
  # openSUSE Leap 15 〜 openSUSE Leap 15.6
  sudo zypper dup --allow-vendor-change --from 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/'
<br><br>
<br><br>


240行目: 319行目:
<br>
<br>
オンライン動画やゲーム等のFlashサポートが必要な場合は、freshplayerpluginをインストールする。(Packmanリポジトリが必要)<br>
オンライン動画やゲーム等のFlashサポートが必要な場合は、freshplayerpluginをインストールする。(Packmanリポジトリが必要)<br>
  sudo zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_15.1/ packman
  sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ packman              # SLE 15 〜 SLE15 SP6
sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman # openSUSE Leap
  sudo zypper install freshplayerplugin
  sudo zypper install freshplayerplugin
<br>
<br>
Javaアプレットは、ゲームや一部の国のホームバンキングなど、様々な用途に使用されている。<br>
Javaアプレットは、ゲームや一部の国のホームバンキングなど、様々な用途に使用されている。<br>
java-1_8_0-openjdk-pluginがインストールされていない場合は、パッケージマネージャを使用してインストールする。<br>
java-1_8_0-openjdk-pluginがインストールされていない場合は、パッケージマネージャを使用してインストールする。<br>
  sudo zypper install java-1_8_0-openjdk-plugin
  sudo zypper install java-1_8_0-openjdk
<br>
<br>
Firefoxおよびその他のWebブラウザで様々なマルチメディアストリームのサポートを取得するには、xine-browser-pluginをインストールする。(Packmanリポジトリが必要)<br>
Firefoxおよびその他のWebブラウザで様々なマルチメディアストリームのサポートを取得するには、xine-browser-pluginをインストールする。(Packmanリポジトリが必要)<br>
253行目: 335行目:
== 公式リポジトリには存在しないアプリケーションのインストール ==
== 公式リポジトリには存在しないアプリケーションのインストール ==
公式リポジトリ(またはソフトウェアセンター)に存在しないアプリケーションをインストールする必要がある場合は、<br>
公式リポジトリ(またはソフトウェアセンター)に存在しないアプリケーションをインストールする必要がある場合は、<br>
[https://itsfoss.com/flatpak-guide/ Flatpak]または[https://itsfoss.com/install-snap-linux/ Snaps]を有効にするか、<br>
[https://itsfoss.com/flatpak-guide/ Flatpak][https://itsfoss.com/install-snap-linux/ Snaps]を有効にしてインストールする、または、ソースコードからビルドおよびインストールする。<br>
他の方法にて必要なアプリケーションを簡単にインストールできる。<br>
<br><br>
<br><br>


264行目: 345行目:
  sudo zypper install tlp tlp-rdw
  sudo zypper install tlp tlp-rdw
  sudo systemctl enable tlp
  sudo systemctl enable tlp
<br><br>
== Microsoftフォント ==
MS Officeのファイルを扱う場合、Microsoftフォント(Arial、Times New Roman、Comic Sans等)をインストールする。<br>
これらは、Packmanリポジトリからインストールすることができる。<br>
sudo zypper install fetchmsttfonts
<br><br>
<br><br>


270行目: 357行目:
そこで、ログインシェルの時は英語表記にして、GUIでターミナルを使用する時は日本語表記に設定する。<br>
そこで、ログインシェルの時は英語表記にして、GUIでターミナルを使用する時は日本語表記に設定する。<br>
したがって、ログインシェルの起動時に呼ばれる.profileファイル(ホームディレクトリに存在する)の最下行に以下の設定を追記する。<br>
したがって、ログインシェルの起動時に呼ばれる.profileファイル(ホームディレクトリに存在する)の最下行に以下の設定を追記する。<br>
  <source lang="bash">
  <syntaxhighlight lang="bash">
  # 使用しているシェルの種類を表示する
  # 使用しているシェルの種類を表示する
  echo "" 1>&2
  echo "" 1>&2
290行目: 377行目:
   
   
  # Oracle JDKの設定
  # Oracle JDKの設定
  export JAVA_HOME="$HOME/InstallSoftware/Java/jdk-15.0.1"
  export JAVA_HOME="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x"
  export J2SDKDIR="$HOME/InstallSoftware/Java/jdk-15.0.1"
  export J2SDKDIR="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x"
   
   
  # Vagrantのホームディレクトリの変更
  # Vagrantのホームディレクトリの変更
298行目: 385行目:
  # VirtualBoxの仮想マシンディレクトリの変更
  # VirtualBoxの仮想マシンディレクトリの変更
  VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス>
  VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス>
  </source>
  </syntaxhighlight>
<br><br>
<br><br>


== .bashrcファイルの設定 ==
== /etc/profile.localの設定 ==
~/.bashrcファイルに以下の設定を記述する。<br>
システム全体に対して、任意の環境変数を設定する場合、/etc/profile.localファイルを作成する必要がある。<br>
# ~/.bashrcファイル
<u>この時、ログインシェルのシンタックスに沿って記述する必要がある。</u>(ログインシェルがBashの場合、Bashのシンタックス)<br>
<br>
# Ctrl+Dでシェルを終了しない
以下の例では、環境変数<code>PATH</code>において、ユーザが独自にインストールしたソフトウェアのパスを通している。<br>
set -o ignoreeof
  sudo vi /etc/profile.local
<br>
# 既存のファイルをリダイレクトで上書きしない
  <syntaxhighlight lang="bash">
set -o noclobber
  # /etc/profile.localファイル
# ディレクトリ名だけで実行する時、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'
alias kde=' echo <パスワード> | sudo -S systemctl restart graphical.target'
alias gnome=' echo <パスワード> | sudo -S systemctl restart graphical.target'
alias udesktop='update-desktop-database $HOME/.local/share/applications'
# 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 datagrep()
{
    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で閲覧
  export PATH="/path/to/software/bin:$PATH"
function manh()
  </syntaxhighlight>
{
    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
}
<br><br>
<br><br>


== コマンド履歴を残さない設定 ==
== PKG-CONFIGの設定 ==
ここでは、Bashを使用していることを前提に記載する。<br>
pkg-config (ver. 0.24以降)をインストールしている場合、インストールされているライブラリを検索する場所を確認するには、以下のコマンドを実行する。<br>
pkg-config --variable pc_path pkg-config
<br>
<br>
まず、.bash_historyファイルを削除する。<br>
pkg-configにパスに追加するには、環境変数<code>PKG_CONFIG_PATH</code>を設定する。<br>
rm -rf ~/.bash_history
環境変数<code>PKG_CONFIG_PATH</code>は、コロンで区切られた.pcファイルを検索するディレクトリのリストである。<br>
<br>
<br>
次に、現在、メモリ上に残っているコマンド履歴を削除する。<br>
デフォルトは、libdir/pkgconfig:datadir/pkgconfigであり、<br>
history -c
libdirはpkg-configがインストールされたlibdir、datadirはpkg-configがインストールされたdatadirである。<br>
<br>
<br>
最後に、以下の設定を.bashrcファイルに追記する。<br>
例えば、.profileファイルに記述する場合は、以下のように追記する。<br>
  export HISTFILESIZE=0
  vi ~/.profile
export HISTSIZE=0
unset HISTFILE
<br>
<br>
設定を反映させるため、ログアウトまたは再起動する。<br>
# ~/.profileファイル
export PKG_CONFIG_PATH="$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="$HOME/xxx/lib64/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="$HOME/yyy/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="$HOME/zzz/lib64/pkgconfig:$PKG_CONFIG_PATH"
# ...略
<br><br>
<br><br>


691行目: 442行目:
<br>
<br>
[Ctrl]キー + [o]キーを同時押下して編集内容を保存して、[Ctrl]キー + [x]キーを同時押下してNanoを終了する。<br>
[Ctrl]キー + [o]キーを同時押下して編集内容を保存して、[Ctrl]キー + [x]キーを同時押下してNanoを終了する。<br>
<br><br>
== ディスプレイマネージャの変更 ==
変更したいディスプレイマネージャをインストールする。<br>
# GDM
sudo zypper install gdm
# SDDM
sudo zypper install sddm
# LightDM
sudo zypper install lightdm
<br>
変更可能な全てのディスプレイマネージャを表示する。<br>
sudo update-alternatives --list default-displaymanager
<br>
* ディスプレイマネージャを対話式に変更する場合
*: <code>sudo update-alternatives --config default-displaymanager</code>
*: <br>
* ディスプレイマネージャを非対話式に変更する場合
*: <code>sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/<ディスプレイマネージャ名></code>
*: <br>
*: 例 SDDMに変更する場合 : <code>sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/sddm</code>
*: 例 GDMに変更する場合 : <code>sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/gdm</code>
*: 例 LightDMに変更する場合 : <code>sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/lightdm</code>
<br>
GUIで行う場合、SLEおよびopenSUSEにおいて、YaSTまたはYaST2を起動して、[その他] - [Alternatives]を選択して変更する方法もある。<br>
これは、yast2-alternativesパッケージをインストールする必要がある。<br>
sudo zypper install yast2-alternatives
<br>
選択可能なディスプレイマネージャ名を、以下に示す。<br>
* GDM
* LightDM
* SDDM
* kdm  (KDE 4)
* kdm3 (KDE 3)
<br>
<u>※注意</u><br>
<u>GNOMEを使用している場合は、依存関係の問題を回避するため、GDMを使用することを推奨する。</u><br>
<u>その他のDEでは、問題なくLightDMを使用することができる。</u><br>
<br>
<u>LightDMには、NVidiaドライバに関するいくつかの問題もあり、自動ログインが機能しない場合がある。</u><br>
<u>ただし、自動ログインはセキュリティ上の問題を引き起こすため、非推奨ではあるが、これらの機能を使用しない場合でも安全に使用できる。</u><br>
<br><br>
== キーボード ==
==== キーボード配列の変更 ====
KDE環境において、JP配列キーボードからUS配列のキーボードに変更する場合、以下の手順で設定を変更することができる。<br>
# [KDEシステム設定]を開く。
# [入力デバイス]を選択する。
# 左ペインから[キーボード] - 右ペインの[レイアウト]タブを選択 - 画面中央にある[レイアウトを設定]チェックボックスにチェックを入力する。
# [+ Add]ボタンを押下して、[英語(US)]を選択して、[OK]ボタンを押下する。
# [適用]ボタンを押下する。
# PCを再起動する。
<br><br>
<br><br>


741行目: 546行目:
   
   
  INPUT_METHOD=ibus
  INPUT_METHOD=ibus
<br>
==== ロケールの変更 ====
===== システム全体のロケールを変更する場合 =====
sudo vi /etc/sysconfig/language
<br>
# 変更前
#RC_LANG="ja_JP.UTF-8"  <-- コメントアウト
#ROOT_USES_LANG="ctype" <-- コメントアウト
# 変更後
RC_LANG="ja_JP.EUC-JP"
ROOT_USES_LANG="yes"    <-- 標準ユーザと同じロケール (RC_LANGの設定値) を使用する
<br>
ロケールを確認する。<br>
locale
<br>
PCを再起動する。<br>
<br>
===== ユーザごとにロケールを変更する場合 =====
対象ユーザでログインして、~/.profileファイル等に環境変数<code>LANG</code>を設定する。<br>
vi ~/.profile
<br>
<syntaxhighlight lang="sh">
# 例: 言語を日本語, 地域を日本, 文字コード (LC_CTYPE) をEUC-JPに変更する場合 --> export LANG=ja_JP.EUC-JP
export LANG=<言語>_<地域>.<LC_CTYPE>
</syntaxhighlight>
<br>
再ログイン、または、PCを再起動する。<br>
<br>
<br>
==== Windowsで作成したzipファイルを文字化けせずに展開する ====
==== Windowsで作成したzipファイルを文字化けせずに展開する ====
<code>unzip-rcc</code>パッケージに含まれている<code>unzip</code>コマンドを使用すると、文字コードを自動判定して展開される。<br>
<u>unzip-rcc</u>パッケージに含まれている<code>unzip</code>コマンドを使用すると、文字コードを自動判定して展開される。<br>
<br>
<br>
==== CPU緩和策の設定 ====
==== CPU緩和策の設定 ====
770行目: 603行目:
*: 例えば、L1ターミナルフォルトのサイドチャネルの問題を緩和するため等。
*: 例えば、L1ターミナルフォルトのサイドチャネルの問題を緩和するため等。
<br>
<br>
==== システム設定 ====
==== マウス操作でスリープ / ハイバネートから復帰する ====
初期設定では、マウスのシングルクリックでディレクトリやファイルを開く。<br>
まず、マウスのデバイスID等を確認するため、以下のコマンドを実行する。<br>
この設定をダブルクリックに変更する場合は、[KDE システム設定] - [ワークスペースの挙動] - [ワークスペース]で設定できる。<br>
以下の例では、<code>Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouse</code>と記載がある行から、<code>ID</code>の値を確認する。<br>
lsusb
# 出力例
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouse
Bus 001 Device 002: ID 1a81:1004 Holtek Semiconductor, Inc. Wireless Dongle 2.4 GHZ HT82D40REW
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
<br>
<br>
==== Klipperの無効 ====
マウスのデバイスファイルがあるディレクトリを確認するため、以下のコマンドを実行する。<br>
KDE向けのクリップボードソフトウェアであるKlipperを停止する場合は、タスクバーを右クリックして、[Editパネル]を選択する。<br>
以下の例では、<code>/sys/bus/usb/devices/1-2/product:2.4G Wireless Mouse</code>と記載があるため、<br>
マウスカーソルをシステムトレイ付近に移動すると、[システムトレイ]ポップアップが表示されるので、[設定]を選択する。<br>
デバイスファイルがあるディレクトリは、<code>/sys/bus/usb/devices/1-2</code>ディレクトリである。<br>
[システムトレイの設定]画面が表示されるので、画面右の[システムサービス]項目 - [クリップボード]プルダウン - [Disabled]を選択すると、<br>
grep . /sys/bus/usb/devices/*/product
Klipperが無効になる。<br>
<br><br>
# 出力例
 
/sys/bus/usb/devices/1-1/product:Wireless Dongle
== 便利なソフトウェア ==
/sys/bus/usb/devices/1-2/product:2.4G Wireless Mouse
* qBitTorrent
/sys/bus/usb/devices/usb1/product:xHCI Host Controller
  sudo zypper install qbittorrent
/sys/bus/usb/devices/usb2/product:xHCI Host Controller
/sys/bus/usb/devices/usb3/product:xHCI Host Controller
/sys/bus/usb/devices/usb4/product:xHCI Host Controller
/sys/bus/usb/devices/usb5/product:xHCI Host Controller
  /sys/bus/usb/devices/usb6/product:xHCI Host Controller
<br>
<br>
* KolourPaint
次に、/etc/udev/rules.dディレクトリに以下のファイルを作成する。<br>
  sudo zypper install kolourpaint
  sudo vi /etc/udev/rules.d/10-wakeup.rules
<br>
<br>
* Krita
# /etc/udev/rules.d/10-wakeup.rulesファイル
  sudo zypper install krita
   
または、[https://krita.org/jp/ 公式Webサイト]からAppImageファイルをダウンロードして使用する。<br>
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="<IDの左側の値>", ATTRS{idProduct}=="<IDの右側の値>" RUN+="/bin/sh -c 'echo enabled > /<デバイスファイルがあるディレクトリ>/power/wakeup'"
<br>
<br>
* Kdenlive
最後に、PCを再起動する。<br>
sudo zypper install Kdenlive
<br><br>
 
== テーマの変更 ==
GTKテーマを変更する。<br>
gsettings set org.gnome.desktop.interface gtk-theme "<GTKのテーマ名>"
<br>
<br>
アイコンを変更する。<br>
マウス操作でスリープ / ハイバネートから復帰できるかどうか確認するには、以下のコマンドを実行する。<br>
  gsettings set org.gnome.desktop.interface icon-theme '<アイコンのテーマ名>'
この時、マウスのデバイスディレクトリが記載されている行において、<code>enable</code>と出力されているかどうかを確認する。<br>
  grep . /sys/bus/usb/devices/*/power/wakeup
<br>
<br>
ウィンドウのテーマを変更する。<br>
==== ログアウト時に全てのプロセスを終了する ====
  gsettings set org.gnome.desktop.wm.preferences theme "<ウインドウのテーマ名>"
まず、/etc/systemd/logind.confファイルにおいて、以下の設定を追記する。<br>
  sudo vi /etc/systemd/logind.conf
<br>
<br>
GConfシステムは、GNOME 2.x以前のシステムであり、現在では、DConfシステムおよび<code>GSettings</code>コマンドに置き換えられている。<br>
# /etc/systemd/logind.confファイル
しかし、いくつかのソフトウェアは、まだGConfシステムを使用している。<br>
# User Add
KillUserProcesses=yes
<br>
<br>
<code>GSettings</code>コマンドは、GSettings APIを通して設定または変更するためのツールであり、DConfシステムをGLibで実装しており、<br>
次に、PCを再起動する。<br>
データをバイナリデータベースに格納する。<br>
<br>
==== 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
*: <br>
* 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
*: <br>
* 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
*: <br>
* 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
<br>
 
==== GNOME Shell Theme ====
* BlueSky
*: https://www.pling.com/p/1315849
*: 以下にインストール手順を示す。
*:* 解凍したディレクトリを、/usr/share/themesディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.themesディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.local/share/themesディレクトリに配置する。
<br>
==== Plasma Theme ====
設定方法は、KDEシステム設定から[Plasmaスタイル] - [ファイルからインストール]ボタンを押下して、ダウンロードしたファイルを選択する。<br>
* Breeze Noir Dark Blur(推奨)
*: https://www.pling.com/p/1361461<br>
*: <br>
* ROUNDED COLOR
*: https://www.pling.com/p/1352754/
<br>
==== SDDM Login Theme ====
SDDMログインテーマは、以下のURLに示すBreeze Noir Darkを推奨する。<br>
設定方法は、KDEシステム設定から[起動と終了] - [ログイン画面(SDDM)] - [テーマ]タブ - [ファイルからインストール]ボタンを押下して、<br>
ダウンロードしたファイルを選択する。<br>
https://www.pling.com/p/1361460<br>
<br>
==== アイコン ====
* Obsidian
*: https://www.pling.com/p/1169579
*: 以下にインストール手順を示す。
*:* 解凍したディレクトリを、/usr/share/iconsディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.iconsディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.local/share/iconsディレクトリに配置する。
*: gsettings set org.gnome.desktop.interface icon-theme 'Obsidian'
*: <br>
* Delft
*: https://www.pling.com/p/1199881
*: 以下にインストール手順を示す。
*:* 解凍したディレクトリを、/usr/share/iconsディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.iconsディレクトリに配置する。
*:* または、解凍したディレクトリを、~/.local/share/iconsディレクトリに配置する。
*: gsettings set org.gnome.desktop.interface icon-theme 'Delft'
<br>
 
==== カーソル ====
カーソルテーマは、以下のURLに示すVolantes Cursorsを推奨する。<br>
https://www.pling.com/p/1356095<br>
<br>
===== GNOME =====
カーソルとカーソルサイズを更新するには、まず、以下のコマンドを実行する。<br>
sudo update-alternatives --config x-cursor-theme
<br>
設定するカーソルの番号を選択する。<br>
設定後、PCを再起動する。<br>
<br>
次に、dconf-editorをインストールする。<br>
sudo zypper install dconf-tools
<br>
DCconf Editorを起動して、[org.gnome.desktop.interface] - [desktop] - [interface] - [cursor-theme]に移動して、任意のカーソルに設定する。<br>
また、[cursor-size]にて、カーソルサイズを変更することもできる。<br>
<br>
===== KDE =====
設定方法は、KDEシステム設定から[カーソル] - [ファイルからインストール]ボタンを押下して、ダウンロードしたファイルを選択する。<br>
<br><br>
<br><br>


932行目: 672行目:
<br><br>
<br><br>


== その他のエラー対処法 ==
== シャットダウンおよび再起動の待ち時間の変更 ==
===== X Windowエラー =====
シャットダウンおよび再起動時において、"a stop job is running for "と表示されて、1分30秒の待ち時間が入る場合がある。<br>
マルチユーザモード(ランレベル3)から<code>startx</code>コマンドを実行すると、<code>/home/ユーザ名/.serverauth.XXXX does not exist</code>メッセージが表示される場合がある。<br>
この待ち時間を変更するには、/etc/systemd/system.confファイルに、以下の設定を追記する。<br>
これを回避するには、/usr/bin/startxファイル(シェルスクリプト)を以下のように編集する。<br>
sudo vi /usr/bin/startx
<br>
# /usr/bin/startxファイル
# 変更前
xserverauthfile=$HOME/.serverauth.$$
# 変更後
xserverauthfile=$XAUTHORITY
<br>
<br>
===== サスペンドまたはハイバネード復帰時のUI崩れ =====
以下の例では、待ち時間を15秒に設定している。<br>
NVIDIA製のGPUを使用している場合、GPUのドライバのバグにより、サスペンドまたはハイバネードの復帰時にUIの描画が崩れるときがある。<br>
  sudo nano /etc/systemd/system.conf
この時、以下のコマンドを実行することでUIを再描画する。(エイリアスに追加することを推奨する)<br>
  killall plasmashell; plasmashell > /dev/null 2>&1 & disown
<br>
<br>
また、任意のディレクトリに以下のシェルスクリプトとデスクトップエントリファイルを作成後、グローバルショートカットキーに登録してもよい。<br>
  # /etc/systemd/system.confファイル
  # KDE-Plasma-Restart.shファイル
   
   
  #!/bin/sh
  DefaultTimeoutStartSec=15s
  killall plasmashell; plasmashell > /dev/null 2>&1 & disown
  DefaultTimeoutStopSec=15s
<br>
<br><br>
# /home/ユーザ名/.local/share/applications/KDE-Plasma-Restart.desktopファイル
 
== その他のエラー対処法 ==
[Desktop Entry]
==== X Windowエラー ====
Type=Application
マルチユーザモード(ランレベル3)から<code>startx</code>コマンドを実行すると、<code>/home/ユーザ名/.serverauth.XXXX does not exist</code>メッセージが表示される場合がある。<br>
Name=KDE Plasma Restart
これを回避するには、以下に示す2種類の方法がある。<br>
GenericName=KDE Plasma Setting
* <code>systemctl</code>コマンドの使用 (推奨)
Comment=KDE Plasma Restart Program
*: SUSEでは、<code>startx</code>コマンドは非推奨であるため、以下のコマンドを実行してGUIを起動する。
Exec=/home/ユーザ名/KDE-Plasma-Restart.sh %F
*: <code>sudo systemctl start graphical.target</code>
Icon=/home/ユーザ名/.icons/SUSE.png
*: <br>
Terminal=false
* <code>startx</code>コマンドの編集
Categories=Settings;
*: /usr/bin/startxファイル(シェルスクリプト)を以下のように編集する。<br>
MimeType=application
*: <code>sudo vi /usr/bin/startx</code>
*: <br>
*: 変更前
*: <code>xserverauthfile=$HOME/.serverauth.$$</code>
*: <br>
*: 変更後
*: <code>xserverauthfile=$XAUTHORITY</code>
<br>
<br>
==== 一部のソフトウェアで日本語が文字化けする場合 ====
==== 一部のソフトウェアで日本語が文字化けする場合 ====
1,009行目: 742行目:
<br>
<br>
===== エラー do_IRQ: 〜 No irq handler for Vector =====
===== エラー do_IRQ: 〜 No irq handler for Vector =====
このエラーメッセージは、Linuxカーネルが特定の割り込み要求 (IRQ) を処理できないことを示している。<br>
<br>
エラーメッセージの意味を以下に示す。<br>
* do_IRQ
*: Linuxカーネル内の関数で、割り込み要求を処理するためのものである。
* No irq handler for Vector
*: 特定の割り込みベクタ (番号) に対応するハンドラ (処理プログラム) が見つからないことを意味する。
* Vector
*: 具体的な割り込みベクタ番号が表示される。
<br>
このエラーが発生する理由を以下に示す。<br>
* ハードウェアとドライバーの不一致
*: 使用しているハードウェアに対応するドライバが正しくインストールされていない、または、設定されていない場合。
* IRQの競合
*: 複数のデバイスが同じIRQを使用しようとしている場合。
* BIOSの設定問題
*: IRQの割り当てがBIOS/UEFIで正しく設定されていない場合。
* ハードウェアの故障
*: デバイスが正常に機能していない、または、正しく認識されていない場合。
* カーネルの問題
*: 使用しているLinuxカーネルのバージョンが特定のハードウェアをサポートしていない場合。
* ACPI (Advanced Configuration and Power Interface) の問題
*: ACPIの実装に問題がある場合。
<br>
このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。<br>
このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。<br>
  sudo vi /etc/default/grub
  sudo vi /etc/default/grub
   
   
  # /etc/default/grubファイル
  # /etc/default/grubファイル
  GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet splash pci=nomsi,noaer"
  GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pci=nomsi,noaer"
<br>
<br>
ブートローダを作成して再起動する。<br>
ブートローダを作成して再起動する。<br>
  sudo grub2-mkcongif -o /boot/grub2/grub.cfg
  sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  sudo shutdown -r now
  sudo shutdown -r now
<br>
<br>
===== エラー Tower kernel: pcieport 0000:00:0X.0: AER: Multiple Uncorrected (Non-Fatal) error received: 0000:XX:00.0 =====
このエラーメッセージは、PCIeデバイスに関連するAdvanced Error Reporting (AER) 機能によって報告された問題を示している。<br>
* エラーメッセージの解析
** pcieport 0000:00:0X.0
**: PCIeルートポートを示す。
** AER
**: Advanced Error Reportingの略であり、PCIeデバイスのエラー報告機能である。
** Multiple Uncorrected (Non-Fatal) error
**: 複数の修正不可能なエラーが発生しているが、システムの動作を停止させるほど深刻ではないことを示す。
** 0000:XX:00.0
**: エラーが発生したPCIeデバイスのアドレスである。
<br>
考えられる原因を以下に示す。<br>
* ハードウェアの問題
*: PCIeデバイス (グラフィックカード、ネットワークカード等) の故障や不具合
*: PCIeスロットの接触不良
*: マザーボードの問題
*: <br>
* 電源の問題
*: 不安定な電源供給
*: 電源ユニットの容量不足
*: <br>
* ドライバの問題
*: 古いまたは互換性のないデバイスドライバ
*: ドライバの不具合
*: <br>
* BIOS/UEFIの設定
*: PCIe関連の設定が最適化されていない。
*: <br>
* ソフトウェアの問題
*: カーネルの不具合
*: 特定のソフトウェアとの互換性の問題
<br>
このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。<br>
sudo vi /etc/default/grub
<br>
# /etc/default/grubファイル
GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pci=nommconf"  # MMConfig (Memory-Mapped Configuration) スペースを使用しない
# または
GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pcie_aspm=off"  # PCIe Active State Power Managementを無効化する
<br>
ブートローダを作成して再起動する。<br>
sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo shutdown -r now
<br>
* pci=nommconfの設定効果
** PCIeデバイスの設定方法の変更
**: このオプションを設定する場合、LinuxカーネルはPCIeデバイスの設定にMMConfig (Memory-Mapped Configuration) スペースを使用しない。
** 従来のPCI設定方法の使用
**: 代わりに、従来のPCI設定メカニズム (I/Oポートを介した設定) が使用される。
*: <br>
* pci=nommconfの意味
** pci
**: PCIサブシステムに関するパラメータであることを示す。
** no
**: 特定の機能を無効にする。
** mmconf
**: Memory-Mapped Configurationの略であり、PCIeデバイスの設定に使用される手法を指す。
<br>
==== 起動時のテキストコンソールの解像度の設定 ====
==== 起動時のテキストコンソールの解像度の設定 ====
特に、4Kディスプレイを使用する場合かつマルチユーザモード(ランレベル3)で起動する場合、起動時のテキストコンソールの解像度が最適でない可能性がある。<br>
特に、4Kディスプレイを使用する場合かつマルチユーザモード(ランレベル3)で起動する場合、起動時のテキストコンソールの解像度が最適でない可能性がある。<br>
1,039行目: 858行目:
  GRUB_CMDLINE_LINUX_DEFAULT="... ... video=1280x1024"
  GRUB_CMDLINE_LINUX_DEFAULT="... ... video=1280x1024"
<br>
<br>
設定を有効にするため、ブートローダを作成して、OSを再起動する。<br>
設定を有効にするため、Grub2を更新して、OSを再起動する。<br>
  sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  sudo shutdown -r now
  sudo shutdown -r now
<br>
<br>
==== KDE 5におけるアプリケーションランチャーの日本語入力 ====
==== sensorsの使用 ====
KDE 5において、初期状態ではアプリケーションランチャーの日本語入力ができない。<br>
Sensorsをインストールして実行するには、/etc/default/grubファイルの<code>GRUB_CMDLINE_LINUX_DEFAULT</code>に、以下の設定を追記する必要がある。<br>
そのため、以下の手順を行って、ibusを設定する必要がある。<br>
sudo vi /etc/default/grub
<br>
<br>
まず、~/.profileファイルに以下の設定を追記する、または、~/.ximファイルを作成して以下の設定を記述する。<br>
# /etc/default/grubファイル
  # ibusの設定
  export XMODIFIERS="@im=ibus"
# ..略
  export GTK_IM_MODULE=ibus
  export QT_IM_SWITCHER=imsw-multi
GRUB_CMDLINE_LINUX_DEFAULT="〜 acpi_enforce_resources=lax"
  export QT_IM_MODULE=ibus
  LANG=ja_JP.UTF-8 ibus-daemon -dx
# ...
<br>
設定を有効にするため、Grub2を更新して、OSを再起動する。<br>
  sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  sudo shutdown -r now
<br><br>
 
==== No Mailメッセージ ====
CUIでのログインセッションにおいて、"No mail"の通知を無効にする。<br>
<br>
PAM設定ファイルのpam_mail.soと記述がある行を編集する。<br>
* 通常ログインの場合
*: /etc/pam.d/loginファイル
* SSHの場合
*: /etc/pam.d/sshdファイル
<br>
初期設定では、<code>standard</code>が設定されており、メールが無い場合にメッセージが表示される。<br>
これを、<code>quiet</code>に変更することにより、メールが存在する場合のみ表示されるようになる。<br>
sudo vi /etc/pam.d/login
<br>
# /etc/pam.d/loginファイル
# 編集前
  session  optional  pam_mail.so standard
   
  # 編集後
  session  optional  pam_mail.so quiet
<br>
これは全てのユーザに影響することに注意する。<br>
<br>
==== Firefoxの設定 ====
FirefoxからYoutube等のストリーミングを再生する場合、ディスクキャッシュが肥大化するため、ストレージの寿命を縮めることになり悪影響を及ぼす。<br>
そのため、Firefoxのディスクキャッシュを削減した方がよい。<br>
<br>
まず、Firefoxを起動して、アドレスバーに<code>about:config</code>と入力する。<br>
次に、<code>browser.cache.disk.max_entry_size</code>と入力して、<code>128</code>に設定する。<br>
<br>
<br>
次に、パネル(システムトレイ)からibusのアイコンを右クリックして、[Configure Input Method]を選択する。<br>
<code>browser.cache.disk.max_entry_size</code>項目は、ディスクキャッシュするコンテンツの最大サイズ([KB])であり、初期設定では51.2[MB]となっている。<br>
[IBusの設定]画面から、[一般]タブ - [フォントとスタイル]項目 - [プロパティーパネルを表示する]プルダウンから、[自動的に隠す]を選択する。<br>
動画のチャンクは128[KB]を超えるため、<code>browser.cache.disk.max_entry_size</code>項目の値を下げることにより、動画に関するデータはキャッシュしない。<br>
同様に、[IBusの設定]画面から、[詳細]タブ - [グローバル入力メソッドの設定]項目 - [すべてのアプリケーション間で同じ入力メソッドを共有する]チェックボックスにチェックを入力する。<br>
<br>
<br>
PCを再起動または再ログインして、アプリケーションランチャーの日本語入力および変換候補ウインドウが出力されるか確認する。<br>
また、128[KB]を超えるデータはメモリキャッシュにも残らないため、メモリキャッシュを消費することもない。<br>
<br>
<br>


==== スケーリング時におけるKonsoleおよびYakuakeのスラッタリング ====
==== openSUSE Welcomeソフトウェア ====
KDEにおいて、ディスプレイのスケーリングを設定を変更する時([KDEシステムの設定] - [ディスプレイの設定] - [Global scale:]項目)、<br>
openSUSE Welcomeソフトウェアの起動後、画面が緑のままになることがある。<br>
KonsoleおよびYakuakeのコンソール画面において、スラッタリングまたはティアリングが発生する場合がある。<br>
<br>
openSUSE Welcomeソフトウェアを正常に表示するには、Qtのインストーラをダウンロードしてライブラリをインストールする必要がある。<br>
まず、Qtのインストーラをダウンロードする。<br>
wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run
<br>
ダウンロードしたファイルに、アクセス権限を付加する。<br>
chmod u+x qt-unified-linux-x64-online.run
<br>
<br>
これを解決するには、まず、Konsoleのメイン画面から、[設定]メニューバー - [現在のプロファイルを編集]を選択する。<br>
Qtのインストール画面に従って、Qt 5.15.2のライブラリをインストールする。<br>
プロファイルの編集画面が起動するので、左ペインの[外観] - 右ペインの[その他]タブ - [Line spacing:]項目の値を<code>1</code>、[Margins:]項目の値を<code>1</code>に設定する。<br>
./qt-unified-linux-x64-online.run
<br>
<br>
最後に、OSまたはKDEを再起動する。<br>
openSUSE Welcomeソフトウェアの起動用シェルスクリプトを作成する。<br>
vi /<任意のディレクトリ>/openSUSE_Welcome.sh
<br>
<syntaxhighlight lang="sh">
#!/usr/bin/env sh
appname="opensuse-welcome"
# use -f to make the readlink path absolute
dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
if [ "$dirname" = "." ]; then
    dirname="$PWD/$dirname"
fi
# Initialize interpreter path
export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"
# Run Welcome Splash Screen binary
"$appname" "$@"
</syntaxhighlight>
<br>
openSUSE Welcomeソフトウェアを実行して、正常に表示されるかどうかを確認する。<br>
<br>
また、openSUSE Welcomeソフトウェアをソースコードからインストールする手順も示す。<br>
# 上記の手順にしたがって、Qtのインストーラをダウンロードしてライブラリをインストールする。
#: <br>
# openSUSE WelcomeソフトウェアのGithubにアクセスして、ソースコードをダウンロードする。<br>または、<code>git clone</code>コマンドを実行して、ソースコードをダウンロードする。
#: <code>git clone https://github.com/openSUSE/openSUSE-welcome.git</code>
#: <code>cd openSUSE-welcome</code>
#: <br>
# 以下に示すopenSUSE Welcomeソフトウェアのソースコードを編集する。
#: src/main.cppファイル : 53行目
#: <code>QString stri18nPath = QCoreApplication::applicationDirPath() + QDir::separator() + "../share/openSUSE-Welcome/i18n";</code>
#: <code>welcomeTranslator.load("qml_" + QLocale::system().name(), stri18nPath);</code>
#: <br>
#: date/qrc/main.qmlファイル : 19行目〜24行目
#: <code>import QtQuick 2.15</code>
#: <code>import QtQuick.Window 2.15</code>
#: <code>import QtWebEngine 1.10</code>
#: <code>import QtWebChannel 1.15</code>
#: <code>import org.openSUSE.Welcome 1.0</code>
#: <code>import QtQuick.XmlListModel 2.15</code>
#: <br>
#: data/i18n.shファイル : 8行目
#: <code>lconvert $a -o "${DESTDIR}${1}/${y}.qm"</code>
#: <br>
# openSUSE Welcomeソフトウェアをビルドおよびインストールする。
#: <code>export PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/bin:$PATH" && \</code>
#: <code>export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:$LD_LIBRARY_PATH" && \</code>
#: <code>export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib/pkgconfig:(pkg-config --variable pc_path pkg-config)</code>
#: <br>
#: <code>meson setup --prefix=<openSUSE Welcomeソフトウェアのインストールディレクトリ> build</code>
#: <code>ninja -C build</code>
#: <code>ninja -C build install</code>
#: <br>
#: <code>mkdir -p /<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin</code>
#: <code>cd build/src</code>
#: <code>cp opensuse-welcome /<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin</code>
#: <br>
# <s>[https://pkgs.org pkgsのWebサイト]にアクセスして、opensuse-welcome-langをダウンロードする。</s>
# <s>ダウンロードしたrpmファイルを展開する。</s>
# <s>展開したディレクトリにあるshareディレクトリを、openSUSE Welcomeソフトウェアのインストールディレクトリにコピーする。</s>
#: <s><code>cp /opensuse-welcome-lang-<バージョン>.noarch/usr/share <openSUSE Welcomeソフトウェアのインストールディレクトリ></code></s>
#: <br>
# openSUSE Welcomeソフトウェアのデスクトップエントリファイルを作成する。
#: <code>vi ~/.local/share/applications/org.opensuse.opensuse_welcome.desktop</code>
#: <br>
#: <code>[Desktop Entry]</code>
#: <code>Type=Application</code>
#: <code>Name=Welcome</code>
#: <code>GenericName=Welcome Utility</code>
#: <code>Exec=/<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin/opensuse-welcome</code>
#: <code>Icon=/<openSUSE Welcomeソフトウェアのインストールディレクトリ>/share/icons/hicolor/scalable/apps/org.opensuse.opensuse_welcome</code>
#: <code>Comment=The openSUSE Welcome utility.</code>
#: <code>Categories=Qt;System;Documentation</code>
#: <br>
# openSUSE Welcomeソフトウェアを自動起動に設定する。
# openSUSE Welcomeソフトウェアを実行して、正常に表示されるかどうかを確認する。
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:SUSE]]
[[カテゴリ:SUSE]]

2024年10月14日 (月) 09:22時点における最新版

概要

SUSE Linux EnterpriseおよびopenSUSEのインストールおよびインストール後の初期設定について記載する。
特に、推奨事項に関する事柄を記載する。


SUSE Linux Enterpriseの登録

インストール画面から登録する

  1. SUSE Linux Enterpriseの[言語/サポート/製品選択]画面において、[言語]や[インストールする製品]を選択して、[次へ]ボタンを押下する。
  2. [使用許諾契約]を確認して、[次へ]ボタンを押下する。
  3. 必要であれば、[ネットワーク設定]画面において、ネットワークの設定を行う。
  4. [登録]画面において、SUSE Linux Enterpriseの登録を行う。
    • [scc.suse.comを介してシステムを登録]
      [電子メールアドレス]項目と[登録コード]項目にそれぞれ入力して、[次へ]ボタンを押下する。
    • Register System via local SMT Server
      組織がローカル登録サーバを提供している場合は、[ローカル登録サーバのURL]プルダウンにURLを入力して、[次へ]ボタンを押下する。
      これは、SUSEカスタマサービスにおいて、SUSE Linux Enterpriseの登録コードを登録して、[ローカルSMTサーバを使用してシステムを登録する]機能を有効にしている必要がある。


コマンドから登録する

現在の登録情報を削除する。

sudo SUSEConnect --cleanup


新しい登録コードを登録する。

sudo SUSEConnect -r <登録コード> -e <Eメールアドレス>



SUSE Linux Enterpriseの自動更新

サブスクリプションの自動更新を無効にする手順を、以下に示す。

  1. まず、SUSEカスタマサービスにアクセスする。
  2. 次に、[注文番号]または[メールアドレス]を入力して、件名[サブスクリプションリクエスト]プルダウンを選択した後、[マイサブスクリプションからAuto-Renewをキャンセルしてください]プルダウンを選択する。
  3. 最後に、[電子メールの送信]を選択する。


注文の詳細を確認する手順を、以下に示す。

  1. https://www.findmyorder.com/ にアクセスする。
  2. [Email Address]と[Last 4 digits of your credit card]、または、[Password]と[Order Number]を入力する。
  3. 次のページの下部に[サブスクリプションの管理]を選択する。



OSのダウンロード

公式Webサイトにアクセスして、OSのイメージファイルをダウンロードする。



ブータブルUSBの作成

SUSEのISOファイルをダウンロードした後、SUSEをインストールするために、ブータブルイメージを作成する必要がある。
ブータブルストレージを作成するには、balenaEtcherventoyddコマンドを使用する。

ブータブルイメージを作成するストレージの場所

ストレージをシステムに接続する。
ブータブルイメージを作成するストレージの場所を確認するには、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のインストール時の注意点

SLE / openSUSE

もし、インストーラがフリーズする場合は、以下の手順を実施する。

  1. 可能であれば、BIOS / UEFIの設定画面からセキュアブートを有効にする。
    以下の設定例は、GIGABYTEのX570 UDの設定手順である。
    [BIOS]タブ - [CSM Support]を[Disabled]に変更する。
    [BIOS]タブ - [Secure Boot] - [Secure Boot Mode]を[標準]に変更する。
    [BIOS]タブ - [Secure Boot] - [Secure Boot]を[Enabled]に変更する。
    上記の設定により、[BIOS]タブ - [Secure Boot] - [System Mode]が[User]と表示されていることを確認する。
  2. DVD、BD、USBメモリ等からSUSEのインストーラを起動する。
  3. インストール画面にて、インストーラの設定を行う。
    • UEFIを使用してインストール
      インストール画面にある[Install]にフォーカスを移動して、[e]キーを押下する。
      grubエントリから、linuxefi/boot/vmlinuzxxxで始まる行を見つけて、splash=silentの後にnomodesetを追記する。
      [F10]キーを押下して、インストーラを起動する。
    • レガシーBIOSを使用してインストール
      インストール画面にある[Install]にフォーカスを移動して、[F5]キーを押下する。
      画面下にある[nomodeset]を選択して、[Enter]キーを押下する。
      [F5カーネル]にnomodesetと表示されていることを確認する。
      [Enter]キーを押下して、インストーラを起動する。
  4. インストール完了後、リポジトリを更新してシステムをアップグレードする。
    sudo zypper refresh && sudo zypper dup
  5. OSを再起動する。
  6. 再起動後、YaSTのブートローダからnomodesetの記述を削除する。

    または、/etc/default/grubファイルから、GRUB_CMDLINE_LINUX_DEFAULT =で始まる行を見つけて、nomodesetの記述を削除する。
    以下のコマンドを実行して、GRUBを更新する。
    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
  7. 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(SUSE15.3以前では必須)
    このモジュールには、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起動時にブートプロセスの情報を見る場合は、ブートローダのオプションを以下のように設定する。

  • quietオプションを削除する。
  • splashオプションを、splash=verboseに設定する。



システムの更新

インストールした直後に、システムの更新を実行して、システムが最新の状態を保つようにする。

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全体を有効にする場合

## SLE 15 〜 SLE 15 SP6 (推奨)
sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ Packman

## openSUSE Leap (推奨)
sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' Packman


# Packman Essentialを有効にする場合

## SLE 15 〜 SLE 15 SP6
sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/Essentials/ Packman-Essentials

## openSUSE Leap
sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/Essentials/' Packman-Essentials


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オプションは、外部リポジトリのパッケージをディストリビューションバージョンに変更しない場合に使用する。

Packmanリポジトリから必要なコーデックをまとめてインストールする場合、以下に示すライブラリをインストールする。

# SLE 15 SP 6 / openSUSE Leap 15.6
sudo zypper install --allow-vendor-change x264 libx264-164 libx264-164-32bit \
                                          x265 libx265-209 libx265-209-32bit \
                                          vlc vlc-codecs vlc-codec-gstreamer \
                                          ffmpeg-4                           \
                                          libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit               \
                                          libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \
                                          libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit         \
                                          libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit       \
                                          libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit               \
                                          gstreamer-plugins-libav gstreamer-plugins-libav-32bit                           \
                                          gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon


Packmanリポジトリからコーデックを個別にインストールする場合を、以下に示す。
PackmanリポジトリからH264/AVCおよびh265/HEVCをインストールするには、以下に示すライブラリをインストールする。

# SLE 15 SP 6 / openSUSE Leap 15.6
sudo zypper install --allow-vendor-change x264 libx264-164 libx264-164-32bit \
                                          x265 libx265-209 libx265-209-32bit \
                                          vlc vlc-codecs vlc-codec-gstreamer


Packmanリポジトリから音声や動画を記録、変換、およびストリーミングする機能が必要な場合は、以下に示すライブラリ (FFmpegマルチメディアフレームワーク等) をインストールする。

# SLE 15 SP 6 / openSUSE Leap 15.6
sudo zypper install --allow-vendor-change ffmpeg-4                                                                        \
                                          libavcodec57 libavcodec57-32bit libavdevice57 libavdevice57-32bit               \
                                          libavcodec58_134 libavcodec58_134-32bit libavdevice58_13 libavdevice58_13-32bit \
                                          libavfilter6 libavfilter6-32bit libavfilter7_110 libavfilter7_110-32bit         \
                                          libavformat57 libavformat57-32bit libavformat58_76 libavformat58_76-32bit       \
                                          libavutil55 libavutil55-32bit libavutil56_70 libavutil56_70-32bit


PackmanリポジトリからGStreamerライブラリが必要な場合は、以下に示すライブラリをインストールする。

# SLE 15 SP 6 / openSUSE Leap 15.6
sudo zypper install --allow-vendor-change gstreamer-plugins-libav gstreamer-plugins-libav-32bit              \
                                          gstreamer-plugins-bad-orig-addon gstreamer-plugins-ugly-orig-addon \
                                          vlc vlc-codec-gstreamer vlc-codec-gstreamer                        \
                                          ogmtools


今後、Pacmanリポジトリから取得することを設定する。

# SLE 15 〜 SLE 15 SP6
sudo zypper dup --allow-vendor-change --from https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/

# openSUSE Leap 15 〜 openSUSE Leap 15.6
sudo zypper dup --allow-vendor-change --from 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/'



Webブラウザのプラグイン

多くのWebサイトでは、期待どおりに機能するために様々なブラウザプラグインをインストールする必要がある。 これらのプラグインは、Webサイトの閲覧中にパフォーマンスとセキュリティに影響を与える可能性があるため、必要な場合にのみインストールすること。

オンライン動画やゲーム等のFlashサポートが必要な場合は、freshplayerpluginをインストールする。(Packmanリポジトリが必要)

sudo zypper ar -cfp 90 https://ftp.gwdg.de/pub/linux/misc/packman/suse/SLE_15/ packman              # SLE 15 〜 SLE15 SP6

sudo zypper ar -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman  # openSUSE Leap

sudo zypper install freshplayerplugin


Javaアプレットは、ゲームや一部の国のホームバンキングなど、様々な用途に使用されている。
java-1_8_0-openjdk-pluginがインストールされていない場合は、パッケージマネージャを使用してインストールする。

sudo zypper install java-1_8_0-openjdk


Firefoxおよびその他のWebブラウザで様々なマルチメディアストリームのサポートを取得するには、xine-browser-pluginをインストールする。(Packmanリポジトリが必要)

sudo zypper install xine-browser-plugin



公式リポジトリには存在しないアプリケーションのインストール

公式リポジトリ(またはソフトウェアセンター)に存在しないアプリケーションをインストールする必要がある場合は、
FlatpakSnapsを有効にしてインストールする、または、ソースコードからビルドおよびインストールする。


電力管理の改善(TLPのインストール)

システム設定から電力を管理するためのオプションがいくつかある。
ただし、ラップトップでopenSUSEを使用する場合は、バッテリーの使用量を減らしたい場合がある。
TLPをインストールすることにより、コンピュータを監視し、最適な手法を(自動的に)実装してバッテリーの寿命を最適化する。
TLPをインストールするには、以下のコマンドを実行する。

sudo zypper install tlp tlp-rdw
sudo systemctl enable tlp



Microsoftフォント

MS Officeのファイルを扱う場合、Microsoftフォント(Arial、Times New Roman、Comic Sans等)をインストールする。
これらは、Packmanリポジトリからインストールすることができる。

sudo zypper install fetchmsttfonts



.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="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x"
 export J2SDKDIR="<Oracle JDKのインストールディレクトリ>/jdk-x.x.x"
 
 # Vagrantのホームディレクトリの変更
 export VAGRANT_HOME="<Vagrantのホームディレクトリのフルパス>"
 
 # VirtualBoxの仮想マシンディレクトリの変更
 VBoxManage setproperty machinefolder <VirtualBoxの仮想マシンディレクトリのフルパス>



/etc/profile.localの設定

システム全体に対して、任意の環境変数を設定する場合、/etc/profile.localファイルを作成する必要がある。
この時、ログインシェルのシンタックスに沿って記述する必要がある。(ログインシェルがBashの場合、Bashのシンタックス)

以下の例では、環境変数PATHにおいて、ユーザが独自にインストールしたソフトウェアのパスを通している。

sudo vi /etc/profile.local


 # /etc/profile.localファイル
 
 export PATH="/path/to/software/bin:$PATH"



PKG-CONFIGの設定

pkg-config (ver. 0.24以降)をインストールしている場合、インストールされているライブラリを検索する場所を確認するには、以下のコマンドを実行する。

pkg-config --variable pc_path pkg-config


pkg-configにパスに追加するには、環境変数PKG_CONFIG_PATHを設定する。
環境変数PKG_CONFIG_PATHは、コロンで区切られた.pcファイルを検索するディレクトリのリストである。

デフォルトは、libdir/pkgconfig:datadir/pkgconfigであり、
libdirはpkg-configがインストールされたlibdir、datadirはpkg-configがインストールされたdatadirである。

例えば、.profileファイルに記述する場合は、以下のように追記する。

vi ~/.profile


# ~/.profileファイル

export PKG_CONFIG_PATH="$(pkg-config --variable pc_path pkg-config)"
export PKG_CONFIG_PATH="$HOME/xxx/lib64/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="$HOME/yyy/lib/pkgconfig:$PKG_CONFIG_PATH"
export PKG_CONFIG_PATH="$HOME/zzz/lib64/pkgconfig:$PKG_CONFIG_PATH"
# ...略



パスワードフィードバックの設定

ターミナルでパスワードフィードバックを有効にする方法を記載する。

まず、/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を終了する。


ディスプレイマネージャの変更

変更したいディスプレイマネージャをインストールする。

# GDM
sudo zypper install gdm

# SDDM
sudo zypper install sddm

# LightDM
sudo zypper install lightdm


変更可能な全てのディスプレイマネージャを表示する。

sudo update-alternatives --list default-displaymanager


  • ディスプレイマネージャを対話式に変更する場合
    sudo update-alternatives --config default-displaymanager

  • ディスプレイマネージャを非対話式に変更する場合
    sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/<ディスプレイマネージャ名>

    例 SDDMに変更する場合 : sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/sddm
    例 GDMに変更する場合 : sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/gdm
    例 LightDMに変更する場合 : sudo update-alternatives --set default-displaymanager /usr/lib/X11/displaymanagers/lightdm


GUIで行う場合、SLEおよびopenSUSEにおいて、YaSTまたはYaST2を起動して、[その他] - [Alternatives]を選択して変更する方法もある。
これは、yast2-alternativesパッケージをインストールする必要がある。

sudo zypper install yast2-alternatives


選択可能なディスプレイマネージャ名を、以下に示す。

  • GDM
  • LightDM
  • SDDM
  • kdm (KDE 4)
  • kdm3 (KDE 3)


※注意
GNOMEを使用している場合は、依存関係の問題を回避するため、GDMを使用することを推奨する。
その他のDEでは、問題なくLightDMを使用することができる。

LightDMには、NVidiaドライバに関するいくつかの問題もあり、自動ログインが機能しない場合がある。
ただし、自動ログインはセキュリティ上の問題を引き起こすため、非推奨ではあるが、これらの機能を使用しない場合でも安全に使用できる。


キーボード

キーボード配列の変更

KDE環境において、JP配列キーボードからUS配列のキーボードに変更する場合、以下の手順で設定を変更することができる。

  1. [KDEシステム設定]を開く。
  2. [入力デバイス]を選択する。
  3. 左ペインから[キーボード] - 右ペインの[レイアウト]タブを選択 - 画面中央にある[レイアウトを設定]チェックボックスにチェックを入力する。
  4. [+ Add]ボタンを押下して、[英語(US)]を選択して、[OK]ボタンを押下する。
  5. [適用]ボタンを押下する。
  6. PCを再起動する。



その他の設定

自動ログイン

  • YaST
    1. YaSTを起動して、[セキュリティとユーザ] - [ユーザとグループの管理]を選択する。
    2. [ユーザとグループの管理]画面の[ユーザ]タブを選択して、画面右下の[熟練者用オプション]プルダウンから[ログイン設定]を選択する。
    3. [ディスプレイマネージャのログイン設定]画面の[自動ログイン]にチェックを入力して、
      [ログインするユーザ]プルダウンからユーザを選択する。
    4. [OK]ボタンを押下する。

  • 手動
    1. 以下のファイルを編集する。
      sudo vi /etc/sysconfig/displaymanager
    2. DISPLAYMANAGER_AUTOLOGIN項目において、自動ログインするユーザ名を記述する。
      変更前
      DISPLAYMANAGER_AUTOLOGIN=""
      変更後
      DISPLAYMANAGER_AUTOLOGIN="<自動ログインするユーザ名>"
    3. Linuxを再起動して、自動ログインできるか確認する。


日本語環境のインストール

基本的には、SUSEのインストールメディアを使用して、インストール開始時に日本語を選択することである。
ただし、SUSEのLive DVDには、日本語関連のパッケージが含まれていないので、以下の手順を実行する必要がある。
また、何らかの理由で、テキストモードや英語でインストールしなければならない場合でも、インストール完了後に次の手順で日本語化できる。

  • インストールメディアが無い場合
    1. インターネットに接続する。
    2. YaSTを起動して、[言語設定]を選択して、[日本語]に設定する。
    3. [ソフトウェアの管理]を選択して、[View]プルダウンから[Languages]を選択する。
    4. [ja 日本語]にチェックを入力して、[Accept]ボタンを押下する。
    5. 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


ロケールの変更

システム全体のロケールを変更する場合
sudo vi /etc/sysconfig/language


# 変更前
#RC_LANG="ja_JP.UTF-8"  <-- コメントアウト
#ROOT_USES_LANG="ctype" <-- コメントアウト

# 変更後
RC_LANG="ja_JP.EUC-JP"
ROOT_USES_LANG="yes"    <-- 標準ユーザと同じロケール (RC_LANGの設定値) を使用する


ロケールを確認する。

locale


PCを再起動する。

ユーザごとにロケールを変更する場合

対象ユーザでログインして、~/.profileファイル等に環境変数LANGを設定する。

vi ~/.profile


 # 例: 言語を日本語, 地域を日本, 文字コード (LC_CTYPE) をEUC-JPに変更する場合 --> export LANG=ja_JP.EUC-JP
 export LANG=<言語>_<地域>.<LC_CTYPE>


再ログイン、または、PCを再起動する。

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ターミナルフォルトのサイドチャネルの問題を緩和するため等。


マウス操作でスリープ / ハイバネートから復帰する

まず、マウスのデバイスID等を確認するため、以下のコマンドを実行する。
以下の例では、Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouseと記載がある行から、IDの値を確認する。

lsusb

# 出力例
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 062a:4102 MosArt Semiconductor Corp. Wireless Mouse
Bus 001 Device 002: ID 1a81:1004 Holtek Semiconductor, Inc. Wireless Dongle 2.4 GHZ HT82D40REW
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


マウスのデバイスファイルがあるディレクトリを確認するため、以下のコマンドを実行する。
以下の例では、/sys/bus/usb/devices/1-2/product:2.4G Wireless Mouseと記載があるため、
デバイスファイルがあるディレクトリは、/sys/bus/usb/devices/1-2ディレクトリである。

grep . /sys/bus/usb/devices/*/product

# 出力例
/sys/bus/usb/devices/1-1/product:Wireless Dongle
/sys/bus/usb/devices/1-2/product:2.4G Wireless Mouse
/sys/bus/usb/devices/usb1/product:xHCI Host Controller
/sys/bus/usb/devices/usb2/product:xHCI Host Controller
/sys/bus/usb/devices/usb3/product:xHCI Host Controller
/sys/bus/usb/devices/usb4/product:xHCI Host Controller
/sys/bus/usb/devices/usb5/product:xHCI Host Controller
/sys/bus/usb/devices/usb6/product:xHCI Host Controller


次に、/etc/udev/rules.dディレクトリに以下のファイルを作成する。

sudo vi /etc/udev/rules.d/10-wakeup.rules


# /etc/udev/rules.d/10-wakeup.rulesファイル

ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="<IDの左側の値>", ATTRS{idProduct}=="<IDの右側の値>" RUN+="/bin/sh -c 'echo enabled > /<デバイスファイルがあるディレクトリ>/power/wakeup'"


最後に、PCを再起動する。

マウス操作でスリープ / ハイバネートから復帰できるかどうか確認するには、以下のコマンドを実行する。
この時、マウスのデバイスディレクトリが記載されている行において、enableと出力されているかどうかを確認する。

grep . /sys/bus/usb/devices/*/power/wakeup


ログアウト時に全てのプロセスを終了する

まず、/etc/systemd/logind.confファイルにおいて、以下の設定を追記する。

sudo vi /etc/systemd/logind.conf


# /etc/systemd/logind.confファイル

# User Add
KillUserProcesses=yes


次に、PCを再起動する。


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



シャットダウンおよび再起動の待ち時間の変更

シャットダウンおよび再起動時において、"a stop job is running for 〜"と表示されて、1分30秒の待ち時間が入る場合がある。
この待ち時間を変更するには、/etc/systemd/system.confファイルに、以下の設定を追記する。

以下の例では、待ち時間を15秒に設定している。

sudo nano /etc/systemd/system.conf


# /etc/systemd/system.confファイル

DefaultTimeoutStartSec=15s
DefaultTimeoutStopSec=15s



その他のエラー対処法

X Windowエラー

マルチユーザモード(ランレベル3)からstartxコマンドを実行すると、〜 /home/ユーザ名/.serverauth.XXXX does not existメッセージが表示される場合がある。
これを回避するには、以下に示す2種類の方法がある。

  • systemctlコマンドの使用 (推奨)
    SUSEでは、startxコマンドは非推奨であるため、以下のコマンドを実行してGUIを起動する。
    sudo systemctl start graphical.target

  • startxコマンドの編集
    /usr/bin/startxファイル(シェルスクリプト)を以下のように編集する。
    sudo vi /usr/bin/startx

    変更前
    xserverauthfile=$HOME/.serverauth.$$

    変更後
    xserverauthfile=$XAUTHORITY


一部のソフトウェアで日本語が文字化けする場合

例えば、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

このエラーメッセージは、Linuxカーネルが特定の割り込み要求 (IRQ) を処理できないことを示している。

エラーメッセージの意味を以下に示す。

  • do_IRQ
    Linuxカーネル内の関数で、割り込み要求を処理するためのものである。
  • No irq handler for Vector
    特定の割り込みベクタ (番号) に対応するハンドラ (処理プログラム) が見つからないことを意味する。
  • Vector
    具体的な割り込みベクタ番号が表示される。


このエラーが発生する理由を以下に示す。

  • ハードウェアとドライバーの不一致
    使用しているハードウェアに対応するドライバが正しくインストールされていない、または、設定されていない場合。
  • IRQの競合
    複数のデバイスが同じIRQを使用しようとしている場合。
  • BIOSの設定問題
    IRQの割り当てがBIOS/UEFIで正しく設定されていない場合。
  • ハードウェアの故障
    デバイスが正常に機能していない、または、正しく認識されていない場合。
  • カーネルの問題
    使用しているLinuxカーネルのバージョンが特定のハードウェアをサポートしていない場合。
  • ACPI (Advanced Configuration and Power Interface) の問題
    ACPIの実装に問題がある場合。


このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。

sudo vi /etc/default/grub

# /etc/default/grubファイル
GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pci=nomsi,noaer"


ブートローダを作成して再起動する。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo shutdown -r now


エラー Tower kernel: pcieport 0000:00:0X.0: AER: Multiple Uncorrected (Non-Fatal) error received: 0000:XX:00.0

このエラーメッセージは、PCIeデバイスに関連するAdvanced Error Reporting (AER) 機能によって報告された問題を示している。

  • エラーメッセージの解析
    • pcieport 0000:00:0X.0
      PCIeルートポートを示す。
    • AER
      Advanced Error Reportingの略であり、PCIeデバイスのエラー報告機能である。
    • Multiple Uncorrected (Non-Fatal) error
      複数の修正不可能なエラーが発生しているが、システムの動作を停止させるほど深刻ではないことを示す。
    • 0000:XX:00.0
      エラーが発生したPCIeデバイスのアドレスである。


考えられる原因を以下に示す。

  • ハードウェアの問題
    PCIeデバイス (グラフィックカード、ネットワークカード等) の故障や不具合
    PCIeスロットの接触不良
    マザーボードの問題

  • 電源の問題
    不安定な電源供給
    電源ユニットの容量不足

  • ドライバの問題
    古いまたは互換性のないデバイスドライバ
    ドライバの不具合

  • BIOS/UEFIの設定
    PCIe関連の設定が最適化されていない。

  • ソフトウェアの問題
    カーネルの不具合
    特定のソフトウェアとの互換性の問題


このエラーを修正するには、/etc/default/grubファイルを以下のように修正する。

sudo vi /etc/default/grub


# /etc/default/grubファイル

GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pci=nommconf"   # MMConfig (Memory-Mapped Configuration) スペースを使用しない
# または
GRUB_CMDLINE_LINUX_DEFAULT="〜 quiet pcie_aspm=off"  # PCIe Active State Power Managementを無効化する


ブートローダを作成して再起動する。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo shutdown -r now


  • pci=nommconfの設定効果
    • PCIeデバイスの設定方法の変更
      このオプションを設定する場合、LinuxカーネルはPCIeデバイスの設定にMMConfig (Memory-Mapped Configuration) スペースを使用しない。
    • 従来のPCI設定方法の使用
      代わりに、従来のPCI設定メカニズム (I/Oポートを介した設定) が使用される。

  • pci=nommconfの意味
    • pci
      PCIサブシステムに関するパラメータであることを示す。
    • no
      特定の機能を無効にする。
    • mmconf
      Memory-Mapped Configurationの略であり、PCIeデバイスの設定に使用される手法を指す。


起動時のテキストコンソールの解像度の設定

特に、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"


設定を有効にするため、Grub2を更新して、OSを再起動する。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo shutdown -r now


sensorsの使用

Sensorsをインストールして実行するには、/etc/default/grubファイルのGRUB_CMDLINE_LINUX_DEFAULTに、以下の設定を追記する必要がある。

sudo vi /etc/default/grub


# /etc/default/grubファイル

# ..略

GRUB_CMDLINE_LINUX_DEFAULT="〜 acpi_enforce_resources=lax"

# ...略


設定を有効にするため、Grub2を更新して、OSを再起動する。

sudo grub2-mkconfig -o /boot/grub2/grub.cfg
sudo shutdown -r now



No Mailメッセージ

CUIでのログインセッションにおいて、"No mail"の通知を無効にする。

PAM設定ファイルのpam_mail.soと記述がある行を編集する。

  • 通常ログインの場合
    /etc/pam.d/loginファイル
  • SSHの場合
    /etc/pam.d/sshdファイル


初期設定では、standardが設定されており、メールが無い場合にメッセージが表示される。
これを、quietに変更することにより、メールが存在する場合のみ表示されるようになる。

sudo vi /etc/pam.d/login


# /etc/pam.d/loginファイル

# 編集前
session   optional   pam_mail.so standard

# 編集後
session   optional   pam_mail.so quiet


これは全てのユーザに影響することに注意する。

Firefoxの設定

FirefoxからYoutube等のストリーミングを再生する場合、ディスクキャッシュが肥大化するため、ストレージの寿命を縮めることになり悪影響を及ぼす。
そのため、Firefoxのディスクキャッシュを削減した方がよい。

まず、Firefoxを起動して、アドレスバーにabout:configと入力する。
次に、browser.cache.disk.max_entry_sizeと入力して、128に設定する。

browser.cache.disk.max_entry_size項目は、ディスクキャッシュするコンテンツの最大サイズ([KB])であり、初期設定では51.2[MB]となっている。
動画のチャンクは128[KB]を超えるため、browser.cache.disk.max_entry_size項目の値を下げることにより、動画に関するデータはキャッシュしない。

また、128[KB]を超えるデータはメモリキャッシュにも残らないため、メモリキャッシュを消費することもない。

openSUSE Welcomeソフトウェア

openSUSE Welcomeソフトウェアの起動後、画面が緑のままになることがある。

openSUSE Welcomeソフトウェアを正常に表示するには、Qtのインストーラをダウンロードしてライブラリをインストールする必要がある。
まず、Qtのインストーラをダウンロードする。

wget http://download.qt.io/official_releases/online_installers/qt-unified-linux-x64-online.run


ダウンロードしたファイルに、アクセス権限を付加する。

chmod u+x qt-unified-linux-x64-online.run


Qtのインストール画面に従って、Qt 5.15.2のライブラリをインストールする。

./qt-unified-linux-x64-online.run


openSUSE Welcomeソフトウェアの起動用シェルスクリプトを作成する。

vi /<任意のディレクトリ>/openSUSE_Welcome.sh


 #!/usr/bin/env sh
 
 appname="opensuse-welcome"
 
 # use -f to make the readlink path absolute
 dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
 
 if [ "$dirname" = "." ]; then
    dirname="$PWD/$dirname"
 fi
 
 # Initialize interpreter path
 export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:$LD_LIBRARY_PATH"
 
 # Run Welcome Splash Screen binary
 "$appname" "$@"


openSUSE Welcomeソフトウェアを実行して、正常に表示されるかどうかを確認する。

また、openSUSE Welcomeソフトウェアをソースコードからインストールする手順も示す。

  1. 上記の手順にしたがって、Qtのインストーラをダウンロードしてライブラリをインストールする。

  2. openSUSE WelcomeソフトウェアのGithubにアクセスして、ソースコードをダウンロードする。
    または、git cloneコマンドを実行して、ソースコードをダウンロードする。
    git clone https://github.com/openSUSE/openSUSE-welcome.git
    cd openSUSE-welcome

  3. 以下に示すopenSUSE Welcomeソフトウェアのソースコードを編集する。
    src/main.cppファイル : 53行目
    QString stri18nPath = QCoreApplication::applicationDirPath() + QDir::separator() + "../share/openSUSE-Welcome/i18n";
    welcomeTranslator.load("qml_" + QLocale::system().name(), stri18nPath);

    date/qrc/main.qmlファイル : 19行目〜24行目
    import QtQuick 2.15
    import QtQuick.Window 2.15
    import QtWebEngine 1.10
    import QtWebChannel 1.15
    import org.openSUSE.Welcome 1.0
    import QtQuick.XmlListModel 2.15

    data/i18n.shファイル : 8行目
    lconvert $a -o "${DESTDIR}${1}/${y}.qm"

  4. openSUSE Welcomeソフトウェアをビルドおよびインストールする。
    export PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/bin:$PATH" && \
    export LD_LIBRARY_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib:$LD_LIBRARY_PATH" && \
    export PKG_CONFIG_PATH="/<Qtのインストールディレクトリ>/<Qtのバージョン>/gcc_64/lib/pkgconfig:(pkg-config --variable pc_path pkg-config)

    meson setup --prefix=<openSUSE Welcomeソフトウェアのインストールディレクトリ> build
    ninja -C build
    ninja -C build install

    mkdir -p /<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin
    cd build/src
    cp opensuse-welcome /<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin

  5. pkgsのWebサイトにアクセスして、opensuse-welcome-langをダウンロードする。
  6. ダウンロードしたrpmファイルを展開する。
  7. 展開したディレクトリにあるshareディレクトリを、openSUSE Welcomeソフトウェアのインストールディレクトリにコピーする。
    cp /opensuse-welcome-lang-<バージョン>.noarch/usr/share <openSUSE Welcomeソフトウェアのインストールディレクトリ>

  8. openSUSE Welcomeソフトウェアのデスクトップエントリファイルを作成する。
    vi ~/.local/share/applications/org.opensuse.opensuse_welcome.desktop

    [Desktop Entry]
    Type=Application
    Name=Welcome
    GenericName=Welcome Utility
    Exec=/<openSUSE Welcomeソフトウェアのインストールディレクトリ>/bin/opensuse-welcome
    Icon=/<openSUSE Welcomeソフトウェアのインストールディレクトリ>/share/icons/hicolor/scalable/apps/org.opensuse.opensuse_welcome
    Comment=The openSUSE Welcome utility.
    Categories=Qt;System;Documentation

  9. openSUSE Welcomeソフトウェアを自動起動に設定する。
  10. openSUSE Welcomeソフトウェアを実行して、正常に表示されるかどうかを確認する。