在CentOS5/6中,/etc/yum.repos.d/的 yum repo 的设定可以使用$releasever和$basearch变量。但是,CentOS 6.3里$releasever只有 6,所以还是不太方便。在毎次版本升级之后 /etc/yum.repos.d/的设定重新改成固定值的话当然也OK,但是还是有点麻烦,所以这里调查一下Yum变量的设定方法。
$ sudo python -c 'import yum, pprint; yb = yum.YumBase();pprint.pprint(yb.conf.yumvar, width=1)'
for CentOS5.8
{'arch':'ia32e',
'basearch':'x86_64',
'releasever':'5'}
for CentOS6.3
{'arch':'ia32e',
'basearch':'x86_64',
'releasever':'6',
'uuid':'xxx'}
5和6多少有点区别。
首先,6的话可以在/etc/yum/vars 目录下,仅仅通过追加文件就可以增加Yum 的变量。
$ sudo vi/etc/yum/vars/full_releasever
6.3
$ sudopython -c 'import yum, pprint; yb = yum.YumBase();pprint.pprint(yb.conf.yumvar, width=1)'
Loadedplugins: fastestmirror, presto
{'arch':'ia32e',
'basearch':'x86_64',
'full_releasever':'6.3',
'releasever':'6',
'uuid':'xxx'}
这样就可以简单地添加 Yum变量。文件名就是变量名,文件里写的值就是变量值。
CentOS 的话,仅仅想获取X.Y用下面的命令就可以了。
$ rpm -q --queryformat '%{VERSION}.%{RELEASE}' centos-release | cut -c 1-3
其他的方法的话,也可以参照/etc/redhat-release,不过该文件可能被覆盖掉,上面的命令更好点。但是请注意,上面的命令只能使用 X.Y的模式。
CentOS 5 的话,很遗憾不能用和6相同的方法。虽然可以通过定义$YUM[0-9]环境变量,但是不能添加任意名字的变量。
$ export YUM0=hoge
这样还是有点不方便。
CentOS 6下载SRPM的Yum repo的设定如下所示。
$ sudo vi/etc/yum.repos.d/sources.repo
[base-source]
name=CentOS-$full_releasever- Base source
baseurl=http://vault.centos.org/$full_releasever/os/Source/
gpgcheck=1
gpgkey=http://vault.centos.org//RPM-GPG-KEY-CentOS-6
priority=1
enabled=1
[updates-source]
name=CentOS-$full_releasever- Updates Source
baseurl=http://vault.centos.org/$full_releasever/updates/Source/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6
priority=1
enabled=1
这样就很方便了!
这样设置之后,例如,下载kernel的 SPRM,只要安装yum-utils包,然后执行下面的命令就可以了。
$ sudo yumdownloader --source kernel-`uname -r`
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.e1idc.net