pacman は、インストール済みパッケージの記録と、設定された Arch リポジトリを管理します。
ローカルデータベースには、インストール済みのバージョン、インストール理由、ファイル、所有権が記録されます。
同期データベースには、リポジトリ内のパッケージが記述されます。これらのビューの整合性を保つため、更新とアップグレードは 1 回のトランザクションで実行します。
ローカルデータベースを確認する #
インストール済みパッケージを検索するには -Q を使用します。
pacman -Qs '^bash$'
pacman -Qi bash
pacman -Ql bash
pacman -Qo /usr/bin/pacman
pacman -Qk-Ql はインストール済みパッケージが提供するファイルを一覧表示し、-Qo は既存のパスの所有者を検索し、-Qk は追跡対象のファイルを検査します。pacman -F は代わりにリポジトリのファイルデータベースを検索します。使用前に sudo pacman -Fy でデータベースを作成してください。
パッケージのインストール理由は孤立パッケージの検出に影響します。1 つのパッケージについて、理由を意図的に確認または変更します。
pacman -Qi package-name
sudo pacman -D --asexplicit package-name
sudo pacman -D --asdeps package-name安全に同期とアップグレードを行う #
設定済みリポジトリを検索および確認するには -Ss と -Si を使用します。通常のシステム更新は次のとおりです。
sudo pacman -Syu-y は同期データベースを更新し、-u は同じリポジトリ状態に基づいてインストール済みシステムをアップグレードします。pacman -Sy package-name のような部分アップグレードは実行しないでください。更新されたメタデータが、インストール済みシステムより新しい依存関係を要求する可能性があるためです。大規模なトランザクションを確定する前に、Arch のニュースを読み、設定ファイルに関する指示を解決してください。
リポジトリのパッケージをインストールするには sudo pacman -S package-name を使用します。ローカルでビルドしたアーカイブまたはキャッシュ済みのアーカイブをインストールするには sudo pacman -U file.pkg.tar.zst を使用します。この場合も、pacman は設定済みリポジトリから必要な依存関係を解決します。
パッケージと孤立パッケージを意図的に削除する #
pacman -R package-name は対象を削除します。-Rs は、その対象によって不要になった依存関係も削除します。-Rns はさらに保持されているバックアップファイルも削除します。削除を承認する前に、提案された削除一覧を確認してください。pacman の依存関係グラフでは不要と判断されても、再帰的な削除によって、別のローカルワークフローが依然として必要とする依存パッケージまで削除される可能性があります。
削除する前に、孤立している可能性のあるパッケージを一覧表示します。
pacman -Qdt
pacman -Qtdq一覧を確認してから名前を削除してください。pacman -Qtdq の結果が空であることは、保護されていないコマンド置換で回避すべきエラーではありません。
復旧の選択肢を維持する #
デフォルトのキャッシュディレクトリは /var/cache/pacman/pkg です。
最近のバージョンを保持してください。pacman-contrib の paccache を使用すると、指定した数を残して古いエントリを削除できます。互換性のあるキャッシュ済みアーカイブを使用した管理下のダウングレードは、次のように行います。
sudo pacman -U /var/cache/pacman/pkg/package-old.pkg.tar.zstライブラリをダウングレードすると、依存するパッケージも一致するバージョンにする必要がある場合があります。依存関係の制約を確認し、/usr 配下のファイルを置き換えるのではなく、整合性のあるトランザクションを計画してください。/usr 配下のファイルを直接置き換えると、pacman のデータベース、フック、所有権モデルを回避してしまいます。インストールが中断または破損した場合は、/var/log/pacman.log を確認し、影響を受けたパッケージを pacman で再インストールし、必要に応じて検証済みのバックアップからファイルを復元してください。
署名検証を有効に保つ #
リポジトリとパッケージの署名は、サプライチェーンを保護します。期限切れ、欠落、または失効した信頼情報は、archlinux-keyring、pacman-key、システム時刻、文書化されたミラー設定を通じて修正してください。更新を完了するために署名チェックを無効にしてはいけません。署名エラーは、パッケージをインストールする前に内容を理解すべき証拠です。
コメント
GitHub で閲覧・コメントする(投稿にはログインが必要です)