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

提供: ArchWiki
ナビゲーションに移動 検索に移動
(→‎参照: リンクを追加)
225行目: 225行目:
 
== 参照 ==
 
== 参照 ==
 
* [https://bbs.archlinux.org/viewtopic.php?id=146850 Arch News Bash Script]
 
* [https://bbs.archlinux.org/viewtopic.php?id=146850 Arch News Bash Script]
  +
* [https://bbs.archlinux.org/viewtopic.php?pid=1791008 Automatic Arch System Maintenance]

2020年12月26日 (土) 20:06時点における版

関連記事

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

エラーの確認

systemd サービスの失敗

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

$ systemctl --failed

詳しくは Systemd#システムの状態を分析する を参照。

ログファイル

/var/log

/var/log にあるログファイルにエラーが出てないか調べる。

Systemd journal

systemd の journal に優先度が高いエラーが出てないか確認:

# journalctl -p 3 -xb

詳しくは Systemd#Journal を見て下さい。

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 など) を新しいバージョンにアップグレードする前に、適切な [1] で、問題が報告されているかどうかを確認します。

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

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

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

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

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

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

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

Arch Linuxは ローリングリリース ディストリビューションです。つまり、新しい library バージョンがリポジトリにプッシュされると、 [2]Trusted Users がすべてを再構築します。ライブラリに対して再構築する必要があるリポジトリ内のパッケージ。たとえば、2つのパッケージが同じライブラリに依存している場合、一方のパッケージのみをアップグレードすると、ライブラリも (依存関係として) アップグレードされ、古いバージョンのライブラリに依存しているもう一方のパッケージが破損する可能性があります。

そのため、部分的なアップグレードは サポートされていません です。 pacman -Sy package または pacman-Sy の後に pacman -S package などの同等のものを使用しないでください。パッケージをインストールする前に、 常に アップグレード (pacman -Syu を使用) エラーのために pacman -Syu がアップグレードを実行しない場合、最終結果は pacman-Syの実行と同じになることに注意してください。したがって、エラーを解決し、アップグレード操作をできるだけ早く完了する必要があります。同じ理由で IgnorePkgIgnoreGroup を使用する場合は十分に注意してください。システムにローカルでビルドされたパッケージ (AURパッケージなど) がある場合、依存関係が soname バンプを受け取ったときに、ユーザーはそれらを再構築する必要があります。

部分的なアップグレードシナリオが作成され、バイナリがリンク先のライブラリを見つけられないために壊れてしまった場合、単にシンボリックリンクするだけで問題を 修正 してはいけません。 ライブラリは 下位互換性がない 場合に soname を受け取ります。正しく同期されたミラーへの単純な pacman -Syuは、 Pacman が壊れていない限り、問題を解決します。

pacman-contrib パッケージに含まれている bashスクリプト checkupdates は、システムアップデートを同時に実行せずに、インストールされたパッケージへのアップグレードをチェックする安全な方法を提供します。

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

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

新しい構成ファイルを迅速に処理する

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

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

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

この記事またはセクションは加筆を必要としています。
理由: Mention checkservices from archlinux-contrib (議論: トーク:システムメンテナンス#)

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

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

壊れた更新を元に戻す

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

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

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

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

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

pacman -Qtd を使用して、依存関係としてインストールされたパッケージを確認しますが、現在、他のパッケージはそれらに依存していません。それでも孤立したパッケージが必要な場合は、 インストール理由 を明示的に変更することをお勧めします。それ以外の場合、パッケージが不要になった場合は、削除できます。

さらに、一部のパッケージはリモートリポジトリに存在しなくなった可能性がありますが、ローカルシステムには存在している可能性があります。すべての外部パッケージを一覧表示するには、 pacman-Qm を使用します。このリストには、手動でインストールされたパッケージが含まれることに注意してください (たとえば、 AUR から) AUR で (まだ) 利用可能なパッケージを除外するには、 ancient-packagesAUR ツールを使用します。

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

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

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

不適切にインストールされたファイルをクリーンアップするには、ファイルがどのパッケージにも含まれていないことを確認を参照してください。

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

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

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

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

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

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

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

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

ファイルシステムの掃除

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

パッケージキャッシュ

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

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

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

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

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

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

$HOME ディレクトリの古いファイルを削除して設定やその他の有用なファイルを探しやすくします。以下のフォルダを確認してください:

  • ~/.config/ -- アプリケーションが設定を保存するフォルダ
  • ~/.cache/ -- プログラムのキャッシュによって巨大化することがあります
  • ~/.local/share/ -- 古いファイルがここに保存されていることがあります
ノート: 上のパスはそれぞれ $XDG_CONFIG_HOME, $XDG_CACHE_HOME, $XDG_DATA_HOME 環境変数のデフォルトになっています。違うパスを使っている場合は設定を確認してください。詳しくは XDG Base Directory サポートを参照。

詳しくは Arch ファイルシステム階層#/home: ユーザーディレクトリ を見て下さい。

ホームディレクトリの掃除を長い目で考えると、定期的に必要ないファイルをリストアップして削除するのが良いでしょう。助けになるスクリプト rmshit.py が存在します。

rmlintAUR を使用して、重複ファイル、空のファイル、再帰的な空のディレクトリ、および壊れたシンボリックリンクを検索し、オプションで削除することもできます。

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

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

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

# find / -xtype l -print

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

ヒントとテクニック

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

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

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

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

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

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

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

参照