Linux系统中的YUM包管理工具详解
yum [参数] [指令] [软件包]
YUM是RedHat和SUSE发行版中基于rpm的软件包管理工具。它能够从指定服务器自动下载rpm包并进行安装,自动处理依赖关系,并可一次性安装所有必需的依赖包。
(补充说明:YUM解决依赖关系、自动下载软件包是基于客户端/服务器架构,支持ftp/http/file协议)
(1).常用参数
-h 显示帮助信息(大多数命令都支持-h或--help)
-t 忽略错误继续执行
-c 指定配置文件路径
-R 设置命令执行的最长等待时间
-q 静默模式,减少输出信息
-v 显示详细操作信息
-y 对所有提示自动回答"yes"
(2).常用指令
check-update 检查可用的软件包更新
clear 清除缓存数据
erase或remove 删除一个或多个软件包
deplist 列出软件包的依赖关系
info 显示软件包或组的详细信息
install 安装一个或多个软件包
list 列出指定软件包或组的列表
provides 查询包含指定内容的软件包
search 使用关键字搜索软件包
update 更新软件包,包括软件配置和系统设置,同时升级系统版本和内核
upgrade 更新软件包,保持软件配置和系统设置不变,仅升级系统版本,不升级内核
(3).实用示例
注意:CentOS系统自带yum-*.Noarch.rpm包。Ubuntu系统需要手动添加YUM支持。
clear指令示例
[root@CentOS6 桌面]# yum clear all //清除所有缓存
已加载插件:fastestmirror,refresh-packagekit,security
清理软件源:base extras updates
清理完成
[root@CentOS6 桌面]# yum clear packages //清除临时包文件(/var/cache/yum下的文件)
已加载插件:fastestmirror,refresh-packagekit,security
清理软件源:base extras updates
0 个包文件已删除
[root@CentOS6 桌面]# yum clear headers //清除rpm头文件
已加载插件:fastestmirror,refresh-packagekit,security
清理软件源:base extras updates
0 个头文件已删除
list指令示例
yum list //列出可安装、可更新和已安装的rpm包,并进行缓存。可用yum clear all清除缓存。
yum list installed //仅显示已安装的软件包
yum list extras //显示已安装但不在软件仓库中的包
配置YUM源,否则无法继续操作
[root@CentOS6 桌面]#rpm –Uvh http://repo.mysql.com/mysql-community-release-el5.rpm
install指令示例
yum install * //安装或升级所有可用软件包
yum install mysql //仅安装mysql软件包,可替换为其他包名,也可使用mysql*表示安装以mysql开头的所有包
erase,remove,deplist指令示例
yum deplist mysql//查看软件包的依赖关系,包名越具体输出越精确。如只输入mysql会列出所有以mysql开头的软件包及其依赖关系
yum erase mysql*//删除软件包及其依赖关系,mysql*会删除所有以mysql开头的软件包,因此后面的包名越具体越好。
//如果包名为mysql-libs,则只会删除mysql-libs及其依赖关系
yum remove mysql*//功能与erase相同
此外,yum还支持grouplist和groupinstall对软件包组进行操作
[root@server ~]# yum grouplist
[root@server ~]# yum groupinstall "开发工具"
(4).扩展内容
1)配置本地软件源
2)配置网络软件源
在配置网络软件源前,建议先备份原有配置文件。
[root@server yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
--2023-05-15 10:30:45-- http://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 119.23.242.97, 119.23.242.98, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|119.23.242.97|:80... 已连接。
已发送 HTTP 请求,等待响应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
保存至: "/etc/yum.repos.d/CentOS-Base.repo"
100%[===================================================>] 2,523 --.-K/s 用时 0.01s
2023-05-15 10:30:45 (63.3 MB/s) - 已保存 "/etc/yum.repos.d/CentOS-Base.repo" [2523/2523])
wget下载文件
-O 将下载文件保存到指定位置
阿里云软件源配置文件地址:http://mirrors.aliyun.com/repo/Centos-7.repo
注意:为何需要备份?因为通过网络配置的软件源可能无法正常使用。以阿里云软件源为例,在/etc/yum.repo.d/CentOS-Base.repo中的"baseurl=[URL]"项包含两个变量$releasever和$basearch。根据以下命令的输出结果代入变量值,只有当完整URL有效时,软件源才能正常使用。
[root@server yum.repos.d]# cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core) //$releasever对应7.9.2009
[root@server yum.repos.d]# uname -r
3.10.0-1160.el7.x86_64 //$basearch对应x86_64
如果下载的网络软件源无法使用,可到相应网站查找合适版本(或大版本号内最新版本),替换软件源中的变量(可使用sed命令)。
以阿里云网络软件源为例:
[root@server yum.repos.d]# sed -i 's/$releasever/7.9.2009/g' /etc/yum.repos.d/CentOS-Base.repo
[root@server yum.repos.d]# sed -i 's/$basearch/x86_64/g' /etc/yum.repos.d/CentOS-Base.repo
[root@server yum.repos.d]# yum clear all //清理yum缓存
已加载插件:fastestmirror, langpacks
清理软件源: CentOS7 base extras updates
正在清理最快镜像列表
3)YUM错误排查指南
1.使用本地软件源时,检查光盘是否已连接并正确挂载
2. 确认网络连接是否正常
3.检查配置文件格式是否正确,字母、符号是否完整,挂载点与配置文件中的设置是否一致。