Linux yum源搭建及配置(新手必看)

RPM 包的安装虽然很方便和快捷,但是依赖性实在是很麻烦,尤其是库文件依赖,还要去 rpmfind 网站査找库文件到底属于哪个 RPM 包,从而导致 RPM 包的安装非常烦琐。那么,有没有可以自动解决依赖性、自动安装的方法呢?

答案是肯定的,yum 在线管理就可以自动处理 RPM 包的依赖性问题,从而大大简化 RPM 包的安装过程。但需要注意的是,首先,yum 安装的还是 RPM 包,其次,yum 安装是需要有可用的 yum 服务器存在的,当然这个 yum 服务器可以在网上,也可以使用光盘在本地搭建。

yum 可以方便地进行 RPM 包的安装、升级、査询和卸载,而且可以自动解决依赖性问题,非常方便和快捷。但是,一定要注意 yum 的卸载功能。yum 在卸载软件的同时会卸载这个软件的依赖包,但是如果卸载的依赖包是系统的必备软件包,就有可能导致系统崩溃。除非你确实知道 yum 在自动卸载时会卸载哪些软件包,否则最好不要执行 yum 卸载。

yum源搭建

yum 源既可以使用网络 yum 源,也可以使用本地光盘作为 yum 源。要使用网络 yum 源,你的主机必须是正常联网的。

当然,要使用 yum 进行 RPM 包安装,那么必须安装 yum 软件。查看命令如下:

[root@localhost ~]# rpm -qa | grep yum
yum-metadata-parser-1.1.2-16.el6.i686
yum-3.2.29-30.el6.centos.noarch
yum-utils-1.1.30-14.el6.noarch
yum-plugin-fastestmirror-1.1.30-14.el6.noarch
yum-plugin-security-1.1.30-14.el6.noarch

如果没有安装,则需要手工使用 RPM 包方式安装。

网络yum源服务器搭建

在主机网络正常的情况下,CentOS 的 yum 是可以直接使用的,不过我们需要了解一下 yum 源配置文件的内容。

yum 源配置文件保存在 /etc/yum.repos.d/ 目录中,文件的扩展名一定是"*.repo"。也就是说,yum 源配置 文件只要扩展名是"*.repo"就会生效。

[root@localhost ~]# ls /etc/yum.repos.d/
CentOS-Base.repo
CentOS-Media.repo
CentOS-Debuginfo.repo.bak、
CentOS-Vault.repo

这个目录中有 4 个 yum 源配置文件,默认情况下 CentOS-Base.repo 文件生效。我们打开这个文件看看,命令如下:

[root@localhost yum.repos.d]# vim /etc/yum.repos.d/ CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/? release= $releasever&arch=$basearch&repo=os
baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
…省略部分输出…

在 CentOS-Base.repo 文件中有 5 个 yum 源容器,这里只列出了 base 容器,其他容器和 base 容器类似。

我们解释一下 base 这个容器:
  • [base]:容器名称,一定要放在[]中。
  • name:容器说明,可以自己随便写。
  • mirrorlist:镜像站点,这个可以注释掉。
  • baseurl:我们的 yum 源服务器的地址。默认是 CentOS 官方的 yum 源服务器,是可以使用的。如果你觉得慢,则可以改成你喜欢的 yum 源地址。
  • enabled:此容器是否生效,如果不写或写成 enabled 则表示此容器生效,写成 enable=0 则表示此容器不生效。
  • gpgcheck:如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。
  • gpgkey:数字证书的公钥文件保存位置。不用修改。

yum 源配置文件默认不需要进行任何修改就可以使用,只要网络可用就行。

以本地光盘作为 yum 源服务器

如果 Linux 主机不能联网,yum 就不能使用吗? yum 已经考虑到这个问题,所以在 /etc/yum.repos.d/ 目录下 还有一个 CentOS-Media.repo 文件,这个文件就是以本地光盘作为 yum 源服务器的模板文件,只需要进行简单的修改即可。

1) 放入 CentOS 安装光盘,并挂载光盘到指定位置。命令如下:

[root@localhost ~]# mkdir /mnt/cdrom
#创建cdrom目录,作为光盘的挂载点
[root@localhost ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#挂载光盘到/mnt/cdrom目录下


2) 修改其他几个 yum 源配置文件的扩展名,让它们失效,因为只有扩展名是"*.repo"的文件才能作为 yum 源配置文件。当然也可以删除其他几个 yum 源配置文件,但是如果删除了,当你又想用网络作为 yum 源时,就没有了参考文件,所以最好还是修改扩展名。 命令如下:

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mv CentOS-Base, repo CentOS-Base.repo.bak
[root@localhost yum.repos.d]#mv CentOS-Debuginfo.repo CentOS-Debuginfo.repo.bak
[root@localhost yum.repos.d]# mv CentOS-Vault.repo CentOS-Vault.repo.bak


3) 修改光盘 yum 源配置文件 CentOS-Media.repo,参照以下方修改:

[root@localhost yum.repos.d]# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个的不存在地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1, 让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

配置完成,现在可以感受一下yum的便捷了。