1 yum仓库介绍
Yum(全称为Yellowdog Updater Modified)是一个在Fedora、CentOS和Red Hat等基于RPM的Linux发行版中广泛使用的软件包管理器。它基于RPM包管理系统,提供了一种自动化和易于管理软件包的方式,包括安装、更新、删除和管理依赖关系。Yum通过使用仓库(repositories)来管理软件包,这些仓库包含了预编译的RPM软件包以及包的元数据。
Yum是Linux系统中一种强大且易于使用的软件包管理工具。它简化了软件的安装、更新和维护过程,并且通过自动解决依赖关系,减少了管理包的复杂性。随着DNF的出现,Yum的一些功能得到了进一步的改进,但Yum仍然是许多基于RPM的Linux发行版中的主要软件包管理器。
1.1 Yum仓库的概念
-
什么是Yum仓库: Yum仓库是一个存放RPM软件包的服务器或目录,它允许用户从一个中心位置安装和更新软件。每个仓库包含一系列的软件包以及一个索引文件(通常是
repodata
目录),用于存储包的元数据。 -
元数据: 元数据包含了关于软件包的信息,如版本号、依赖关系、摘要、描述等。这些信息使得Yum能够解决依赖问题,自动下载和安装所需的所有软件包。
1.2 Yum的主要特点
-
依赖性解析: Yum自动处理软件包的依赖关系,确保软件包的依赖项都被安装。
-
简化的软件管理: 通过Yum命令,用户可以轻松地安装、更新、删除软件包。
-
自动更新: Yum允许自动更新系统中的软件包,确保系统的安全性和最新性。
-
易于维护: 对于系统管理员而言,Yum使得维护大量系统变得更简单,因为它提供了一致的界面来管理所有软件包。
-
丰富的软件源: 社区和第三方开发者提供了大量的Yum仓库,包括软件、游戏、工具等。
1.3 使用Yum
-
安装软件包: 使用
yum install package_name
命令来安装软件包。 -
更新软件包: 使用
yum update
命令更新所有软件包,或者yum update package_name
只更新特定软件包。 -
删除软件包: 使用
yum remove package_name
命令来删除软件包。 -
搜索软件包: 使用
yum search keyword
命令来搜索仓库中的软件包。 -
列出软件包: 使用
yum list
命令来列出所有可用的软件包。
1.4 配置Yum仓库
-
yum.conf: Yum的全局配置文件是
/etc/yum.conf
,它包含了Yum操作的全局选项。 -
仓库配置: 仓库配置文件通常位于
/etc/yum.repos.d/
目录。每个仓库配置文件包含了仓库的URL、名称、是否启用等信息。 -
添加新仓库: 可以通过创建新的
.repo
文件或使用yum-config-manager --add-repo
命令来添加新的Yum仓库。 -
禁用/启用仓库: 可以在安装或更新时使用
--enablerepo
或--disablerepo
选项来启用或禁用特定的仓库。
1.5 Yum插件
Yum支持插件,这些插件可以扩展其基本功能。例如,yum-plugin-fastestmirror
选择最快的镜像以加速下载,而yum-plugin-security
只显示安全相关的更新。
1.6 安全性和缓存
-
GPG签名: Yum支持GPG签名验证,以确保软件包的完整性和来源。
-
缓存: Yum维护一个本地缓存,用于存储下载的头文件和软件包。可以通过
yum clean
命令来清理缓存。
1.7 Yum vs DNF
DNF是Yum的后继者,它提供了更好的性能和改进的依赖解析。在Fedora和RHEL 8中,DNF已经取代了Yum作为默认的包管理器。
2 更换yum源
2.1 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
2.2 下载新的CentOS-Base.repo 到/etc/yum.repos.d/
2.2.1 aliyun源
CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.2.2 163源
CentOS 5
wget http://mirrors.163.com/.help/CentOS5-Base-163.repo
CentOS 6
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
CentOS 7
wget http://mirrors.163.com/.help/CentOS6-Base-163.repo
2.2.3 EPEL源
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo rpm -ivh epel-release-latest-7.noarch.rpm
sudo yum repolist
2.3 运行yum makecache生成缓存
sudo yum clean all
sudo yum makecache
sudo yum update