查找命令所属rpm包

有时我们在执行某个命令时,却提示:
[root@localhost ~]# iptraf
-bash: iptraf: command not found

我相信很多朋友也会经常遇到这个问题。
要解决这个问题就需要安装相应的软件包,很多时候命令名不一定就是软件包的名字,
在这里的iptraf命令恰好是软件包的名字,这样就比较好解决了,直接安装软件包就ok了。如下:
yum install iptraf

但是如果命令名字和软件包名字不相同怎么办呢?
如iostat命令,其命令名就和软件包名字不一样,直接安装的话会失败:
1234567 [root@localhost ~]# yum install iostat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * rpmforge: mirrors.neusoft.edu.cn
Setting up Install Process
No package iostat available.
Error: Nothing to do

这时我们就需要使用下面的方法了:
[root@localhost ~]# yum -q install /usr/bin/iostat
==========================================================================================================================================
 Package                        Arch                          Version                                Repository                  Size
==========================================================================================================================================
Installing:
 sysstat                        x86_64                        9.0.4-20.el6                            163                        225 k
Transaction Summary
==========================================================================================================================================
Install      1 Package(s)
Is this ok [y/N]:

这里的/usr/bin/iostat是不存在的,那为什么却可以找到所属的包呢?
其实就是用了rpm数据库来查找的。至于为什么要用/usr/bin这个路径,是因为这个命令是属于用户的命令,即/usr。这个也是猜测的,如果用这个路径查不到包,就换一个。
这里要是用/bin的话是查不到的:
[root@localhost bin]# yum install /bin/iostat
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * rpmforge: mirrors.neusoft.edu.cn
Setting up Install Process
No package /bin/iostat available.
Error: Nothing to do

主要问题是看命令的路径了,要是对的话,应该可以查到的。

比较好的方法,赞一个!

相关阅读:

相关推荐