辛辛苦苦在机房苦战了2分钟给机器安装了CentOS 7系统,结果发现要安装的软件不适用这个7.3.1611版本,不想去机房。
CentOS系统下用yum upgrade
命令只能升级到最新版本,CentOS仓库并不维护历史版本,所以只能使用 vault.centos.org 历史版本快照进行更新,本文以将7.3.1611升级到7.4.1708为例。
查看当前版本
$ rpm -q centos-release centos-release-7-3.1611.el7.centos.x86_64 $ cat /etc/centos-release CentOS Linux release 7.3.1611 (Core)
|
新增指定版本更新源
CentOS 7的更新源在/etc/yum.repos.d/
目录下,其中的CentOS-Vault.repo
文件中已经写好了一些历史发布版本的源,如果需要只需将该源的enabled
设置为1,默认只有比当前系统的安装版本低的版本,但是我们可以将高版本的更新源如法炮制一份,手动添加进来。这里以7.4.1708
版本为例,将如下内容添加进来,其中base
和updates
源需要设置为1,fasttrack
最好也设置为1,这样可以按照最近的源来更新提高速度,其他可根据需要选择开启或者禁用:
# C7.4.1708 [C7.4.1708-base] name=CentOS-7.4.1708 - Base baseurl=http://vault.centos.org/7.4.1708/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1
[C7.4.1708-updates] name=CentOS-7.4.1708 - Updates baseurl=http://vault.centos.org/7.4.1708/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1
[C7.4.1708-extras] name=CentOS-7.4.1708 - Extras baseurl=http://vault.centos.org/7.4.1708/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=0
[C7.4.1708-centosplus] name=CentOS-7.4.1708 - CentOSPlus baseurl=http://vault.centos.org/7.4.1708/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=0
[C7.4.1708-fasttrack] name=CentOS-7.4.1708 - CentOSPlus baseurl=http://vault.centos.org/7.4.1708/fasttrack/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enabled=1
|
之后查看仓库是否可用:
$ yum repolist Loaded plugins: fastestmirror repo id repo name status C7.4.1708-base/x86_64 CentOS-7.4.1708 - Base 9,591 C7.4.1708-centosplus/x86_64 CentOS-7.4.1708 - CentOSPlus 92 C7.4.1708-fasttrack/x86_64 CentOS-7.4.1708 - CentOSPlus 0 C7.4.1708-updates/x86_64 CentOS-7.4.1708 - Updates 2,416 repolist: 12,099
|
禁用其他更新源
修改在/etc/yum.repos.d/
目录下的.repo
文件,将其他软件源禁用(包括CentOS-Base.repo
),禁用方式是将.repo
文件中的每个源的enabled
设置为0(如果没有enabled
字段可以手动添加),或者直接将.repo
文件改为其他后缀,例如.repo.bak
,这里以Qemu
源为例:
[centos-qemu-ev] name=CentOS-$releasever - QEMU EV baseurl=http://mirror.centos.org/centos/$releasever/virt/$basearch/kvm-common/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Virtualization
|
修改好了之后查看当前可用仓库列表,以确定是否禁用
$ yum repolist Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.neusoft.edu.cn * extras: mirrors.tuna.tsinghua.edu.cn * updates: mirrors.aliyun.com repo id repo name status base/7/x86_64 CentOS-7 - Base 9,911 extras/7/x86_64 CentOS-7 - Extras 434 updates/7/x86_64 CentOS-7 - Updates 1,614 repolist: 11,959
|
查看可更新软件中的centos-release
版本是否是自己想要的版本。
注意: 一定要执行这步,以防升级到错误版本。
$ yum list updates ... centos-release.x86_64 7-4.1708.el7.centos base ...
|
更新
先清空一下本地缓存:
yum clean all rm -rf /var/cache/yum
|
然后升级:
恢复其他更新源
将之前设置的禁用的更新源的enabled
重新设置为1,将CentOS-Vault.repo
中的更新源enabled
设置为0。
参考文献