如何在 Linux 中查找文件属于哪个包?

举报
wljslmz 发表于 2022/10/31 14:28:03 2022/10/31
【摘要】 Linux 包是一个压缩文件存档,其中包含属于特定应用程序的所有文件,在某些情况下,您可能需要查找属于某个文件的包名。在本教程中,我们将学习如何在 Linux 系统中查找文件属于或拥有的包。 哪个软件包在 Ubuntu/Debian 系统上提供文件要查找在 Ubuntu/Debian 系统上提供文件的软件包,我们有一些方法。 使用 dpkg您可以使用 dpkg 和 dpkg-query 命令...

Linux 包是一个压缩文件存档,其中包含属于特定应用程序的所有文件,在某些情况下,您可能需要查找属于某个文件的包名。

在本教程中,我们将学习如何在 Linux 系统中查找文件属于或拥有的包。

哪个软件包在 Ubuntu/Debian 系统上提供文件

要查找在 Ubuntu/Debian 系统上提供文件的软件包,我们有一些方法。

使用 dpkg

您可以使用 dpkg 和 dpkg-query 命令来查找提供文件的包。此命令从已安装的包中搜索文件名。

语法:

dpkg -S filename
dpkg-query -S filename

例如,要查找 /bin/ls 文件属于哪个包,请使用以下命令。

$ dpkg -S /bin/ls

使用 dpkg 查询

您还可以使用 dpkg-query 命令查找已安装文件的包名称。

$ dpkg-query -S /bin/ls
$ dpkg-query -S '/bin/ls'
$ dpkg-query -S 'passwd*'

使用 apt 文件

您可以使用 apt-file 在系统上的 DEB 包中查找文件,以及未安装在 Debian 系统上但可通过存储库获得的包。

默认情况下不安装 apt-file 包,要在 Ubuntu 和其他基于 Debian 的 Linux 发行版上安装 apt-file,请键入:

$ sudo apt install apt-file 

确保更新数据库缓存,键入:

$ sudo apt-file update

现在让我们搜索提供路由命令的包,使用以下命令。

$ apt-file search 'bin/route'

在左侧,您可以看到属于 route 命令的包名。

哪个软件包在基于 RHEL 的系统上提供文件

这在 Linux 发行版上受支持,例如 Redhat、Fedora、AlmaLinux、Rocky Linux、CentOS Stream 和 Oracle Linux。

使用 DNF 命令

您可以使用provides选项与 DNF 一起在基于 RHEL 的系统(例如 Fedora)中查找文件的包,它与任何可用包的所有文件提供匹配。

语法:

dnf provides filename
dnf provides *filename
dpkg-query --search '/path/to/file'

例如,如果要查找二进制文件的包,请使用以下命令。

$ dnf provides *bin/ls

使用 RPM 和 Yum 命令

您可以使用rpm 命令查找提供特定文件的软件包。

语法:

rpm -rf filename
rpm -q --whatprovides filename

这将找到已安装包文件的包名

例如,如果要查找提供 /bin/ls 文件的 rpm 包,请使用以下命令。

$ rpm -qf /bin/ls

您还可以使用以下 rpm 命令:

$ rpm -q --whatprovides /etc/nginx/nginx.conf

使用 yum 命令,您可以执行以下相同操作:

$ yum whatprovides netstat

您还可以使用特定的库文件来搜索它所属的包

搜索未安装在 Debian/Ubuntu 上的文件

您可以访问Debian 软件包和Ubuntu 软件包搜索并搜索该文件。结果将显示包名称,然后你可以使用你的 apt 命令来安装相应的包。

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。