「システムメンテナンス」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎構成ファイル: 構成を設定に変更)
 
(4人の利用者による、間の14版が非表示)
1行目: 1行目:
 
[[Category:システム管理]]
 
[[Category:システム管理]]
[[fa:نگهداشت سیستم]]
 
 
[[en:System maintenance]]
 
[[en:System maintenance]]
  +
[[es:System maintenance]]
  +
[[fa:نگهداشت سیستم]]
  +
[[fr:System maintenance]]
  +
[[pt:System maintenance]]
 
[[ru:System maintenance]]
 
[[ru:System maintenance]]
 
[[zh-hans:System maintenance]]
 
[[zh-hans:System maintenance]]
17行目: 20行目:
 
$ systemctl --failed
 
$ systemctl --failed
   
詳しくは [[Systemd#システムの状態分析する]] を参照。
+
詳しくは [[systemd#ユニット使う]] を参照。
   
 
=== ログファイル ===
 
=== ログファイル ===
   
{{ic|/var/log}} にあるログファイルエラーが出か調べる。
+
{{ic|/var/log/}} にあるログファイルエラーを確認し、systemd ジャーナルに記録されたメッセージも確認しくださ:
   
  +
# journalctl -b
systemd の journal に優先度が高いエラーが出てないか確認:
 
   
  +
詳しくは [[systemd/ジャーナル]] を見て下さい。
# journalctl -p 3 -xb
 
 
詳しくは [[Systemd#Journal]] を見て下さい。
 
   
 
[[Xorg]] のエラーについては [[Xorg#トラブルシューティング]]を見てください。
 
[[Xorg]] のエラーについては [[Xorg#トラブルシューティング]]を見てください。
63行目: 64行目:
 
[https://wiki.archlinux.jp/index.php/Pacman#.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AE.E3.82.A2.E3.83.83.E3.83.97.E3.82.B0.E3.83.AC.E3.83.BC.E3.83.89 パッケージのアップグレード] を介して定期的にシステム全体のアップグレードを実行し、最新のバグ修正とセキュリティ更新の両方を楽しんだり、一度に手動で介入する必要のあるパッケージのアップグレードが多すぎたりしないようにすることをお勧めします。コミュニティにサポートを要求する場合、通常、システムは最新であると見なされます。
 
[https://wiki.archlinux.jp/index.php/Pacman#.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AE.E3.82.A2.E3.83.83.E3.83.97.E3.82.B0.E3.83.AC.E3.83.BC.E3.83.89 パッケージのアップグレード] を介して定期的にシステム全体のアップグレードを実行し、最新のバグ修正とセキュリティ更新の両方を楽しんだり、一度に手動で介入する必要のあるパッケージのアップグレードが多すぎたりしないようにすることをお勧めします。コミュニティにサポートを要求する場合、通常、システムは最新であると見なされます。
   
更新後に問題が発生した場合にシステムを簡単に救出できるように、Archインストールメディアまたは別の Linux ''ライブ'' CD/USB を用意してください。 Arch を実稼働環境で実行している場合、または何らかの理由でダウンタイムを許容できない場合は、最初に、重要ではない複製システムで構成ファイルの変更とソフトウェアパッケージの更新をテストします。その後、問題が発生しない場合は、本番システムに変更をロールアウトします。
+
更新後に問題が発生した場合にシステムを簡単に救出できるように、Archインストールメディアまたは別の Linux ''ライブ'' CD/USB を用意してください。 Arch を実稼働環境で実行している場合、または何らかの理由でダウンタイムを許容できない場合は、最初に、重要ではない複製システムで設定ファイルの変更とソフトウェアパッケージの更新をテストします。その後、問題が発生しない場合は、本番システムに変更をロールアウトします。
   
 
システムに [[AUR]] のパッケージがある場合は、それらすべてを慎重にアップグレードしてください。
 
システムに [[AUR]] のパッケージがある場合は、それらすべてを慎重にアップグレードしてください。
73行目: 74行目:
 
アップグレードする前に、ユーザーは [https://www.archlinux.org/ Arch Linuxホームページ] にアクセスして最新ニュースを確認するか、[https://www.archlinux.org/feeds/news RSS フィード] を購読する必要があります、 または [https://mailman.archlinux.org/mailman/listinfo/arch-announce/arch-announce メーリングリスト] 更新に通常とは異なるユーザーの介入が必要な場合 (''pacman'' の指示に従うだけで処理できる以上の) 適切なニュース投稿が行われます。
 
アップグレードする前に、ユーザーは [https://www.archlinux.org/ Arch Linuxホームページ] にアクセスして最新ニュースを確認するか、[https://www.archlinux.org/feeds/news RSS フィード] を購読する必要があります、 または [https://mailman.archlinux.org/mailman/listinfo/arch-announce/arch-announce メーリングリスト] 更新に通常とは異なるユーザーの介入が必要な場合 (''pacman'' の指示に従うだけで処理できる以上の) 適切なニュース投稿が行われます。
   
基本的なソフトウェア ([[カーネル]]、 [[xorg]]、 [[systemd]]、 {{Pkg|glibc}} など) を新しいバージョンにアップグレードする前に、適切な [https://bbs.archlinux.org/forum] で、問題が報告されているかどうかを確認します。
+
基本的なソフトウェア ([[カーネル]]、 [[xorg]]、 [[systemd]]、 {{Pkg|glibc}} など) を新しいバージョンにアップグレードする前に、適切な [https://bbs.archlinux.org フォーラム] で、問題が報告されているかどうかを確認します。
   
 
ユーザーは、パッケージをアップグレードすると、即時の介入が必要になる可能性のある ''予期しない'' 問題が発生する可能性があることにも同様に注意する必要があります。したがって、重要なタスクを実行するために必要になる直前に、安定したシステムをアップグレードすることはお勧めしません。アップグレード後の問題に対処できるように、代わりに十分な時間をとって待つことをお勧めします。
 
ユーザーは、パッケージをアップグレードすると、即時の介入が必要になる可能性のある ''予期しない'' 問題が発生する可能性があることにも同様に注意する必要があります。したがって、重要なタスクを実行するために必要になる直前に、安定したシステムをアップグレードすることはお勧めしません。アップグレード後の問題に対処できるように、代わりに十分な時間をとって待つことをお勧めします。
89行目: 90行目:
 
=== 部分的なアップグレードはサポートされていません ===
 
=== 部分的なアップグレードはサポートされていません ===
   
Arch Linux [https://ja.wikipedia.org/wiki/%E3%83%AD%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9 ローリングリリース] ディストリビューションです。つまり、新しい [[Wikipedia:Library(computing)|library]] バージョンがリポジトリにプッシュされると、 [https://www.archlinux.org/people/developers/developers][https://wiki.archlinux.jp/index.php/Trusted_Users Trusted Users] がすべてを再構築します。ライブラリに対して再構築する必要があるリポジトリ内のパッケージ。たとえば2つパッケージが同じライブラリに依存している場合、一方のパッケージのみアップグレードすると、ライブラも (依存関係として) アップグレードされ、古いバーョンのライブラに依存ているもう一方のパッケージが破損する可能性があります。
+
Arch Linux [[Wikipedia:ローリングリリース|ローリングリリース]]のディストリビューションです。つまり、新しい[[Wikipedia:ja:ライブラリ|ライブラリ]]バージョンがリポジトリにプッシュされると、[https://archlinux.org/people/developers/ 開発者]や[[Package Maintainers|パッケージメンテナー]]がそれらのライブラリにして再ビルドが必要なすべてのパッケージをリ内で再構築します。
  +
例えば、2つのパッケージが同じライブラリに依存している場合、一方のパッケージをアップグレードすると、その依存関係としてライブラリもアップグレードされる可能性があります。その結果、古いバージョンのライブラリに依存しているもう一方のパッケージが動作しなくなることがあります。
   
  +
そのため、部分的なアップグレードは'''サポートされていません''' '''絶対に'''使用しないでください:
そのため、部分的なアップグレードは '''サポートされていません''' です。 {{ic|pacman -Sy ''package''}} または {{ic|pacman-Sy}} の後に {{ic|pacman -S ''package''}} などの同等のものを使用しないでください。パッケージをインストールする前に、 ''常に'' アップグレード ({{ic|pacman -Syu}} を使用) エラーのために {{ic|pacman -Syu}} がアップグレードを実行しない場合、最終結果は{{ic | pacman-Sy}}の実行と同じになることに注意してください。したがって、エラーを解決し、アップグレード操作をできるだけ早く完了する必要があります。同じ理由で {{ic|IgnorePkg}} と {{ic|IgnoreGroup}} を使用する場合は十分に注意してください。システムにローカルでビルドされたパッケージ ([[AUR]]パッケージなど) がある場合、依存関係が [[Wikipedia:soname|soname]] バンプを受け取ったときに、ユーザーはそれらを再構築する必要があります。
 
   
  +
* {{ic|pacman -Sy ''package''}}
部分的なアップグレードシナリオが作成され、バイナリがリンク先のライブラリを見つけられないために壊れてしまった場合、'''単にシンボリックリンクするだけで問題を ''修正'' してはいけません。''' ライブラリは '''下位互換性がない''' 場合に [[Wikipedia:soname|soname]] を受け取ります。正しく同期されたミラーへの単純な {{ic|pacman -Syu}}は、 ''Pacman'' が壊れていない限り、問題を解決します。
 
  +
* {{ic|pacman -Sy}} の後に {{ic|pacman -S ''package''}} を実行する方法 (パッケージのインストール時に {{ic|-S'''u'''}} がない点に注意)
  +
* {{ic|pacman -Syuw}} ({{ic|pacman -Syuw}} も {{ic|pacman -Sy}} と同様のリスクを伴い、''pacman'' の同期データベースを更新するものの、新しいパッケージをインストールしないため注意が必要)
   
  +
パッケージデータベースを更新する際は、'''必ず''' {{ic|pacman -Syu}} を使用して完全なアップグレードを行ってください。
{{pkg|pacman-contrib}} パッケージに含まれている bashスクリプト ''checkupdates'' は、システムアップデートを同時に実行せずに、インストールされたパッケージへのアップグレードをチェックする安全な方法を提供します。
 
  +
なお、{{ic|pacman -Syu}} がエラーによってアップグレードを実行できなかった場合、その結果は {{ic|pacman -Sy}} を実行したのと同じになります。したがって、エラーを解決し、できるだけ早くアップグレードを完了させる必要があります。
  +
  +
同じ理由で、{{ic|IgnorePkg}} や {{ic|IgnoreGroup}} を使用する際も十分注意してください。
  +
システムにローカルでビルドされたパッケージ(例えば [[AUR]] パッケージ)がある場合、それらの依存関係が[[Wikipedia:soname|soname]]の変更(バンプ)を受けた際には、ユーザーが再ビルドする必要があります。
  +
  +
もし部分的なアップグレードが行われ、バイナリがリンク先のライブラリを見つけられずに壊れてしまった場合、'''シンボリックリンクを作成して "修正" しようとしてはいけません'''。
  +
ライブラリが [[Wikipedia:soname|soname]] の変更を受けるのは、'''後方互換性がない場合'''です。
  +
適切に同期されたミラーに対してシンプルに {{ic|pacman -Syu}} を実行すれば、''pacman'' 自体が壊れていない限り問題は解決します。
  +
  +
また、{{Pkg|pacman-contrib}} パッケージに含まれる bash スクリプト ''checkupdates'' を使用すると、システム全体の更新を行わずにインストール済みパッケージのアップグレードを安全に確認できます。さらに、同期データベースを変更せずに、保留中のアップデートを pacman のキャッシュにダウンロードするオプションも提供されています。
   
 
=== アップグレード中のアラートに対応 ===
 
=== アップグレード中のアラートに対応 ===
101行目: 115行目:
 
システムをアップグレードするときは、[[pacman]]が提供するアラート通知に注意してください。ユーザーが追加のアクションを必要とする場合は、すぐに対処してください。パックマンアラートがわかりにくい場合は、フォーラムと最近のニュース投稿で詳細な手順を検索してください。
 
システムをアップグレードするときは、[[pacman]]が提供するアラート通知に注意してください。ユーザーが追加のアクションを必要とする場合は、すぐに対処してください。パックマンアラートがわかりにくい場合は、フォーラムと最近のニュース投稿で詳細な手順を検索してください。
   
=== 新しい構成ファイルを迅速に処理する ===
+
=== 新しい設定ファイルを迅速に処理する ===
   
 
pacman を呼び出すと、 {{ic|.pacnew}} ファイルと {{ic|.pacsave}} ファイルを作成できます。パックマンはこれが発生したときに通知を提供し、ユーザーはこれらのファイルを迅速に処理する必要があります。詳細な手順については、 [https://wiki.archlinux.jp/index.php/Pacnew_%E3%81%A8_Pacsave_%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB Pacnew と Pacsave ファイル] wiki ページを参照してください。
 
pacman を呼び出すと、 {{ic|.pacnew}} ファイルと {{ic|.pacsave}} ファイルを作成できます。パックマンはこれが発生したときに通知を提供し、ユーザーはこれらのファイルを迅速に処理する必要があります。詳細な手順については、 [https://wiki.archlinux.jp/index.php/Pacnew_%E3%81%A8_Pacsave_%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB Pacnew と Pacsave ファイル] wiki ページを参照してください。
   
また、コピーまたは作成した可能性のある他の構成ファイルについても検討してください。パッケージにホームディレクトリにコピーした設定例がある場合は、新しいパッケージが作成されているかどうかを確認してください。
+
また、コピーまたは作成した可能性のある他の設定ファイルについても検討してください。パッケージにホームディレクトリにコピーした設定例がある場合は、新しいパッケージが作成されているかどうかを確認してください。
   
 
=== アップグレード後に再起動 ===
 
=== アップグレード後に再起動 ===
 
{{Expansion|Mention ''checkservices'' from {{Pkg|archlinux-contrib}}}}
 
   
 
通常、アップグレードは既存のプロセスには適用されません。アップグレードを完全に適用するには、プロセスを再起動する必要があります。
 
通常、アップグレードは既存のプロセスには適用されません。アップグレードを完全に適用するには、プロセスを再起動する必要があります。
  +
  +
{{Pkg|archlinux-contrib}} パッケージには [https://github.com/archlinux/contrib/blob/master/admin/checkservices checkservices] というスクリプトが含まれています。このスクリプトは [[Pacnew と Pacsave ファイル#pacdiff|pacdiff]] を実行して ''.pacnew'' ファイルをマージし、その後、更新前のライブラリで動作しているプロセスの存在をチェックして、そのプロセスを再起動するかをユーザに確認します。
   
 
カーネルは、再起動せずにパッチを適用するのが特に困難です。再起動は常に最も安全なオプションですが、これが非常に不便な場合は、 [[カーネルライブパッチ]] を使用して再起動せずにアップグレードを適用できます。
 
カーネルは、再起動せずにパッチを適用するのが特に困難です。再起動は常に最も安全なオプションですが、これが非常に不便な場合は、 [[カーネルライブパッチ]] を使用して再起動せずにアップグレードを適用できます。
125行目: 139行目:
 
=== 孤立したパッケージとドロップされたパッケージを確認します ===
 
=== 孤立したパッケージとドロップされたパッケージを確認します ===
   
アップグレード後、不要になったパッケージや公式リポジトリに存在しなくなったパッケージが存在する可能性があります。
+
アップグレード後、不要になったパッケージや公式リポジトリから削除されたパッケージが存在する可能性があります。
   
{{ic|pacman -Qtd}} を使用して、依存関係としてインストールされたパッケージを確認しますが、現在他のパッケージはそれ依存ていません。それでも孤立したパッケージが必要な場合は、 [https://wiki.archlinux.jp/index.php/Pacman#.E3.82.A4.E3.83.B3.E3.82.B9.E3.83.88.E3.83.BC.E3.83.AB.E7.90.86.E7.94.B1 インストール理由] 明示的に変更することをお勧めします。それ以外の場合、パッケージが不要になった場合は、削除できます。
+
{{ic|pacman -Qtd}} を使用すると、依存関係としてインストールされたものの、現在他のパッケージら依存されていないパッケージを確認できます。
  +
もし孤立した (orphan) パッケージがまだ必要な場合は、[[インストール理由]]を明示的 (explicit) に変更することを推奨します。
  +
一方で、不要になった場合は削除できます。詳細は [[pacman/ヒントとテクニック#使用していないパッケージ (孤立したパッケージ) の削除]] を参照してください。
   
さらに、一部のパッケージはリモートリポジトリに存在しなくなった可能性がありますが、ローカルシステムには存在している可能性があります。すべての外部パッケージを一覧表示するには、 {{ic|pacman-Qm}} を使用します。このリストには、手動でインストールされたパッケージが含まれることに注意してください (たとえば、 [[AUR]] から) AUR で (まだ) 利用可能なパッケージを除外するには、 {{AUR|ancient-packages}} ツールを使用します。
+
さらに、一部のパッケージはリモートリポジトリに存在しなくなったものの、ローカルシステムには残っている場合があります。
  +
すべての外部(foreign)パッケージを一覧表示するには、{{ic|pacman -Qm}} を使用します。
  +
ただし、このリストには手動でインストールしたパッケージ (例: [[AUR]] からインストールしたもの) も含まれます。
  +
AUR で現在も利用可能なパッケージを除外するには、[https://bbs.archlinux.org/viewtopic.php?id=288205#p2116629 BBS#288205] のスクリプトを使用するか、{{AUR|ancient-packages}} ツールを試してみてください。
   
 
== パッケージマネージャーを使用してソフトウェアをインストールする ==
 
== パッケージマネージャーを使用してソフトウェアをインストールする ==
139行目: 158行目:
 
* 最後に、必要なプログラムが公式リポジトリまたは AUR にない場合は、そのプログラムの[[パッケージの作成]]方法を学習してください。
 
* 最後に、必要なプログラムが公式リポジトリまたは AUR にない場合は、そのプログラムの[[パッケージの作成]]方法を学習してください。
   
不適切にインストールされたファイルをクリーンアップするには、[https://wiki.archlinux.jp/index.php/Pacman_%E3%83%92%E3%83%B3%E3%83%88#.E3.83.95.E3.82.A1.E3.82.A4.E3.83.AB.E3.81.8C.E3.81.A9.E3.81.AE.E3.83.91.E3.83.83.E3.82.B1.E3.83.BC.E3.82.B8.E3.81.AB.E3.82.82.E5.90.AB.E3.81.BE.E3.82.8C.E3.81.A6.E3.81.84.E3.81.AA.E3.81.84.E3.81.93.E3.81.A8.E3.82.92.E7.A2.BA.E8.AA.8D ファイルがどのパッケージにも含まれていないこと確認]を参照してください。
+
不適切にインストールされたファイルをクリーンアップするには、[[pacman/ヒントとテクニック#どのパッケージにも所有されていないファイル特定する]] を参照してください。
   
 
=== オープンソースドライバーを選択してください ===
 
=== オープンソースドライバーを選択してください ===
178行目: 197行目:
 
=== ホームディレクトリの掃除 ===
 
=== ホームディレクトリの掃除 ===
   
  +
古い設定ファイルは、新しいソフトウェアのバージョンと競合したり、時間の経過とともに破損する可能性があります。
{{ic|$HOME}} ディレクトリの古いファイルを削除して設定やその他の有用なファイルを探しやすくします。以下のフォルダを確認してください:
 
  +
不要な設定ファイルは定期的に削除しましょう。特に、ホームディレクトリや {{ic|~/.config}} 内の設定ファイルを整理することを推奨します。
  +
同様の理由から、異なるインストール環境間でホームディレクトリを共有する際も注意が必要です。
  +
  +
以下のディレクトリを確認してください:
   
 
* {{ic|~/.config/}} -- アプリケーションが設定を保存するフォルダ
 
* {{ic|~/.config/}} -- アプリケーションが設定を保存するフォルダ
184行目: 207行目:
 
* {{ic|~/.local/share/}} -- 古いファイルがここに保存されていることがあります
 
* {{ic|~/.local/share/}} -- 古いファイルがここに保存されていることがあります
   
  +
詳細については、[[XDG Base Directory]] を参照してください。
{{Note|上のパスはそれぞれ {{ic|$XDG_CONFIG_HOME}}, {{ic|$XDG_CACHE_HOME}}, {{ic|$XDG_DATA_HOME}} 環境変数のデフォルトになっています。違うパスを使っている場合は設定を確認してください。詳しくは [[XDG Base Directory サポート]]を参照。}}
 
 
詳しくは [[Arch ファイルシステム階層#/home: ユーザーディレクトリ]] を見て下さい。
 
   
ホームディレクトリの掃除長い目で考えると、定期的要なファイルリストアップ削除するのが良いでしょう。助けになるスクリプト [https://github.com/lahwaacz/archlinux-dotfiles/blob/master/Scripts/rmshit.py rmshit.py] が存在します。
+
ホームディレクトリに不要な一時ファイルが誤った場所に作成されるのを防ぐため、不要なファイルリストを管理、定期的に削除することをおすすめします。
  +
例えば、[https://github.com/lahwaacz/Scripts/blob/master/rmshit.py rmshit.py] を使用すると便利です。
   
{{Pkg|rmlint}} を使用して、重複ファイル、空のファイル、再帰的な空ディレクトリ、および壊れたシンボリックリンクを検し、オプションで削除することもできます。
+
{{Aur|rmlint-git}} を使用すると、重複ファイル、空のファイル、再帰的な空ディレクトリ、壊れたシンボリックリンクを検し、必要に応じて削除できます。
   
 
=== 壊れたシンボリックリンク ===
 
=== 壊れたシンボリックリンク ===
198行目: 220行目:
 
システムの壊れたシンボリックリンクをすべてすばやく一覧表示するには、次を使用します。
 
システムの壊れたシンボリックリンクをすべてすばやく一覧表示するには、次を使用します。
   
# find / -xtype l -print
+
# find / -type d \( -path "/dev" -o -path "/proc" -o -path "/run" -o -path "/sys" \) -prune -o -xtype l -print
   
 
次に、このリストから不要なエントリを調べて削除します。
 
次に、このリストから不要なエントリを調べて削除します。
216行目: 238行目:
 
{{Pkg|linux-lts}} パッケージは代替の Arch カーネルパッケージであり、 [[core]] リポジトリで入手できます。この特定のカーネルバージョンには、セキュリティ修正や一部の機能バックポートなど、アップストリームからの長期サポート (LTS) があります。頻度の低いカーネル更新と安定性が必要な場合、または新しいカーネルバージョンで問題が発生した場合に備えて、フォールバックカーネルが必要な場合に役立ちます。
 
{{Pkg|linux-lts}} パッケージは代替の Arch カーネルパッケージであり、 [[core]] リポジトリで入手できます。この特定のカーネルバージョンには、セキュリティ修正や一部の機能バックポートなど、アップストリームからの長期サポート (LTS) があります。頻度の低いカーネル更新と安定性が必要な場合、または新しいカーネルバージョンで問題が発生した場合に備えて、フォールバックカーネルが必要な場合に役立ちます。
   
ブートオプションとして使用できるようにするには、 [https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9 ブートローダ] の構成ファイルを更新して LTS カーネルと RAM ディスクを使用する必要があります: {{ic|vmlinuz-linux-lts}} と {{ic|initramfs -linux-lts.img}}
+
ブートオプションとして使用できるようにするには、 [https://wiki.archlinux.jp/index.php/Arch_%E3%83%96%E3%83%BC%E3%83%88%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9 ブートローダ] の設定ファイルを更新して LTS カーネルと RAM ディスクを使用する必要があります: {{ic|vmlinuz-linux-lts}} と {{ic|initramfs -linux-lts.img}}
   
 
== 参照 ==
 
== 参照 ==
 
* [https://bbs.archlinux.org/viewtopic.php?id=146850 Arch News Bash Script]
 
* [https://bbs.archlinux.org/viewtopic.php?id=146850 Arch News Bash Script]
  +
* [[fwupd]]
* [https://bbs.archlinux.org/viewtopic.php?pid=1791008 Automatic Arch System Maintenance]
 

2025年2月26日 (水) 23:28時点における最新版

関連記事

長期にわたって Arch を適切に機能させるには定期的なシステムメンテナンスが不可欠です。暇があるときにメンテナンスするのは多くのユーザーの習慣となっています。

エラーの確認

systemd サービスの失敗

systemd サービスが failed 状態になってないか確認:

$ systemctl --failed

詳しくは systemd#ユニットを使う を参照。

ログファイル

/var/log/ にあるログファイルのエラーを確認し、systemd ジャーナルに記録されたメッセージも確認してください:

# journalctl -b

詳しくは systemd/ジャーナル を見て下さい。

Xorg のエラーについては Xorg#トラブルシューティングを見てください。

バックアップ

重要なデータのバックアップを定期的に作成します。ケースにより適した多くの代替アプリケーションについては、同期およびバックアッププログラム を参照してください。その他の興味深い記事については カテゴリ:システムリカバリ を参照してください。

バックアップは systemd/タイマー で自動化できます。

設定ファイル

設定ファイルを編集する前に、問題が発生した場合に作業バージョンに戻すことができるようにバックアップを作成してください。 vimemacs のようなエディターはこれを自動的に行うことができ、 etckeeper のようなツールは /etcバージョン管理システム (VCS) に保持します。 :詳細については、 gitignore を使う を参照してください。

インストールされているパッケージのリスト

インストールされているすべてのパッケージのリストを維持して、完全な再インストールが避けられない場合に、元の環境を簡単に再作成できるようにします。

詳しくは リストからパッケージをインストールする をご覧ください。

Pacman データベース

pacman データベースをバックアップ を参照してください。

暗号化メタデータ

Backup for disk encryption scenarios を参照してください。

システムおよびユーザーデータ

システムバックアップ を参照してください。

システムのアップグレード

パッケージのアップグレード を介して定期的にシステム全体のアップグレードを実行し、最新のバグ修正とセキュリティ更新の両方を楽しんだり、一度に手動で介入する必要のあるパッケージのアップグレードが多すぎたりしないようにすることをお勧めします。コミュニティにサポートを要求する場合、通常、システムは最新であると見なされます。

更新後に問題が発生した場合にシステムを簡単に救出できるように、Archインストールメディアまたは別の Linux ライブ CD/USB を用意してください。 Arch を実稼働環境で実行している場合、または何らかの理由でダウンタイムを許容できない場合は、最初に、重要ではない複製システムで設定ファイルの変更とソフトウェアパッケージの更新をテストします。その後、問題が発生しない場合は、本番システムに変更をロールアウトします。

システムに AUR のパッケージがある場合は、それらすべてを慎重にアップグレードしてください。

pacman は強力なパッケージ管理ツールですが、すべてのケースを処理しようとするわけではありません。ユーザーは用心深く、自分のシステムを維持する責任を負わなければなりません。

システムをアップグレードする前に読んでください

アップグレードする前に、ユーザーは Arch Linuxホームページ にアクセスして最新ニュースを確認するか、RSS フィード を購読する必要があります、 または メーリングリスト 更新に通常とは異なるユーザーの介入が必要な場合 (pacman の指示に従うだけで処理できる以上の) 適切なニュース投稿が行われます。

基本的なソフトウェア (カーネルxorgsystemdglibc など) を新しいバージョンにアップグレードする前に、適切な フォーラム で、問題が報告されているかどうかを確認します。

ユーザーは、パッケージをアップグレードすると、即時の介入が必要になる可能性のある 予期しない 問題が発生する可能性があることにも同様に注意する必要があります。したがって、重要なタスクを実行するために必要になる直前に、安定したシステムをアップグレードすることはお勧めしません。アップグレード後の問題に対処できるように、代わりに十分な時間をとって待つことをお勧めします。

ヒント: informantAUR のような pacman フックを使用すると、前回の更新の実行以降に読んでいない新しい ArchNews がある場合に更新できなくなります。

特定の pacman コマンドを避けてください

部分的なアップグレード は避けてください。つまり、 pacman -Sy を実行しないでください。代わりに、常に pacman -Syu を使用してください。

通常、pacman で --overwrite オプションを使用することは避けてください。 --overwrite オプションは、 glob を含む引数を取ります。 pacman を使用すると、globに一致するファイルのファイル競合チェックがバイパスされます。適切に保守されたシステムでは、Arch 開発者によって明示的に推奨された場合にのみ使用する必要があります。 システムをアップグレードする前に読んでください セクションを参照してください。

pacman で -d オプションを使用することは避けてください。 pacman -Rdd package は、パッケージの削除中に依存関係のチェックをスキップします。その結果、重大な依存関係を提供するパッケージが削除され、システムが破損する可能性があります。

部分的なアップグレードはサポートされていません

Arch Linux はローリングリリースのディストリビューションです。つまり、新しいライブラリのバージョンがリポジトリにプッシュされると、開発者パッケージメンテナーが、それらのライブラリに対して再ビルドが必要なすべてのパッケージをリポジトリ内で再構築します。 例えば、2つのパッケージが同じライブラリに依存している場合、一方のパッケージをアップグレードすると、その依存関係としてライブラリもアップグレードされる可能性があります。その結果、古いバージョンのライブラリに依存しているもう一方のパッケージが動作しなくなることがあります。

そのため、部分的なアップグレードはサポートされていません 絶対に使用しないでください:

  • pacman -Sy package
  • pacman -Sy の後に pacman -S package を実行する方法 (パッケージのインストール時に -Su がない点に注意)
  • pacman -Syuw (pacman -Syuwpacman -Sy と同様のリスクを伴い、pacman の同期データベースを更新するものの、新しいパッケージをインストールしないため注意が必要)

パッケージデータベースを更新する際は、必ず pacman -Syu を使用して完全なアップグレードを行ってください。 なお、pacman -Syu がエラーによってアップグレードを実行できなかった場合、その結果は pacman -Sy を実行したのと同じになります。したがって、エラーを解決し、できるだけ早くアップグレードを完了させる必要があります。

同じ理由で、IgnorePkgIgnoreGroup を使用する際も十分注意してください。 システムにローカルでビルドされたパッケージ(例えば AUR パッケージ)がある場合、それらの依存関係がsonameの変更(バンプ)を受けた際には、ユーザーが再ビルドする必要があります。

もし部分的なアップグレードが行われ、バイナリがリンク先のライブラリを見つけられずに壊れてしまった場合、シンボリックリンクを作成して "修正" しようとしてはいけません。 ライブラリが soname の変更を受けるのは、後方互換性がない場合です。 適切に同期されたミラーに対してシンプルに pacman -Syu を実行すれば、pacman 自体が壊れていない限り問題は解決します。

また、pacman-contrib パッケージに含まれる bash スクリプト checkupdates を使用すると、システム全体の更新を行わずにインストール済みパッケージのアップグレードを安全に確認できます。さらに、同期データベースを変更せずに、保留中のアップデートを pacman のキャッシュにダウンロードするオプションも提供されています。

アップグレード中のアラートに対応

システムをアップグレードするときは、pacmanが提供するアラート通知に注意してください。ユーザーが追加のアクションを必要とする場合は、すぐに対処してください。パックマンアラートがわかりにくい場合は、フォーラムと最近のニュース投稿で詳細な手順を検索してください。

新しい設定ファイルを迅速に処理する

pacman を呼び出すと、 .pacnew ファイルと .pacsave ファイルを作成できます。パックマンはこれが発生したときに通知を提供し、ユーザーはこれらのファイルを迅速に処理する必要があります。詳細な手順については、 Pacnew と Pacsave ファイル wiki ページを参照してください。

また、コピーまたは作成した可能性のある他の設定ファイルについても検討してください。パッケージにホームディレクトリにコピーした設定例がある場合は、新しいパッケージが作成されているかどうかを確認してください。

アップグレード後に再起動

通常、アップグレードは既存のプロセスには適用されません。アップグレードを完全に適用するには、プロセスを再起動する必要があります。

archlinux-contrib パッケージには checkservices というスクリプトが含まれています。このスクリプトは pacdiff を実行して .pacnew ファイルをマージし、その後、更新前のライブラリで動作しているプロセスの存在をチェックして、そのプロセスを再起動するかをユーザに確認します。

カーネルは、再起動せずにパッチを適用するのが特に困難です。再起動は常に最も安全なオプションですが、これが非常に不便な場合は、 カーネルライブパッチ を使用して再起動せずにアップグレードを適用できます。

壊れた更新を元に戻す

パッケージの更新によって問題が発生することが予想される/わかっている場合、パッケージャーは、パッケージが更新されたときに pacman が適切なメッセージを表示するようにします。更新後に問題が発生した場合は、 /var/log/pacman.log を参照して、 pacman の出力を再確認してください。

ヒント: wat-gitAUR などのログビューアを使用して pacman ログを検索できます。

この時点で、pacmanを通じて入手できる情報がないこと、https://www.archlinux.org/ に相対的なニュースがないこと、および更新に関するフォーラムの投稿がないことを確認した後で、問題の パッケージのダウングレード して フォーラムIRC で支援を求めることを検討してください。

孤立したパッケージとドロップされたパッケージを確認します

アップグレード後、不要になったパッケージや、公式リポジトリから削除されたパッケージが存在する可能性があります。

pacman -Qtd を使用すると、依存関係としてインストールされたものの、現在は他のパッケージから依存されていないパッケージを確認できます。 もし孤立した (orphan) パッケージがまだ必要な場合は、インストール理由を明示的 (explicit) に変更することを推奨します。 一方で、不要になった場合は削除できます。詳細は pacman/ヒントとテクニック#使用していないパッケージ (孤立したパッケージ) の削除 を参照してください。

さらに、一部のパッケージはリモートリポジトリには存在しなくなったものの、ローカルシステムには残っている場合があります。 すべての外部(foreign)パッケージを一覧表示するには、pacman -Qm を使用します。 ただし、このリストには手動でインストールしたパッケージ (例: AUR からインストールしたもの) も含まれます。 AUR で現在も利用可能なパッケージを除外するには、BBS#288205 のスクリプトを使用するか、ancient-packagesAUR ツールを試してみてください。

パッケージマネージャーを使用してソフトウェアをインストールする

Pacman は、ファイルを追跡する上であなたよりもはるかに優れた仕事をします。手動でインストールすると、遅かれ早かれ、何をしたかを忘れたり、インストールした場所を忘れたり、競合するソフトウェアをインストールしたり、間違った場所にインストールしたりします。

  • パッケージのインストール セクションの方法を使用して公式リポジトリからパッケージをインストールします。
  • ご希望のプログラムがない場合は、 AUR で誰かがパッケージを作成していないか確認してください。その記事の方法に従ってインストールしてください。
  • 最後に、必要なプログラムが公式リポジトリまたは AUR にない場合は、そのプログラムのパッケージの作成方法を学習してください。

不適切にインストールされたファイルをクリーンアップするには、pacman/ヒントとテクニック#どのパッケージにも所有されていないファイルを特定する を参照してください。

オープンソースドライバーを選択してください

プロプライエタリドライバに頼る前に、常にオープンソースドライバを試してください。ほとんどの場合、オープンソースドライバーはプロプライエタリドライバーよりも安定していて信頼性があります。オープンソースドライバーのバグは、より簡単かつ迅速に修正されます。プロプライエタリドライバーはより多くの機能を提供できますが、これには安定性が犠牲になる可能性があります。このジレンマを回避するには、完全な機能を備えた成熟したオープンソースドライバーをサポートしていることがわかっているハードウェアコンポーネントを選択してみてください。オープンソースのLinuxドライバーを備えたハードウェアに関する情報は、 linux-drivers.org で入手できます。

非公式パッケージに注意してください

AUR または 非公式ユーザーリポジトリ のパッケージを使用する場合は注意が必要です。ほとんどは通常のユーザーによって提供されているため、公式リポジトリの標準と同じ基準ではない場合があります。 AUR パッケージのインストールを自動化する AUR ヘルパー は避けてください。 常にパッケージをビルドおよび/またはインストールする前に、 PKGBUILD の正常性、間違いまたは悪意のあるコードの兆候を確認してください。

メンテナンスを簡素化するために、使用する非公式パッケージの量を制限してください。実際に使用されているものを定期的にチェックし、他のものを削除(または公式の対応物と交換)します。便利なコマンドについては、 Pacman メンテナンス を参照してください。

ミラーリストを更新します

ミラーの品質は時間の経過とともに変化する可能性があり、一部がオフラインになったり、ダウンロード速度が低下したりする可能性があるため、pacmanのミラーリストを更新してください。

詳細については、 ミラー を参照してください。

ファイルシステムの掃除

削除するファイルを探すときは、一番ディスク容量を取っているファイルを見つけるのが重要です。この作業に役立つプログラムは以下に載っています:

パッケージキャッシュ

/var/cache/pacman/pkg/ から不要な .pkg ファイルを削除して、ディスク領域を解放します。

詳細については、 パッケージキャッシュの削除 を参照してください。

(孤立) した未使用のパッケージ

システムから未使用のパッケージを削除して、ディスクスペースを解放し、メンテナンスを簡素化します。

詳細については、 使用していないパッケージの削除 (孤立したパッケージ) を参照してください。

ホームディレクトリの掃除

古い設定ファイルは、新しいソフトウェアのバージョンと競合したり、時間の経過とともに破損する可能性があります。 不要な設定ファイルは定期的に削除しましょう。特に、ホームディレクトリや ~/.config 内の設定ファイルを整理することを推奨します。 同様の理由から、異なるインストール環境間でホームディレクトリを共有する際も注意が必要です。

以下のディレクトリを確認してください:

  • ~/.config/ -- アプリケーションが設定を保存するフォルダ
  • ~/.cache/ -- プログラムのキャッシュによって巨大化することがあります
  • ~/.local/share/ -- 古いファイルがここに保存されていることがあります

詳細については、XDG Base Directory を参照してください。

ホームディレクトリに不要な一時ファイルが誤った場所に作成されるのを防ぐために、不要なファイルのリストを管理し、定期的に削除することをおすすめします。 例えば、rmshit.py を使用すると便利です。

rmlint-gitAUR を使用すると、重複ファイル、空のファイル、再帰的な空ディレクトリ、壊れたシンボリックリンクを検出し、必要に応じて削除できます。

壊れたシンボリックリンク

古い、壊れたシンボリックリンクがシステムの周りにある可能性があります。 それらを削除する必要があります。 これらを参照して下さい、 こちら および こちら しかし、壊れたシンボリックリンクの中には目的を果たすものもあるのでやみくもに削除しないでください [1]

システムの壊れたシンボリックリンクをすべてすばやく一覧表示するには、次を使用します。

# find / -type d \( -path "/dev" -o -path "/proc" -o -path "/run" -o -path "/sys" \) -prune -o -xtype l -print

次に、このリストから不要なエントリを調べて削除します。

ヒントとテクニック

以下のヒントは通常は必要ありませんが、特定のユーザーはそれらが役立つと感じるかもしれません。

実績のあるソフトウェアパッケージを使用する

Arch のローリングリリースは、最新の機能を試し、できるだけ早くアップストリームの更新を取得したいユーザーにとっては朗報ですが、システムのメンテナンスをより困難にする可能性もあります。メンテナンスを簡素化し、安定性を向上させるには、最先端のソフトウェアを避け、成熟した実績のあるソフトウェアのみをインストールするようにしてください。このようなパッケージは、主要な構成の変更や機能の削除など、難しいアップグレードを受け取る可能性が低くなります。問題が発生した場合のサポートを簡素化するために、強力で活発な開発コミュニティと多数の有能なユーザーがいるソフトウェアを優先します。

テストからの個々のパッケージであっても、テストリポジトリの使用は避けてください。これらのパッケージは実験的なものであり、安定したシステムには適していません。同様に、アップストリームの開発ソースから直接ビルドされたパッケージは避けてください。これらは通常 AUR にあり、devdevelsvncvsgit などの名前が付いています。

linux-lts パッケージをインストールします

linux-lts パッケージは代替の Arch カーネルパッケージであり、 core リポジトリで入手できます。この特定のカーネルバージョンには、セキュリティ修正や一部の機能バックポートなど、アップストリームからの長期サポート (LTS) があります。頻度の低いカーネル更新と安定性が必要な場合、または新しいカーネルバージョンで問題が発生した場合に備えて、フォールバックカーネルが必要な場合に役立ちます。

ブートオプションとして使用できるようにするには、 ブートローダ の設定ファイルを更新して LTS カーネルと RAM ディスクを使用する必要があります: vmlinuz-linux-ltsinitramfs -linux-lts.img

参照