これは、なにをしたくて書いたもの?
タイトルどおりですが、aptでインストールしたパッケージやdebファイルに含まれるファイルを確認したいな、ということで。
環境
今回の環境は、こちら。Ubuntu Linux 20.04 LTSです。
$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.4 LTS Release: 20.04 Codename: focal $ uname -srvmpio Linux 5.4.0-124-generic #140-Ubuntu SMP Thu Aug 4 02:23:37 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ apt --version apt 2.0.9 (amd64) $ dpkg --version Debian `dpkg' パッケージ管理プログラム バージョン 1.19.7 (amd64)。 これはフリーソフトです; コピー条件については GNU 一般公有使用許諾書バージョン 2 もしくはそれ以降を参照してください。このソフトウェアは無保証です。
インストール済みのパッケージに含まれるファイルを確認する
インストール済みのパッケージであれば、以下のコマンドで確認可能です。
$ dpkg -L [パッケージ名] ### または $ dpkg --listfiles [パッケージ名]
実行例。
$ dpkg -L openjdk-17-jdk /. /usr /usr/lib /usr/lib/jvm /usr/lib/jvm/java-17-openjdk-amd64 /usr/lib/jvm/java-17-openjdk-amd64/bin /usr/lib/jvm/java-17-openjdk-amd64/bin/jconsole /usr/lib/jvm/java-17-openjdk-amd64/include /usr/lib/jvm/java-17-openjdk-amd64/include/jawt.h /usr/lib/jvm/java-17-openjdk-amd64/include/linux /usr/lib/jvm/java-17-openjdk-amd64/include/linux/jawt_md.h /usr/lib/jvm/java-17-openjdk-amd64/man /usr/lib/jvm/java-17-openjdk-amd64/man/man1 /usr/lib/jvm/java-17-openjdk-amd64/man/man1/jconsole.1.gz /usr/lib/jvm/openjdk-17 /usr/share /usr/share/doc /usr/share/doc/openjdk-17-jre-headless /usr/share/doc/openjdk-17-jre-headless/test-amd64 /usr/share/doc/openjdk-17-jre-headless/test-amd64/jtreg_output-hotspot.log /usr/lib/jvm/openjdk-17/src.zip /usr/share/doc/openjdk-17-jdk
この方法では、未インストールのパッケージについては確認できません。
$ dpkg -L openjdk-16-jdk dpkg-query: パッケージ 'openjdk-16-jdk' はまだインストールされていません Use dpkg --contents (= dpkg-deb --contents) to list archive files contents.
debファイルに含まれるファイルを確認する
debファイルに含まれるファイルを確認したい場合は、こちら。この場合は、debファイルをインストールしていなくても問題ありません。
$ dpkg -c [debファイル] ### または $ dpkg --contents [debファイル]
今回は、Grafanaをダウンロードして確認してみます。
$ curl -OL https://dl.grafana.com/oss/release/grafana_9.0.7_amd64.deb
実行例。
$ dpkg -c grafana_9.0.7_amd64.deb drwx------ 0/0 0 2022-08-10 19:00 ./ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/lib/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/lib/systemd/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/lib/systemd/system/ -rw-r--r-- 0/0 1664 2022-08-10 19:00 ./usr/lib/systemd/system/grafana-server.service drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/sbin/ -rwxr-xr-x 0/0 102493232 2022-08-10 19:00 ./usr/sbin/grafana-server -rwxr-xr-x 0/0 1103 2022-08-10 19:00 ./usr/sbin/grafana-cli drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/grafana/ -rw-r--r-- 0/0 5 2022-08-10 19:00 ./usr/share/grafana/VERSION drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/grafana/public/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/grafana/public/test/ drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/grafana/public/test/lib/ -rw-r--r-- 0/0 421 2022-08-10 19:00 ./usr/share/grafana/public/test/lib/common.ts drwxr-xr-x 0/0 0 2022-08-10 19:00 ./usr/share/grafana/public/test/matchers/ -rw-r--r-- 0/0 1732 2022-08-10 19:00 ./usr/share/grafana/public/test/matchers/utils.ts -rw-r--r-- 0/0 4531 2022-08-10 19:00 ./usr/share/grafana/public/test/matchers/toEmitValues.test.ts -rw-r--r-- 0/0 293 2022-08-10 19:00 ./usr/share/grafana/public/test/matchers/index.ts 〜省略〜