今号は、前号の「パッケージマネージャについて」の続きになります!
今回は Debian 系システムの apt で、以前紹介できなかったサブコマンドについてご紹介します。
apt の便利なサブコマンド
- パッケージの情報を表示
apt-cache show コマンドを実行すると、特定のパッケージの詳細な情報を表示します。例えば、git というパッケージの情報を表示する場合は、下記の様なコマンドになります。
# apt-cache show git … Package: git Architecture: amd64 Version: 1:2.34.1-1ubuntu1.6 Multi-Arch: foreign Priority: optional Section: vcs Origin: Ubuntu Maintainer: Ubuntu Developers
original-Maintainer: Jonathan Nieder Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 18484 Provides: git-completion, git-core Depends: libc6 (>= 2.34), libcurl3-gnutls (>= 7.56.1), libexpat1 (>= 2.0.1), libpcre2-8-0 (>= 10.34), zlib1g (>= 1:1.2.0), perl, liberror-perl, git-man (= 1:2.34.1-.) Recommends: ca-certificates, patch, less, ssh-client Suggests: gettext-base, git-daemon-run | git-daemon-sysvinit, git-doc, git-email, git-gui, gitk, gitweb, git-cvs, git-mediawiki, git-svn … (長いため省略) この時、結果にはアーキテクチャ、パッケージバージョン、ライセンス情報、依存パッケージ (Depends) の情報など、様々な情報が表示されます。
なお、上記のコマンドはネットワーク上のリポジトリから情報を取得してくるため、対象のパッケージがインストールされていなくても情報が表示されます。
- パッケージの依存関係を表示
apt-cache depends コマンドを実行すると、特定のパッケージの依存関係を表示します。
例えば、git というパッケージと依存関係のあるパッケージ一覧を表示する場合は、下記の様なコマンドになります。
依存関係の情報は apt-cache show でも確認できますが、apt-cache depends の方が整理された状態で、より分かりやすく表示されます。# apt-cache depends git Depends: libc6 Depends: libcurl3-gnutls Depends: libexpat1 Depends: libpcre2-8-0 Depends: zlib1g Depends: perl Depends: liberror-perl Depends: git-man Depends: git-man Recommends: ca-certificates Recommends: patch patch:i386 Recommends: less less:i386 Recommends:
openssh-client openssh-client:i386 Suggests: gettext-base gettext-base:i386 Suggests: git-daemon-run Suggests: git-daemon-sysvinit Suggests: git-doc Suggests: git-email Suggests: git-gui Suggests: gitk Suggests: gitweb Suggests: git-cvs Suggests: git-mediawiki Suggests: git-svn この時、結果にはDepends、Recommends、Suggests という 3種類の情報が表示されます。
・Depends:対象のパッケージが動作するために必須となる、依存パッケージ
・Recommends:依存パッケージではないが、インストールが推奨されるパッケージ
・Suggests:依存パッケージではないが、あると便利な機能を提供するパッケージパッケージをインストールする際、デフォルトの動作では Depends、Recommends のパッケージがインストールされます。
ただし、–no-install-recommends オプションを指定した場合 Recommends はインストールされず、Depends のパッケージのみがインストールされます。
# apt-get install --no-install-recommends git
- パッケージのリストを表示
apt list コマンドを実行すると、特定の条件に合致するパッケージのリストを表示します。
例えば、git という文字列から始まるパッケージのリスト (一覧) を表示する場合は、下記の様なコマンドになります。# apt list git* … git-absorb/jammy 0.6.6-2build2 amd64 [installed] git-all/jammy-updates,jammy-updates,jammy-security,jammy-security, 1:2.34.1-1ubuntu1.11 all git-annex-remote-rclone/jammy,jammy 0.6-1 all git-annex/jammy 8.20210223-2ubuntu2 amd64 git-autofixup/jammy,jammy 0.003001-2 all git-big-picture/jammy,jammy 1.1.1-1 all git-build-recipe/jammy,jammy 0.3.6 all git-buildpackage-rpm/jammy,jammy 0.9.25 all git-buildpackage/jammy,jammy 0.9.25 all git-bump/jammy,jammy 1.1.0-2 all … (長いため省略)
上記は、ご利用環境で有効になっているリポジトリから、指定した条件でパッケージを検索しています。
また、上記の条件に併せてインストール済みパッケージのみを抽出することができます。
例えば、git という文字列から始まるパッケージのうち、インストール済みのパッケージのみを表示する場合は、下記の様なコマンドになります。
# apt list --installed git*
補足:apt 関連のコマンドの実行履歴は確認できる?
apt には dnf history のようなサブコマンドはありません。
そのため /var/log/apt 配下に出力されるログから確認する必要があります。
/var/log/apt 配下には、下記の様なログが出力されます。
- /var/log/apt/history.log
パッケージのインストール/アップデート/削除などの実行履歴を記録するログです。 - /var/log/apt/term.log
パッケージのインストール/アップデート/削除などを実行した際、コンソール上に表示された内容を記録するログです。