Ubuntu 和 CentOS 根据命令查找软件包

  目录

一、Ubuntu

1.1 步骤

1.2 实例

二、CentOS

2.1 步骤

2.2 实例

三、总结


在使用 Linux 的时候,有时需要查询某个命令属于哪个软件包,下面主要介绍下 Ubuntu(同样适用于使用 dpkg 包管理工具的 Linux) 和 CentOS(同样适用于使用 rpm 作为包管理器的 Linux)根据命令查询软件包的方法。

一、Ubuntu

1.1 步骤

1. 先使用 which 查询出命令的绝对路径;

2. 再使用 dpkg 查询出已安装的哪个包包含该路径;

单纯说步骤可能还是不太理解,下面结合实例看一下你就会明白了。

1.2 实例

(1)查询 wget 命令所在的软件包,如下所示:

root@xipeng:~# which wget
/usr/bin/wget
root@xipeng:~# dpkg -S /usr/bin/wget
wget: /usr/bin/wget
root@xipeng:~#

 (2)查询 curl 命令所在的软件包,如下所示:

root@xipeng:~# which curl
/usr/bin/curl
root@xipeng:~# dpkg -S /usr/bin/curl
curl: /usr/bin/curl
root@xipeng:~#

命令 which 可以查询出当前命令的绝对路径,dpkg -S 从已安装的软件包中搜索文件名。

二、CentOS

2.1 步骤

1. 先使用 which 查询出命令的绝对路径;

2. 再使用 rpm 查询出已安装的哪个包包含该路径;

2.2 实例

(1)查询 wget 命令所在的软件包,如下所示:

[root@localhost ~]# which wget
/usr/bin/wget
[root@localhost ~]# rpm -qa --queryformat="[%{NAME} : %{INSTFILENAMES}\n]" | grep /usr/bin/wget
wget : /usr/bin/wget
[root@localhost ~]#

(2)查询 curl 命令所在的软件包,如下所示:

[root@localhost ~]# which curl
/usr/bin/curl
[root@localhost ~]# rpm -qa --queryformat="[%{NAME} : %{INSTFILENAMES}\n]" | grep /usr/bin/curl
curl : /usr/bin/curl
[root@localhost ~]#

同样适用 which 查询出命令的绝对路径,然后使用 rpm -qa --queryformat="[%{NAME} : %{INSTFILENAMES}\n]" | grep commondPath,查询出对应的软件包。

三、总结

在使用 dpkg 和 rpm 的所有 Linux 中都可以使用上面对应的方式查找命令所在的软件包,很简单吧!感觉对你有帮助就点赞支持下吧!可以一键三连哦!

上一篇:关于richtextbox改变字体颜色,加下划线


下一篇:解决【数据库报错】文章收集