配置 Yum 和 Yum 软件包仓库

/etc/yum.conf 文件中包含的 [mian] 片段,使用户能够设置 yum 选项。[main] 片段中设置的值,对 yum 有全局影响,但可以被单独的 [repository] 片段中的值覆盖。

本部分内容包含

  • 通过编辑 /etc/yum.conf 文件中的 [main] 片段,更改  yum 全局全局全局选项。
  • 通过编辑 /etc/yum.conf 文件和 /etc/yum.repos.d/ 目录下的 .repo 文件中的 [repository] 片段,更改单独软件仓库的配置
  • 通过 /etc/yum.conf 文件和 /etc/yum.repos.d/ 目录中的文件使用变量,正确处理软件包的版本和平台值
  • 设置自定义软件包

/etc/yum.conf 文件中包含的 [mian] 片段,使用户能够设置 yum 选项。[main] 片段中设置的值,对 yum 有全局影响,但可以被单独的 [repository] 片段中的值覆盖。尽管可以在 /etc/yum.conf 文件中添加 [repository] 片段,但最好的方式还是在 /etc/yum.repos.d/ 目录中,创建新的或编辑已经存在的 .repo 文件。如果需要添加或编辑指定的软件仓库信息,情参考《设置 [repository] 选项》

Yum 配置文件 - [main] 选项的设置

/etc/yum.conf 配置文件中只包含一个 [main] 片段,用户可以向其中添加许多附加选项。其中一些选择的值影响 yum 的操作方式,一些影响 yum 对待软件仓库的方式。

/etc/yum.conf 配置文件中只包含一个 [main] 片段,用户可以向其中添加许多附加选项。其中一些选择的值影响 yum 的操作方式,一些影响 yum 对待软件仓库的方式。

了解有关 yum.conf 文件中的各个选项的值和说明信息,最好的方法是参考 yum.conf 的 man 文件,查看的命令为 man yum.conf

以下是 /etc/yum.conf 配置文件的示例:

[main]
cachedir=/var/cache/yum
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=3
[comments abridged]
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d

 

有关 [main] 片段中常用的选项及说明

cachedir=/var/cache/yum
选项指定 yum 存储 (软件包) 缓存和数据库文件的默认位置。其默认值为 /var/cache/yum

keepcache=[1 or 0]
设置 keepcache=1,yum 在成功安装软件包之后保留缓存的头文件 (headers) 和软件包。默认值为 keepcache=0

reposdir=[包含 .repo 文件的目录的绝对路径]
该选项用户指定 .repo 文件的绝对路径。.repo 文件包含软件仓库的信息 (作用与 /etc/yum.conf 文件中的 [repository] 片段相同)。
yum 从所有 .repo 文件以及 /etc/yum.conf 文件的 [repository] 片段中收集软件仓库的信息,并依此创建一个主仓库列表,用于请求传输软件包。
有关 .repo 文件和 [repository] 片段中能用到的选项的信息,请参考《配置 Yum 配置文件中的 [repository] 选项》

gpgcheck=[1 or 0];
该选项为所有软件仓库中 (及本地) 的软件包启用或禁用 GPG 签名验证。默认值为1,即启用 GPG 签名检测。

用户可以在不同的软件仓库配置中设置这个选项,并且单独的软件仓库配置中的值会覆盖 /etc/yum.conf 中的值。有关 GPG 签名检测的更多信息请参考《使用 RPM 验证软件包签名》

assumeyes=[1 or 0]
    该选项决定 yum 对于危险操作时是否给出提示。默认值为0,即不提示。当 assumeyes=1 时,在不应用 -y 选项时,yum 会给出提示。

exclude="[package_name] [more_names]"
选项允许用户在安装/升级的过程中,排除指定的软件包。排除多个软件包时应该使用引号("")包起来。这里同样允许使用 glob 表达式。

retries=[number_of_retries]
该选项设置返回错误消息前,yum 重试的次数。0 表示一直重试,默认值为 6。

Yum 配置文件 - [repository] 选项的设置

可以通过向 /etc/yum.conf 文件中添加 [repository] 片段 (其中 repository 为软件仓库标识,如 fedora),或者通过向 /etc/yum.repos.d/ 目录中添加 .repo 文件,实现单独软件仓库的定义。

