一、概述
YUM(Yellowdog Updater Modified)是一个用于RPM包管理系统的自动化更新工具,最初由Duke University的Linux实验室开发。它简化了基于RPM的Linux发行版(如Red Hat Enterprise Linux, CentOS, Fedora等)上的软件安装、更新和管理过程。YUM通过解析依赖关系自动解决包之间的依赖问题,并可以从多个源同步获取最新的软件版本。
二、YUM的特点
-
自动处理依赖关系:YUM能够智能地分析软件包间的依赖性,并自动下载和安装所需的其他组件。
-
多仓库支持:可以配置多个软件仓库,使得用户可以从不同的位置获取软件包。
-
安全更新:提供安全补丁的快速应用,帮助保持系统安全性。
-
事务性更新:所有更改作为一个整体执行,如果其中任何一步失败,则回滚整个操作以确保系统的稳定性。
-
易于使用:命令行界面友好,提供了简单的命令来完成复杂的任务。
-
插件架构:允许扩展功能,例如fastestmirror插件可选择最快的镜像站点进行下载。
三、YUM部署方式
3.1 本地YUM
本地YUM指的是使用本地存储介质(如CD/DVD或USB驱动器)作为软件仓库来安装软件包。这对于没有互联网连接或者需要离线环境中安装软件的情况非常有用。
-
挂载ISO镜像
[root@localhost ~]# mkdir -p /mnt [root@localhost ~]# mount -o loop /dev/cdrom /mnt
-
创建或编辑YUM配置文件 编辑/etc/yum.repos.d/local.repo文件,添加如下内容:
[LocalRepo] name=Local Repository baseurl=file:///mnt enabled=1 gpgcheck=0
-
name: 定义仓库的名称,便于识别。
-
baseurl: 指定仓库的基础URL。对于本地YUM,这通常是指向已挂载ISO镜像的路径。
-
enabled: 控制是否启用此仓库(1为启用,0为禁用)。
-
gpgcheck: 决定是否检查GPG签名验证软件包的真实性(1为开启,0为关闭)。
-
清理缓存并刷新元数据
[root@localhost ~]# yum clean all [root@localhost ~]# yum makecache
-
开始安装软件包 使用yum install package_name命令来安装所需软件包。
Last metadata expiration check: 14:49:20 ago on Tue 14 Jan 2025 08:54:27 PM CST. Dependencies resolved. ===============================================================================================================================Package Architecture Version Repository Size =============================================================================================================================== Reinstalling:lrzsz x86_64 0.12.20-46.ky10 ks10-adv-os 82 k Transaction Summary =============================================================================================================================== Total download size: 82 k Installed size: 195 k Downloading Packages: lrzsz-0.12.20-46.ky10.x86_64.rpm 622 kB/s | 82 kB 00:00 ------------------------------------------------------------------------------------------------------------------------------- Total 609 kB/s | 82 kB 00:00 Running transaction check Transaction check succeeded. Running transaction test Transaction test succeeded. Running transactionPreparing : 1/1 Reinstalling : lrzsz-0.12.20-46.ky10.x86_64 1/2 Cleanup : lrzsz-0.12.20-46.ky10.x86_64 2/2 Running scriptlet: lrzsz-0.12.20-46.ky10.x86_64 2/2 /sbin/ldconfig: /usr/lib64/libLLVM-7.so is not a symbolic link /sbin/ldconfig: /usr/lib64/libLLVM-7.so is not a symbolic linkVerifying : lrzsz-0.12.20-46.ky10.x86_64 1/2 Verifying : lrzsz-0.12.20-46.ky10.x86_64 2/2 Reinstalled:lrzsz-0.12.20-46.ky10.x86_64 Complete!
3.2 网络YUM
网络YUM则是指通过互联网连接到公共或私有的在线软件仓库来安装和更新软件包。
-
默认配置 大多数基于RPM的Linux发行版已经预装了官方的网络YUM库。这些配置通常位于/etc/yum.repos.d/目录下的.repo文件中。
-
自定义网络YUM 如果你需要添加额外的第三方仓库,只需创建一个新的.repo文件在/etc/yum.repos.d/目录下,并按照以下格式填写,以kylin v10为示例:
###Kylin Linux Advanced Server 10 - os repo### [ks10-adv-os] name = Kylin Linux Advanced Server 10 - Os baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/base/$basearch/ gpgcheck = 1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled = 1 [ks10-adv-updates] name = Kylin Linux Advanced Server 10 - Updates baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/updates/$basearch/ gpgcheck = 1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled = 1 [ks10-adv-addons] name = Kylin Linux Advanced Server 10 - Addons baseurl = http://update.cs2c.com.cn:8080/NS/V10/V10SP2/os/adv/lic/addons/$basearch/ gpgcheck = 1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-kylin enabled = 0
-
name: 定义仓库的名称,便于识别。
-
baseurl: 指定仓库的基础URL,指向包含RPM包的服务器地址。
-
enabled: 控制是否启用此仓库(1为启用,0为禁用)。
-
gpgcheck: 决定是否检查GPG签名验证软件包的真实性(1为开启,0为关闭)。
-
gpgkey: 提供用于验证软件包的GPG密钥URL,确保软件包来源的安全性。
-
清理缓存并刷新元数据
在每次修改配置后,应该运行yum clean all清除缓存,并用yum makecache重新构建本地索引。
四、YUM管理与常用命令
YUM提供了丰富的命令来管理和维护已安装的软件包。下面是一些常用的命令及其用途和参数说明:
-
列出可用更新
yum check-update
此命令检查所有已配置仓库中的新版本软件包,但不会实际下载或安装它们。
-
更新所有软件包
yum update
更新系统上所有已安装软件包至最新版本,包括解决依赖关系。
-
安装新软件包
yum install package_name
安装指定名称的软件包,同时自动解决并安装依赖项。
参数:
-y: 自动回答“是”,无需人工确认。
-
移除软件包
yum remove package_name
卸载指定名称的软件包及其相关依赖(如果不再被其他软件包需要)。
-
搜索软件包
yum search keyword
根据关键词查找可能匹配的软件包名或描述信息。
-
显示详细信息
yum info package_name
显示关于指定软件包的详细信息,包括版本号、摘要、描述等。
-
查看已安装的软件包列表
yum list installed
列出当前系统中已安装的所有软件包。
-
查看可安装但未安装的软件包列表
yum list available
列出可以从已配置仓库中安装的所有软件包,但尚未安装。
-
查找哪个包提供了某个文件
yum provides filename
查找提供特定文件的软件包名称,有助于定位该文件属于哪个软件包。
-
清理所有缓存
yum clean all
清除YUM的缓存,包括过期的元数据和旧版本的软件包。
-
重建缓存
yum makecache
下载并生成新的元数据缓存,以便更快地查询软件包信息。
此外,还可以利用YUM插件增强其功能。例如,yum-plugin-fastestmirror可以根据地理位置选择最快镜像源;yum-utils套件中的package-cleanup工具可以帮助清理重复或不必要的软件包。
总之,YUM是一个强大而灵活的包管理系统,它不仅简化了软件的安装与维护工作,还为用户提供了一个安全可靠的途径来确保系统始终处于最新状态。通过理解上述命令及其参数,用户可以更有效地管理自己的Linux系统。