如何查找是否在Linux和Unix中安装了软件包
不久前,我们学习了如何在Linux中查找软件包版本。
今天,我们将看到如何查找Linux和Unix操作系统中是否已安装软件包。
以GUI模式查找已安装的软件包很容易。
我们要做的就是打开“菜单”或者“破折号”,然后在搜索框中输入包名称。
如果安装了软件包,则将显示菜单项。
就这么简单。
但是,在没有GUI模式的系统中很难找到它。
因此,与在GUI模式下一样,知道如何找出是否在CLI模式下安装了软件包同样重要。
现在,让我们找出如何找到是否安装了软件包的方法,对吧?
查找Linux中是否安装了软件包
查找软件包是否已安装的最常见方法是使用“ that”命令,如下所示:
$which <package-name>
例子:
$which nano
如果安装了nano软件包,它将显示安装路径,如下所示。
/usr/bin/nano
如我们所见,nano软件包安装在/usr/bin /路径中。
让我们检查另一个软件包,例如Emacs:
$which emacs /usr/bin/which: no emacs in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
看到了吗?
未安装Emacs。
默认情况下,在大多数类似Unix的操作系统上,“ which”命令可用。
另外,几乎没有其他特定于发行版的方式来查找是否安装了软件包。
继续阅读。
在Arch Linux上:
在Arch Linux及其衍生版本(如Antergos和Manjaro LInux)中,我们可以使用“ pacman”命令执行此操作,如下所示:
$pacman -Qs nano
输出示例:
local/nano 2.9.3-1 (base) Pico editor clone with enhancements
我们是否注意到软件包“ nano”前面的前缀“ local”?
这意味着系统上已安装了Nano。
如果以上命令未返回任何内容,则表示未安装给定的软件包。
在Fedora/RHEL/CentOS/Scientific Linux上:
在基于RPM的Linux发行版(如Fedora,RHEL和RHEL克隆,如CentOS,Scientific Linux)中,我们可以使用“ rpm”命令来确定是否安装了软件包,如下所示。
$rpm -qa | grep nano
或者,
$rpm -qa | grep -i nano
输出示例:
nano-2.3.1-10.el7.x86_64
另外,我们可以使用如下的Yum命令。
$yum list installed|grep 'nano'
要列出所有已安装的软件包,请运行:
$rpm -qa
作为下面的注释部分提到的读者“ Gregory Pittman”之一,我们可以在Fedora中使用dnf命令来找到已安装的软件包。
$dnf list packagename
甚至
$dnf list package*
从这些中得到的是已安装内容以及存储库中可用内容的列表。
dnf允许使用通配符,并且在搜索中也不区分大小写。
有时我们不太清楚自己要查找的内容或者正确的拼写。
在Debian/Ubuntu/Linux Mint上:
在Debian,Ubuntu及其衍生版本(如Linux Mint)和Elementary OS等基于DEB的系统中,我们可以使用“ dpkg”命令执行此操作。
$dpkg -s nano
输出示例:
如我们在上面的输出中所见,nano软件包已安装在我们的Ubuntu系统中。
该命令不仅显示指定软件包的安装,还显示软件包的优先级,版本号,维护者名称,依赖关系及其描述等。
这不是查找已安装软件包的唯一方法。
这是更多命令。
$dpkg-query -l nano
输出示例:
Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/Name Version Architecture Description +++-==============-============-============-================================= ii nano 2.5.3-2 amd64 small, friendly text editor inspired by Pico
这是另一个。
$dpkg --get-selections | grep nano
输出示例:
nano install
还有一个命令。
$dpkg --list | grep nano
输出示例:
ii nano 2.5.3-2 amd64 small, friendly text editor inspired by Pico
或者,使用以下命令:
$dpkg --list | grep -i nano
要查看所有已安装软件包的列表,请运行:
$dpkg --list
在SUSE/openSUSE上:
要检查是否在SUSE和openSUSE中安装了软件包,请运行:
$zypper search nano
或者,不久:
$zypper se nano
我们也可以使用“ rpm”命令,如下所示。
$rpm -q nano
使用“有”实用程序查找是否已安装软件包
相信我,这非常简单! “具有”实用程序将检查路径上是否存在各种命令行工具,并报告其安装版本。
要安装它,请运行以下命令:
$git clone https://github.com/kdabir/has.git $cd has $sudo make install
现在检查软件包是否可用,如下所示。
$has nano ✔ nano 2.5.3
如果看到勾号(✔),则说明软件包已安装。
如我们在上面的输出中看到的,安装了nano软件包,其版本为2.5.3.
如果未安装软件包,我们将看到叉号。
检查以下示例。
$has emacs ✘ emacs
我们也可以检查多个包。
$has nano emacs vim ✔ nano 2.5.3 ✘ emacs ✔ vim 7.4
如果我们不想安装它,可以直接使用,如下所示。
但是,系统必须与Internet连接。
$curl -sL https://git.io/_has | bash -s nano
要检查多个软件包:
$curl -sL https://git.io/_has | bash -s nano emacs vim
如果我们懒于输入整个命令,请创建一个别名:
$alias has="curl -sL https://git.io/_has | bash -s"
现在,只需使用如下所示的实用程序:
$has nano
查找是否在Unix中安装了软件包
以下步骤已在FreeBSD 10.3中进行了测试。
除了FreeBSD之外,我从未尝试过任何其他BSD操作系统。
因此,可能会有不同的命令来确定某个软件包是否安装在其他BSD操作系统中。
在FreeBSD中,我们可以使用“ pkg”命令来做到这一点:
$pkg_info -Ix <package-name>
例子:
$pkg info -Ix nano
输出示例:
要查看所有已安装的软件包,可以使用以下命令:
$pkg info
或者,
$pkg version -v
这将需要几秒钟到几分钟的时间,具体取决于我们FreeBSD系统中的软件包数量。