当前位置:首页 > 技术 > 正文内容

Linux系统中的YUM包管理工具详解

访客 技术 2026年6月19日 1

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.检查配置文件格式是否正确,字母、符号是否完整,挂载点与配置文件中的设置是否一致。

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。