CLOVER🍀

That was when it all began.

aptやdpkgでインストールしたパッケージや、debファイルに含まれるファイルを確認する

これは、なにをしたくて書いたもの?

タイトルどおりですが、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

〜省略〜