命令行安装yum是Linux系统管理员经常需要掌握的技能,尤其对于基于Red Hat系发行版(如CentOS、RHEL、Fedora等)yum(Yellow dog Updater, Modified)是一个至关重要的包管理工具,它能够自动解决软件包之间的依赖关系,简化软件的安装、更新和移除过程,下面将详细介绍如何在命令行环境下安装、配置和使用yum,包括常见问题的解决方法和高级技巧。

yum的基本概念与工作原理
yum是一个基于RPM的包管理器,它通过一个集中的软件仓库(repository)来管理软件包,用户只需指定要安装的软件包名称,yum会自动从仓库中下载并安装该软件包及其所有依赖的包,yum的工作原理主要包括以下几个步骤:1. 用户发出安装或更新命令;2. yum查询本地缓存和远程仓库的元数据;3. 分析依赖关系并生成解决方案;4. 下载并安装所需的软件包,元数据通常包含软件包的版本、依赖关系、文件列表等信息,yum会定期更新这些元数据以确保信息的准确性。
检查系统是否已安装yum
在开始安装yum之前,首先需要确认系统中是否已经安装了yum,可以通过以下命令进行检查:
rpm -qa | grep yum
如果系统中已经安装了yum,该命令会列出所有与yum相关的包,如果未安装或需要重新安装,可以继续下面的步骤,对于较新的系统(如CentOS 7及以上),yum可能已被dnf替代,但dnf是yum的下一代版本,命令语法基本兼容。
安装yum的详细步骤
准备工作
确保系统已连接到互联网,并且可以访问yum的软件仓库,对于离线环境,需要预先下载所需的软件包及其依赖,建议以root用户或具有sudo权限的用户身份操作,以避免权限不足的问题。

下载yum的安装包
如果系统中完全没有yum,需要手动下载必要的RPM包,可以从CentOS或RHEL的官方镜像站点下载以下核心包:
- yum-*.rpm
- yum-metadata-parser-*.rpm
- yum-plugin-fastestmirror-*.rpm
- python-iniparse-*.rpm(某些旧版本需要)
使用wget命令下载示例:
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-3.4.3-168.el7.centos.noarch.rpm wget http://mirror.centos.org/centos/7/os/x86_64/Packages/yum-metadata-parser-1.1.4-10.el7.x86_64.rpm
安装下载的RPM包
使用rpm命令安装下载的包,依赖关系需要手动解决:
rpm -ivh yum-*.rpm yum-metadata-parser-*.rpm python-iniparse-*.rpm
如果遇到依赖冲突,可能需要下载并安装缺失的依赖包。

配置yum仓库
安装完成后,需要配置yum仓库的源文件,仓库配置通常位于/etc/yum.repos.d/
目录下,以.repo
为后缀,CentOS的默认配置文件为CentOS-Base.repo
,可以使用以下命令查看或编辑:
vi /etc/yum.repos.d/CentOS-Base.repo
确保文件中的baseurl
指向有效的镜像地址,
[base] name=CentOS-$releasever - Base baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
清理并更新缓存
运行以下命令清理旧的缓存并生成新的元数据缓存:
yum clean all yum makecache
yum的常用命令与操作
yum的命令语法简洁直观,以下是一些常用操作:
命令 | 功能描述 | 示例 |
---|---|---|
yum install package_name |
安装指定的软件包 | yum install nginx |
yum update |
更新系统所有已安装的包 | yum update |
yum update package_name |
更新指定的软件包 | yum update nginx |
yum remove package_name |
移除指定的软件包 | yum remove nginx |
yum search keyword |
搜索包含关键字的软件包 | yum search web server |
yum list installed |
列出所有已安装的软件包 | yum list installed |
yum list available |
列出所有可用的软件包 | yum list available |
yum history list |
查看yum操作历史 | yum history list |
yum history undo last |
撤销上一次操作 | yum history undo last |
yum的高级配置与故障排除
配置第三方仓库
除了官方仓库,还可以添加第三方仓库(如EPEL、Remi等),以EPEL为例:
yum install epel-release
安装后,/etc/yum.repos.d/
目录下会生成epel.repo
文件,即可使用EPEL仓库中的软件包。
解决依赖问题
如果遇到依赖错误,可以尝试以下方法:
- 使用
yum deplist package_name
查看依赖关系。 - 手动安装缺失的依赖包。
- 使用
--skip-broken
参数跳过损坏的包:yum update --skip-broken
。
清理缓存问题
如果yum命令报错或无法找到包,可能是缓存损坏,可以执行:
rm -rf /var/cache/yum/* yum makecache
相关问答FAQs
问题1:yum安装时提示“Error: Cannot retrieve repository metadata (repomd.xml) for repository”如何解决?
解答:此错误通常是由于网络连接问题或仓库配置错误导致的,首先检查网络是否正常,然后使用ping
命令测试仓库镜像地址的连通性,如果镜像地址不可用,可以更换为其他镜像源,例如将/etc/yum.repos.d/CentOS-Base.repo
中的baseurl
修改为国内镜像源(如阿里云、网易镜像),确保仓库文件中的enabled=1
且gpgcheck=0
(临时禁用GPG检查)或正确导入GPG密钥。
问题2:如何查看yum安装的软件包默认安装路径?
解答:可以使用rpm
命令查询软件包的安装路径,要查看nginx的安装路径,运行:
rpm -ql nginx
该命令会列出nginx所有安装的文件和目录路径,也可以通过yum install yum-utils
安装repoquery
工具,使用repoquery -l package_name
查询,功能类似但更强大,对于某些服务,还可以通过systemctl status service_name
查看其配置文件路径(如nginx的配置文件通常位于/etc/nginx/
)。