YUM(Yellowdog Updater Modified)是Fedora、CentOS、RedHat中的软件包管理器。基于 RPM 包管理,YUM通过分析RPM header数据,自动处理依赖关系,从指定服务器自动下载安装所有依赖的软件包。
安装软件
# yum install package1 [package2] [...]
重装软件
# yum reinstall package1 [package2] [...]
删除软件
# yum remove package1 [package2] [...]
或
# yum erase package1 [package2] [...]
升级软件
# yum update [package1] [package2] [...]
或
# yum upgrade [package1] [package2] [...]
当不指定参数时,升级所有软件。
检查更新
# yum check-update
查询信息
# yum info [...]
查看可用的RPM包
# yum list [...]
列出已安装的包
# yum list installed
搜索软件
# yum search string1 [string2] [...]
清除缓存
# yum clean [ packages | metadata | expire-cache | rpmdb | plugins | all ]
下载并使metadata可用
# yum makecache [fast]
安装编译器:
# yum install -y gcc gcc-c++ libstdc++ libstdc++-devel
安装Development Tools:
# yum groupinstall “Development Tools”
如出现there is no installed groups file错误,请附加参数--setopt=group_package_types=mandatory,default,optional。
查看组Development Tools的内容:
# yum groupinfo "Development Tools"
可先试以下命令:
# yum clean all
# yum makecache
Structure needs cleaning
yum安装报错:Structure needs cleaning,可使用package-cleanup查找有问题的包,删除后再重新安装:
# package-cleanup --problems or --leaves or --orphans or --oldkernels
# rpm -e xxxxxxxxx
duplicate错误
首先查看是否存在未完成的transaction:
# yum-complete-transaction
然后删除重复包:
package-cleanup --dupes lists duplicate packages
package-cleanup --cleandupes removes duplicate packages
rpmdb open failed
错误信息如下:
error: db5 error(-30973) from dbenv->open: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
解决方法:
# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb
更多yum工具,请查看yum-utils:
# man yum-utils
我们要使用YUM,必须要先找到适合的YUM Server,配置YUM Repositry。CentOS有很多的镜像站点供全世界软件更新之用。CentOS安装后已配置好这些Yum Repository,配置文件位于/etc/yum.repos.d目录下,文件扩展名为repo,如您不慎误删可执行如下命令重新安装:
#rpm -Uvh http://mirror.centos.org/centos/7/os/x86_64/Packages/centos-release-7-6.1810.2.el7.centos.x86_64.rpm
下面我们看一下CentOS-Base.repo的内容:
# CentOS-Base.repo
#
# The mirror