如何确定Linux中是否安装了软件包
时间:2020-01-09 14:16:30 来源:igfitidea点击:
如何使用命令行选项确定是否在基于Linux的系统上安装了软件包?
Linux软件包不过是文件的集合以及有关这些文件的信息。
Linux上使用软件包安装了几乎所有软件(Web /数据库服务器或Office应用程序或Web浏览器)。
确定Linux中是否安装了软件包的命令取决于您的Linux发行版。
以下是用于不同发行版的命令。
- Debian/Ubuntu Linux
- 红帽(RHEL)/Fedora/Cent OS/Suse Linux
Debian/Ubuntu Linux
使用dpkg命令。
它是Debian/Ubuntu Linux的软件包管理器。
假设您要查找软件包apache-perl或sudo是否已安装,请执行命令:
$ dpkg -s apache-perl
输出示例:
dpkg-query: package 'apache-perl' is not installed and no information is available Use dpkg --info (= dpkg-deb --info) to examine archive files, and dpkg --contents (= dpkg-deb --contents) to list their contents.
另一个例子:
$ dpkg -s sudo
输出示例:
Package: sudo Status: install ok installed Priority: important Section: admin Installed-Size: 1692 Maintainer: Ubuntu Developers Architecture: amd64 Version: 1.8.20p2-1ubuntu1 Replaces: sudo-ldap Depends: libaudit1 (>= 1:2.2.1), libc6 (>= 2.17), libpam0g (>= 0.99.7.1), libselinux1 (>= 1.32), libpam-modules, lsb-base Conflicts: sudo-ldap Conffiles: /etc/pam.d/sudo aa40f755f85bb33c9e79bd537e2979be /etc/sudoers edcf6528783ecffd3f248c8089dc298e /etc/sudoers.d/README 8d3cf36d1713f40a0ddc38e1b21a51b6 /etc/sudoers.dist b679ac5d1611aa9ca815224b457b2341 Description: Provide limited super user privileges to specific users Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done. . This version is built with minimal shared library dependencies, use the sudo-ldap package instead if you need LDAP support for sudoers. Homepage: http://www.sudo.ws/ Original-Maintainer: Bdale Garbee [email protected]
使用文件/var/lib/dpkg/available查找所有可用的软件包名称。
或者,您可以使用以下命令(在/var/lib/dpkg/status中列出所有软件包):
$ dpkg-query -l
您也可以尝试使用通配符匹配软件包名称:
$ dpkg-query -l 'libc6*'
找到软件包名称后,请使用以下命令获取确切的状态(是否已安装):
$ dpkg-query -W -f='${Status} ${Version}\n' apache-perl
输出示例:
install ok installed 1.3.34-2
红帽企业版/Fedora Linux/Suse Linux/Cent OS
在Red Hat/Fedora/CentOS/Suse Linux下,使用rpm命令:
$ rpm -qa | grep {package-name}
例如,找出是否已安装mutt软件包:
$ rpm -qa | grep mutt
输出:
mutt-1.4.1-10
如果看不到任何输出(软件包名称以及版本),则表示该软件包根本没有安装。
您可以使用以下命令显示或列出所有已安装的软件包:
$ rpm -qa $ rpm -qa | less
如果rpm命令使用bash shell成功执行或失败查找软件包,则可以有条件地执行以下操作:
#!/bin/bash pkg="htop" if rpm -q $pkg then echo "$pkg installed" else echo "$pkg NOT installed" fi
在CentOS/RHEL 6.x/7.x及更高版本上,使用以下yum命令来判断是否安装了名为htop的软件包:
$ yum list installed {PACKAGE_NAME_HERE} $ yum list installed htop
输出示例:
Loading mirror speeds from cached hostfile * base: ftp.iitm.ac.in * epel: mirror1.ku.ac.th * extras: ftp.iitm.ac.in * updates: ftp.iitm.ac.in Package htop-2.0.2-1.el7.x86_64 already installed and latest version Nothing to do
如果您使用的是Fedora Linux,请尝试以下dnf命令:
$ dnf list installed {PACKAGE_NAME_HERE} $ dnf list installed htop