Linux常用工具之软件安装
Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
yum 查看已安装软件
sudo yum list installed
使用yum
命令列出CentOS系统已安装的软件包。它将打印所有已安装软件包的列表,包括RPM软件包的版本和软件仓库的信息。
通常已安装的软件包列表很长,为了提高可读性,最好将输出通过管道传递给less
命令。要确定是否安装了指定的软件,你可以使用grep
命令过滤输出。
例如命令sudo yum list installed | grep unzip
可以确定CentOS系统是否安装unzip软件。
$ sudo yum list installed
$ sudo yum list installed | grep unzip
RPM 查看已安装软件
$ sudo rpm -qa
$ sudo rpm -qa > packages_list.txt
$ sudo rpm -q unzip
$ sudo rpm -qa | grep unzip
在恢复已安装的软件时或者在其他服务器安装相同的软件时,可以使用cat
命令将所有软件包传递给yum
命令。
sudo yum -y install $(cat packages_list.txt)
命令将会读取packages_list.txt文件并循环安装软件。
sudo yum -y install $(cat packages_list.txt)
统计已安装软件总数
如需要查看CentOS系统安装了多少软件,请使用与之前相同的命令,但不要将命令的标准输出重定向到文件,而是将其通过管道传递到wc
以对行进行计数。
sudo rpm -qa | wc -l
将会对sudo rpm -qa
的标准输出行进行计数,这样你可以确定系统已安装了多个软件。
sudo rpm -qa | wc -l
列出软件包的依赖
如果需要知道已安装的软件需要依赖哪些软件,可以使用yum deplist <软件名>
命令
# 查看docker依赖的软件包
$ yum deplist docker
Loaded plugins: elrepo, fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrors.elrepo.org/mirrors-elrepo.el7 error was
12: Timeout on http://mirrors.elrepo.org/mirrors-elrepo.el7: (28, 'Connection timed out after 30001 milliseconds')
* elrepo: mirrors.coreix.net
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
To address this issue please refer to the below wiki article
https://wiki.centos.org/yum-errors
If above article doesn't help to resolve this issue please use https://bugs.centos.org/.
[elrepo]: 51 kmod packages excluded due to dependency errors
package: docker.x86_64 2:1.13.1-209.git7d71120.el7.centos
dependency: /bin/sh
provider: bash.x86_64 4.2.46-35.el7_9
dependency: docker-client = 2:1.13.1-209.git7d71120.el7.centos
provider: docker-client.x86_64 2:1.13.1-209.git7d71120.el7.centos
dependency: docker-common = 2:1.13.1-209.git7d71120.el7.centos
provider: docker-common.x86_64 2:1.13.1-209.git7d71120.el7.centos
dependency: libassuan.so.0()(64bit)
provider: libassuan.x86_64 2.1.0-3.el7
dependency: libaudit.so.1()(64bit)
provider: audit-libs.x86_64 2.8.5-4.el7
dependency: libc.so.6(GLIBC_2.17)(64bit)
provider: glibc.x86_64 2.17-326.el7_9
...
升级软件包
升级所有软件包
$ yum update
升级某一个软件包
$ yum update docker
检查可更新程序
$ yum check-update
卸载软件包
使用命令yum remove <软件包>
# 卸载已安装的docker
$ yum remove docker