有时需要查看未安装的软件包中的内容。通常我使用 apt-file 来实现此目的。大多数情况下,此方法都行得通,但在某些情况下,我无法使用 apt-file 检索有关软件包内容的任何信息,同时此类软件包中有一些文件,似乎不是元软件包。
例如:Ubuntu 16.04 lts amd64,软件包名称:linux-image-4.15.0-1010-oracle。
如果我下载它,使用 apt-get download 然后提取,我就可以看到vmlinuz-4.15.0-1010-oracle
里面的文件。
但apt-file show linux-image-4.15.0-1010-oracle
什么也没显示。
apt-file update
是在使用 apt-file 之前进行的。
那么我应该如何使用 apt-file 查看此软件包的内容信息?为什么它什么都没显示?
答案1
您也可以使用dpkg -L packagename
。
它与类似apt-file
,但它仅搜索和列出已安装的包。
您还必须知道带有 的命令apt
意味着,例如:apt-get
意味着从 INTERNET 安装软件包。也许您的某些软件包不是从互联网安装的...
答案2
dpkg --contents ~/Downloads/eudic.deb
:列出deb包的内容。apt-file search keywords
:查找包文件名包含关键字apt-file list package-name
:列出包内的文件
# case 1: -L not work
terry@home-ubuntu:~/Downloads$ dpkg -L eudic.deb
dpkg-query: package 'eudic.deb' is not installed
Use dpkg --contents (= dpkg-deb --contents) to list archive files contents.
# case 2: dpkg --contents ~/Downloads/eudic.deb (show package list)
terry@home-ubuntu:~$ dpkg --contents ~/Downloads/eudic.deb
drwxr-xr-x eusoft/eusoft 0 2021-09-08 08:19 ./
drwxr-xr-x eusoft/eusoft 0 2021-09-08 08:18 ./usr/
drwxr-xr-x eusoft/eusoft 0 2021-09-08 08:21 ./usr/share/
drwxr-xr-x eusoft/eusoft 0 2021-09-08 08:18 ./usr/share/applications/
...
# case 3: apt-file search libgio (file name contain keyword `libgio`)
terry@home-ubuntu:~/Downloads$ apt-file search libgio
glib-networking: /usr/lib/x86_64-linux-gnu/gio/modules/libgioenvironmentproxy.so
glib-networking: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognomeproxy.so
glib-networking: /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
glib-networking: /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so
gvfs: /usr/lib/x86_64-linux-gnu/gio/modules/libgioremote-volume-monitor.so
libgio-cil: /usr/share/doc/libgio-cil/changelog.Debian.gz
....
# case 4: apt-file list libglib2.0-0
terry@home-ubuntu:~/Downloads$ apt-file list libglib2.0-0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/glib-2.0/gio-launch-desktop
libglib2.0-0: /usr/lib/x86_64-linux-gnu/glib-2.0/gio-querymodules
libglib2.0-0: /usr/lib/x86_64-linux-gnu/glib-2.0/glib-compile-schemas
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.7200.1
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.7200.1
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0.7200.1
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.7200.1
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0
libglib2.0-0: /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0.7200.1
libglib2.0-0: /usr/share/doc/libglib2.0-0/NEWS.gz
libglib2.0-0: /usr/share/doc/libglib2.0-0/README.md
libglib2.0-0: /usr/share/doc/libglib2.0-0/changelog.Debian.gz
libglib2.0-0: /usr/share/doc/libglib2.0-0/copyright
libglib2.0-0: /usr/share/glib-2.0/clean-up-unmanaged-libraries
libglib2.0-0: /usr/share/lintian/overrides/libglib2.0-0