今回は Debian 系のパッケージ管理で使われる APT (Advanced Packaging Tool) で特定パッケージの依存関係を調べる方法について。
結論から先に述べると apt-cache depends
サブコマンドと apt-cache rdepends
サブコマンドを使って調べられる。
使った環境は次のとおり。 最近の Ubuntu であれば特にディストリビューションのバージョンに依存する話ではないはず。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04 LTS Release: 22.04 Codename: jammy $ uname -srm Linux 5.15.0-41-generic aarch64 $ apt --version apt 2.4.5 (arm64)
もくじ
依存しているパッケージを調べる
特定のパッケージが依存しているパッケージを調べるには apt-cache depends
コマンドが使える。
<pkg-name>
にはパッケージ名が入る。
$ apt-cache depends <pkg-name>
例えば python3
パッケージで試してみよう。
$ apt-cache depends python3
python3
PreDepends: python3-minimal
Depends: python3.10
Depends: libpython3-stdlib
Suggests: python3-doc
Suggests: python3-tk
Suggests: python3-venv
Replaces: python3-minimal
上記において、実際に依存しているパッケージが PreDepends
や Depends
として表示される。
Suggests
は推奨なので無くても動作はする。
依存されているパッケージを調べる
反対に、そのパッケージがどのパッケージから依存されているか知りたいときは apt-cache rdepends
サブコマンドを使う。
$ apt-cache rdepends <pkg-name>
今度も python3
パッケージで試してみよう。
ただし、めちゃくちゃ数が多いので head(1) を使って先頭だけ表示する。
$ apt-cache rdepends python3 | head python3 Reverse Depends: python3-drslib cockpit-ws cockpit-storaged virtualbox virtualbox zfs-test xdg-desktop-portal-tests systemd-tests
なお、同じパッケージ名が複数出るときは、候補となるパッケージのバージョンごとに出てるっぽい
依存(して|されて)いるパッケージを一度に調べる
ちなみに apt-cache showpkg
サブコマンドを使えば依存関係を一度に見ることもできる。
ただし、依存関係以外の情報も色々と載っているので、依存関係だけ知りたいときは少し見にくいかも。
$ apt-cache showpkg <pkg-name>
python3
パッケージを試すなら次のようにする。
$ apt-cache showpkg python3
上記を実行すると依存しているパッケージが Dependencies
として、依存されているパッケージが Reverse Depends
として確認できる。
いじょう。