可以通过向 /etc/yum.conf 文件中添加 [repository] 片段 (其中 repository 为软件仓库标识,如 fedora),或者通过向 /etc/yum.repos.d/ 目录中添加 .repo 文件,实现单独软件仓库的定义。

/etc/yum.repos.d/ 中的所有 .repo 文件都会在 yum 下次运行时被读取。

最简单的 .repo 文件样式如下

[repository_ID]
name=A Repository Name
baseurl=http://path/to/repo

 

每个 [repository] 片段必须包含以下几部分

[软件包仓库标识]
软件包仓库标识是被方括号包围的单个单词(没有空格,没有下划线),并且不能与其它软件包仓库重名。

name=[软件包仓库名]
设置软件仓库的描述性信息

baseusrl=http://path/to/repo, ftp://path/to/repo, file://path/to/local/repo
设置软件仓库的 URL 目录,该目录包含软件仓库的仓库数据(repodata)目录,这个 URL 通常是 HTTP 链接,如 baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/$releasever/Everything/$basearch/os/

Yum 能够自动转换 URL 链接中的 $releasever, $arch 和 $basearch 变量,有关 yum 变量的说明,请参考《使用 Yum 变量

如果软件包仓库使用 FTP 地址,使用 ftp://path/to/repo
如果软件包仓库使用本地地址,使用 file://path/to/local/repo
如果软件包仓库使用基本的 HTTP 验证,可以在 baseurl 前扩展用户名和密码进行身份验证,如 baseurl=http://user:password@www.example.com/repo/

 

可选配置选项

enabled=[1 or 0]
当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。
通过 yum 的 --enablerepo=[repo_name] --disablerepo=[repo_name] 选项,或者通过 PackageKit 的"添加/删除软件"工具,也能够方便地启用和禁用指定的软件仓库。参考《刷新 PackageKit 软件源 (Yum 软件仓库)》

使用 Yum 变量

在《Yum 配置文件 - [repository] 选项的设置》中,提到 yum 命令和 yum 配置文件中需要使用到的一些变量,如 $releasever, $arch 和 $basearch,本节主要说明这些变量的来源及作用。

在《Yum 配置文件 - [repository] 选项的设置》中,提到 yum 命令和 yum 配置文件中需要使用到的一些变量,如 $releasever, $arch 和 $basearch,本节主要说明这些变量的来源及作用。

yum 配置文件是指 /etc/yum.conf 和 /etc/yum.repos.d/ 目录下的所有 .repo 配置文件

 

$releasever
此变量表示 Fedora 的发行版,yum 通过 /etc/yum.conf 文件,从 distrooverpky=<value> 行取得 $releasever 的值。如果 /etc/yum.conf 文件中没有这一行,yum 则从 redhat-release (应该是 fedora-release) 软件包中推算出正确的值.

$arch
此变量用于标识系统所用的 CPU 平台,变量的值通过 uname 命令得出,$arch 的有效值为 i586, i686 和 x86_64

$basearch
此变量用于参照系统的基本平台,例如,i686 和 i586 机器的基本平台是 i 386,AMD64 和 Intel64 机器的基本平台是 x86_64

$YUM0-9
$YUM0 ~ $YUM9 这十个变量分别被 shell 环境中的同名变量的值所替代。如果 /etc/yum.conf 文件中设置了这些变量,而 shell 环境中没有同名变量,它的值则不被代替。

创建 Yum 软件包仓库

按照以下步骤,即可以完成创建 Yum 软件包仓库的操作。这些命令会为你创建 Yum 软件包仓库必须的元数据,以及用于加速 yum 操作的 sqlite 数据库

按照以下步骤,即可以完成创建 Yum 软件包仓库的操作

1.安装 createrepo 软件包

~]# yum install createrepo

2.将所有软件包复制到某个目录下,如 /mnt/local_repo/
3.将第2步中使用的目录作为 createrepo --database 参数,执行命令

~]# createrepo --database /mnt/local_repo

以上命令会为你创建 Yum 软件包仓库必须的元数据,以及用于加速 yum 操作的 sqlite 数据库