Ubuntu環境下,如何查詢某個套件安裝在系統上的所有檔案

前提

以下以「hello」這個套件為例。

方式一

執行

1
$ dpkg -L hello

或是

1
$ dpkg-query -L hello

會顯示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/.
/usr
/usr/bin
/usr/bin/hello
/usr/share
/usr/share/info
/usr/share/info/hello.info.gz
/usr/share/doc
/usr/share/doc/hello
/usr/share/doc/hello/NEWS
/usr/share/doc/hello/copyright
/usr/share/doc/hello/changelog.Debian.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/hello.1.gz

方式二

執行

1
$ cat /var/lib/dpkg/info/hello.list

1
$ more /var/lib/dpkg/info/hello.list

1
$ less /var/lib/dpkg/info/hello.list

1
$ cat /var/lib/dpkg/info/hello.list | more

1
$ cat /var/lib/dpkg/info/hello.list | less

會顯示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/.
/usr
/usr/bin
/usr/bin/hello
/usr/share
/usr/share/info
/usr/share/info/hello.info.gz
/usr/share/doc
/usr/share/doc/hello
/usr/share/doc/hello/NEWS
/usr/share/doc/hello/copyright
/usr/share/doc/hello/changelog.Debian.gz
/usr/share/man
/usr/share/man/man1
/usr/share/man/man1/hello.1.gz

方式三

下載「hello」這個套件

1
$ apt-get download hello

然後執行

1
$ dpkg -c hello_2.8-4_amd64.deb

1
$ dpkg-deb -c hello_2.8-4_amd64.deb

會顯示

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
drwxr-xr-x root/root         0 2013-08-27 00:25 ./
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/bin/
-rwxr-xr-x root/root 22984 2013-08-27 00:25 ./usr/bin/hello
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/info/
-rw-r--r-- root/root 11729 2013-08-27 00:25 ./usr/share/info/hello.info.gz
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/doc/
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/doc/hello/
-rw-r--r-- root/root 3108 2012-04-19 21:51 ./usr/share/doc/hello/NEWS
-rw-r--r-- root/root 2251 2012-05-28 04:07 ./usr/share/doc/hello/copyright
-rw-r--r-- root/root 1180 2013-08-27 00:25 ./usr/share/doc/hello/changelog.Debian.gz
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/man/
drwxr-xr-x root/root 0 2013-08-27 00:25 ./usr/share/man/man1/
-rw-r--r-- root/root 729 2013-08-27 00:25 ./usr/share/man/man1/hello.1.gz

方式四

下載「hello」這個套件

1
$ apt-get download hello

然後執行下面的指令解開套件

1
$ dpkg -x hello_2.8-4_amd64.deb hello

或是

1
$ dpkg-deb -x hello_2.8-4_amd64.deb hello

再來執行tree觀看

1
$ tree hello

就可以看到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
hello
└── usr
├── bin
│   └── hello
└── share
├── doc
│   └── hello
│   ├── changelog.Debian.gz
│   ├── copyright
│   └── NEWS
├── info
│   └── hello.info.gz
└── man
└── man1
└── hello.1.gz

8 directories, 6 files

更多參考

額外一提

執行

1
$ whatis dpkg

1
$ man -f dpkg

會顯示

1
dpkg (1)             - package manager for Debian

執行

1
$ whatis dpkg-query

1
$ man -f dpkg-query

會顯示

1
dpkg-query (1)       - a tool to query the dpkg database

執行

1
$ whatis dpkg-deb

1
$ man -f dpkg-deb

會顯示

1
dpkg-deb (1)         - Debian package archive (.deb) manipulation tool