Linux中如何判断一个软件是否安装?

出于各种原因,要判断实际需要的东西在哪个软件包里,需要有点儿小技巧。

可以使用which命令来查找相关的二进制程序是否在搜索路径中:

$ which gcc
/opt/pware/bin/gcc

如果which没有找到要找的命令,那么可以试试whereis;该命令可以搜素更大范围的系统目录,与shell的搜索路径无关。

另外可以使用locate命令,它参照预先编译好的一个文件系统索引,以此确定与特定模式相匹配的文件名。locate的搜索并不只针对命令或者软件包,而是能够找到任何类型的文件。例如,如果读者不知道头文件signal.h在哪里:

$ locate signal.h
/usr/include/signal.h
/usr/include/asm/signal.h
/usr/include/asm-generic/signal.h
/usr/include/linux/signal.h

locate命令需要维持一个数据库,这个数据库通常由updatedb命令定期更新,这条命令由cron运行。因此,执行locate的结果并不总是能反应最近文件系统的变化。

如果用户知道要查找的软件包的名字,也可以使用系统上的软件包工具来直接检查是否存在该软件包。例如,在Red Hat或者SUSE系统上,可以使用鲜面的命令检查是否有Python:

$ rpm -q python
python-2.4.3-21.e15

如果使用Debian系统,可以使用dpkg -s或者dpkg-query命令.

你可能感兴趣的:(Linux中如何判断一个软件是否安装?)