如何在 Linux 中列出软件包的内容

我们已经知道如何 列出已安装的软件包 以及如何 列出一个包的依赖 在 Linux 中。 今天,我们将了解如何在 Linux 中列出一个包的内容。 软件包是否安装都没有关系。 可以读取已安装或未安装包的内容。

在 Linux 和 Unix 中,大多数程序通常不会在单个目录中结束。 当您安装一个包时,该包中的所有文件都分散在文件系统中并保存在不同的路径中。 通常,可执行文件(例如二进制文件/脚本)存储在“/bin”或“/usr/bin”或“/usr/local/bin”目录中,库文件在“/usr/lib”中,配置文件在’/etc’,’/usr/share’ 中的静态数据,等等。 现在让我们查找包中的文件列表以及它们在 Linux 中实际存储的位置。

在 Linux 中列出一个包的内容

首先,我们将了解如何在基于 DEB 的系统中读取包的内容,例如 example Ubuntu。

列出 Ubuntu 中已安装软件包的内容

我已经安装了 微软团队 打包在我的 Ubuntu 20.04 桌面上。

要查看 Microsoft Teams 包的内容,只需运行:

$ dpkg -L teams

样本输出:

/.
/usr
/usr/bin
/usr/bin/teams
/usr/share
/usr/share/applications
/usr/share/applications/teams.desktop
/usr/share/pixmaps
/usr/share/pixmaps/teams.png
/usr/share/teams
.
.
.

/usr/share/teams/swiftshader/libEGL.so
/usr/share/teams/swiftshader/libGLESv2.so
/usr/share/teams/teams
/usr/share/teams/v8_context_snapshot.bin

看? 上面的输出显示了 Teams 包安装的文件及其在我的 Ubuntu 系统中的位置。

这是在 Ubuntu 中查看已安装软件包内容的另一种方法:

$ dpkg-query -L teams

列出 Ubuntu 中未安装包的内容

就像我已经说过的,上面的命令显示了已安装包的内容。 如果未安装软件包并且您想阅读其内容怎么办? 这也是可能的! 您甚至可以在安装软件包之前找到软件包将安装哪些文件。

首先下载 .deb 文件。 我已经下载了 Teams 应用程序 .deb 文件。 转到您下载 .deb 文件的位置并运行以下命令以查看其内容:

$ dpkg --contents teams_1.2.00.32451_amd64.deb

或者,

$ dpkg -c teams_1.2.00.32451_amd64.deb

样本输出:

drwxr-xr-x root/root         0 2019-11-20 20:55 ./
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/bin/
-rwxr-xr-x root/root       286 2019-11-20 20:54 ./usr/bin/teams
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/
drwxr-xr-x root/root         0 2019-11-20 20:54 ./usr/share/applications/
-rw-r--r-- root/root       352 2019-11-20 20:54 ./usr/share/applications/teams.desktop
.
.
.
-rwxr-xr-x root/root    286264 2019-11-20 20:54 ./usr/share/teams/swiftshader/libEGL.so
-rwxr-xr-x root/root   2677296 2019-11-20 20:54 ./usr/share/teams/swiftshader/libGLESv2.so
-rwxr-xr-x root/root 114944384 2019-11-20 20:54 ./usr/share/teams/teams
-rw-r--r-- root/root   1040824 2019-11-20 20:54 ./usr/share/teams/v8_context_snapshot.bin

或者,您可以使用 apt文件 工具也是。

如果尚未安装 apt-file,请按如下所示安装:

$ sudo apt install apt-file

如果你刚刚安装了 apt-file,系统范围的缓存可能是空的。 您需要以 root 身份运行“apt-file update”来更新缓存。 您还可以以普通用户身份运行“apt-file update”以使用用户主目录中的缓存。

让我们使用命令更新数据库缓存:

$ sudo apt-file update

现在列出已安装包的内容,例如 example vim,如下所示:

$ apt-file list vim

样本输出:

vim: /usr/bin/vim.basic 
vim: /usr/share/bug/vim/presubj
vim: /usr/share/bug/vim/script
vim: /usr/share/doc/vim/NEWS.Debian.gz
vim: /usr/share/doc/vim/changelog.Debian.gz
vim: /usr/share/doc/vim/copyright
vim: /usr/share/lintian/overrides/vim

使用 apt-file 命令列出已安装包的内容

apt-file 工具还用于搜索提供特定文件的包。 为了 example找到提供的包 别名文件 带有命令的文件:

$ apt-file find alisp.h

或者,

$ apt-file search alisp.h

样本输出:

libasound2-dev: /usr/include/alsa/alisp.h

如您所见,“libasound2-dev”包提供了 alisp.h 文件。

有关更多详细信息,请参阅以下链接。

  • 如何在 Linux 中找到提供特定文件的包

这些是在基于 DEB 的系统中查看包内容的几种方法。 现在让我们看看如何在基于 RPM 的系统中列出包内容,例如 example 中央操作系统。

列出 CentOS 中已安装/未安装包的内容

在 CentOS 等基于 RPM 的系统中,我们可以使用 “回购” 命令。

“yum-utils” 包提供 repoquery 命令,所以让我们使用命令安装它:

$ sudo yum install yum-utils

现在让我们使用命令找出“nano”编辑器包的内容:

# repoquery --installed --list nano

或者,

# repoquery --list nano

或者,

# repoquery -l nano

样本输出:

Last metadata expiration check: 0:03:02 ago on Tuesday 16 June 2020 06:01:46 PM IST.
/etc/nanorc
/usr/bin/nano
/usr/bin/rnano
/usr/lib/.build-id
/usr/lib/.build-id/d3
.
.
.
/usr/share/nano/tcl.nanorc
/usr/share/nano/tex.nanorc
/usr/share/nano/texinfo.nanorc
/usr/share/nano/xml.nanorc

列出 CentOS 中已安装软件包的内容

与列出未安装文件的内容相同的方式。 转到您下载 rpm 文件的位置并查看其内容,如下所示:

# repoquery --list nano-2.9.8-1.el8.x86_64.rpm

相关阅读:

  • 如何在 CentOS 中下载具有所有依赖项的 RPM 包

希望这可以帮助。

感谢您的光临!

帮助我们帮助您:

祝你有美好的一天!!