我们已经知道如何 列出已安装的软件包 以及如何 列出一个包的依赖 在 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 工具还用于搜索提供特定文件的包。 为了 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
与列出未安装文件的内容相同的方式。 转到您下载 rpm 文件的位置并查看其内容,如下所示:
# repoquery --list nano-2.9.8-1.el8.x86_64.rpm
相关阅读:
- 如何在 CentOS 中下载具有所有依赖项的 RPM 包
希望这可以帮助。
感谢您的光临!
帮助我们帮助您:
- 订阅我们的电子邮件通讯: 立即注册
- 支持 OSTechNix: 通过贝宝捐款
- 下载免费的电子书和视频: TradePub 上的 OSTechNix
- 联系我们: 红迪网 | Facebook | Twitter | 领英 | RSS订阅
祝你有美好的一天!!