我想检查该程序是否安装在 linux(CentOS) 上。(我使用 java jsch
)
如果没有,则向前端发送用户缺少哪个程序的消息。
我使用which
如您所见,我没有php
在 Linux 上安装。
但我不确定这是否是一个好方法。(它会错过程序吗?)
请指导我。
[root@worker ~]# which git
/usr/bin/git
[root@worker ~]# which python
/usr/bin/python
[root@worker ~]# which php
/usr/bin/which: no php in (/usr/local/scala-2.11.6/bin:/usr/local/jdk1.7.0_75/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/hadoop/bin:/usr/local/hadoop/sbin:/root/bin)
答案1
请提供更多信息。我不明白你在 CentOS 上尝试查找的程序是什么。你可以使用
哪个文件名定位当前环境中的命令。该命令将搜索 PATH 以查找与传递给它的参数名称匹配的可执行文件。
例子:
$ which php
/usr/bin/php
希望这可以帮助。
答案2
有很多方法可以实现这一点:
一般来说,这取决于你的包裹,
这取决于您的分布。
键入以下命令获取所有已安装软件的列表
rpm -qa | 更少
这将检查所有已安装的程序
句法:
$ rpm -qa | grep {package-name}
例子:
$ rpm -qa | grep mutt
答案3
如果您知道如何安装该应用程序,这会更容易。
对于 rpm 安装,你可以使用rpm -qa,它将列出使用 rpm 安装程序安装的所有软件包。您可以使用管道 grep 来检查特定软件包。rpm -qa|grep python
对于 yum 安装,你可以尝试yum 列表已安装例如 yum list installed python 或 yum list installed|grep python
which 命令会给出 shell 组件的路径。它不需要给出已安装软件包的信息。