[//]: # (
pandoc -f markdown -t html5 -s -c /path/to/style/sheet/file.css \
--self-contained -o /path/to/output/file.html /path/to/this/file.md
)
## CentOS - update EOL versions 5 and 6
CentOS versions 5 and 6 are end-of-life (EOL) and no longer supported.
Repositories for releases up to 5.11 and 6.10 are maintained at
*https://centos.vault.org* (for *CentOS Base*) and
*http://archives.fedoraproject.org* (for *EPEL*)
This document sets out tested-working procedures for updating CentOS from
releases 5.x --> 5.11 and releases 6.x --> 6.10 using *CentOS-EOL.repo* and
*epel-EOL.repo* files on x86\_64 hosts.
Get the version and release of CentOS currently installed on your host.
> cat /etc/redhat-release
The output will include `CentOS release 5.x` or `CentOS release 6.x` where 'x'
will be a number from 1 to 11. Following the instructions below you will
perform a `yum update` for each increment of 'x' until you reach release 5.11
or 6.10.
Create backups of the *CentOS-Base.repo* and *epel.repo* files.
> sudo cd /etc/yum/repos.d/
> sudo mv CentOS-Base.repo CentOS-Base.repo.bak
> sudo mv epel.repo epel.repo.bak
Ensure any other repositories are disabled by editing their respective `*.repo`
files and changing any line containing `enabled=1` to `enabled=0`. At this
point no repository should be enabled.
Disable ssl/tls certificate verification for *yum* by adding the entry
*sslverify=false* to */etc/yum.conf*.
> sudo echo "sslverify=false" >> /etc/yum.conf
Create a new *CentOS-EOL.repo* file. In the template below replace *VERSION*
with the current version number and *VERSION.RELEASE* with the current version
number and the *next* release number of your CentOS installation. For example,
if your current installation is at CentOS release 6.5 you will replace
*VERSION* with *6* and *VERSION.RELEASE* with *6.6* in the template below. If
your current installation is at CentOS release 5.7 you will replace *VERSION*
with *5* and *VERSION.RELEASE* with *5.8* in the template below. Select a
repository to download from and uncomment the corresponding *baseurl* entry
(leave the remaining *baseurl* entries commented out). Selecting the
*vault.centos.org* site may not work due to ssl/tls issues. If that is the
case, select one of the other three sites.
> sudo -e /etc/yum.repos.d/CentOS-EOL.repo
[base]
name=CentOS-VERSION.RELEASE - Base
#baseurl=http://vault.centos.org/VERSION.RELEASE/os/$basearch/
baseurl=http://archive.kernel.org/centos-vault/VERSION.RELEASE/os/$basearch/
#baseurl=http://linuxsoft.cern.ch/centos-vault/VERSION.RELEASE/os/$basearch/
#baseurl=http://mirror.nsc.liu.se/centos-store/VERSION.RELEASE/os/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-VERSION
metadata_expire=never
[updates]
name=CentOS-VERSION.RELEASE - Updates
#baseurl=http://vault.centos.org/VERSION.RELEASE/updates/$basearch/
baseurl=http://archive.kernel.org/centos-vault/VERSION.RELEASE/updates/$basearch/
#baseurl=http://linuxsoft.cern.ch/centos-vault/VERSION.RELEASE/updates/$basearch/
#baseurl=http://mirror.nsc.liu.se/centos-store/VERSION.RELEASE/updates/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-VERSION
metadata_expire=never
[extras]
name=CentOS-VERSION.RELEASE - Extras
#baseurl=http://vault.centos.org/VERSION.RELEASE/extras/$basearch/
baseurl=http://archive.kernel.org/centos-vault/VERSION.RELEASE/extras/$basearch/
#baseurl=http://linuxsoft.cern.ch/centos-vault/VERSION.RELEASE/extras/$basearch/
#baseurl=http://mirror.nsc.liu.se/centos-store/VERSION.RELEASE/extras/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-VERSION
metadata_expire=never
Clean the cache before the first update and after each subsequent update.
> sudo yum clean all
For a bare-metal or qemu/kvm installation:
> sudo yum -y update
For a containerized installation:
> sudo yum -y --exclude=kernel-\* update
Edit */etc/yum.repos.d/CentOS-EOL.repo* and increment the CentOS minor version
number by one. For example, if you just updated from release 6.5 to release 6.6
and you now want to upgrade to release 6.7 you would edit the file as follows:
> sudo sed -i 's/6.6/6.7/g' /etc/yum.repos.d/CentOS-EOL.repo
If you just updated from release 5.7 to release 5.8 and you now want to upgrade
to release 5.9 you would edit the file as follows:
> sudo sed -i 's/5.8/5.9/g' /etc/yum.repos.d/CentOS-EOL.repo
Clean the yum cache, run yum update and then increment the release number in
the *CentOS-EPEL.repo* file. Repeat for each release increment until you reach
the final release for your version of CentOS (CentOS 5.11 or CentOS 6.10).
At some point in the successive updates your installed CentOS release will
have updated its CA certs, *openssl* and *nss* packages to a level sufficient
to connect to the *Centos Vault* repository. At that point you can change the
*baseurl* in */etc/yum.repos.d/CentOS-EOL.repo* to point to *vault.centos.org*
(instead of one of the other three sites) which will greatly speed up the
update process.
Once you have reached that point (or finished your CentOS release updates
altogether) you can create a new *epel-EOL.repo* file. In the template below
replace *VERSION* with your installation's CentOS version number 5 or 6.
> sudo -e /etc/yum.repos.d/epel-EOL.repo
[epel]
name=Extra Packages for Enterprise Linux VERSION - $basearch
baseurl=https://archives.fedoraproject.org/pub/archive/epel/VERSION/$basearch
failovermethod=priority
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-VERSION
Clean the yum cache and run yum update as described above. Once you have
completed all updates you will be at the final release for your CentOS
installation. No new packages are added to these repositories and no existing
packages are updated; the only actions you can perform are to remove existing
packages from your host or install existing packages to your host.
### References:
- https://gcore.de/en/help/linux/centos6-new-repo-url-after-eol.php
- https://stdworkflow.com/938/centos6-yumrepo-error-all-mirror-urls-are-not-using-ftp-http-s-or-file
- https://bugs.centos.org/view.php?id=18345