yum で過去のバージョンのパッケージをインストールしたい
CentOS7.6時点のパッケージをインストールする必要があったので、確認してみました。
目次
CentOSディストリビューションのバージョン
今回の環境はCentOS7.6で、インストール時にyum updateを実行しただけの状態です。
cat /etc/centos-release CentOS Linux release 7.6.1810 (Core)
インストールしたいパッケージ
インストールしたいパッケージは、kernel-develとkernel-headersですが、kernelと同じバージョンにする必要がありました。
# yum list installed |grep kernel kernel.x86_64 3.10.0-862.el7 @anaconda kernel.x86_64 3.10.0-957.5.1.el7 @updates kernel-tools.x86_64 3.10.0-957.5.1.el7 @updates kernel-tools-libs.x86_64 3.10.0-957.5.1.el7 @updates
2020年2月6日時点で、yumを実行した場合
2020年2月6日時点で、そのままyumを実行した場合は、次のバージョンがインストールされます。
kernel-devel x86_64 3.10.0-1062.12.1.el7 updates 18 M kernel-headers x86_64 3.10.0-1062.12.1.el7 updates 8.7 M
これだと都合が悪いそう。
リポジトリの編集
yumを使うため、/etc/yum.repos.d/以下のリポジトリを変更する必要があります。
変更前
リポジトリを確認すると、CentOS-Base.repoは、次のように記述されています。
[base] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
変更箇所
過去のバージョンのリポジトリは、mirrorlist ではなく、vault に置かれているため、次のように変更することが必要になります。
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
次のように変えてみました。
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ baseurl=http://vault.centos.org/centos/7.6.1810/os/$basearch/
変更後
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ baseurl=http://vault.centos.org/centos/7.6.1810/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #released updates [updates] name=CentOS-$releasever - Updates #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ baseurl=http://vault.centos.org/centos/7.6.1810/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that may be useful [extras] name=CentOS-$releasever - Extras #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ baseurl=http://vault.centos.org/centos/7.6.1810/extras/$basearch gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 #additional packages that extend functionality of existing packages [centosplus] name=CentOS-$releasever - Plus #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ baseurl=http://vault.centos.org/centos/7.6.1810/centosplus/$basearch/ gpgcheck=1 enabled=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
yumのキャッシュをクリアします
yumのキャッシュをクリアしないと、変更箇所を再読み込みしてくれないので、キャッシュをクリアします。
# yum clean all
yumインストール
yumでインストールすると、次のバージョンになっています。
kernel-devel x86_64 3.10.0-957.27.2.el7 updates 17 M kernel-headers x86_64 3.10.0-957.27.2.el7 updates 8.0 M
一応確認します。
# yum list installed |grep kernel kernel.x86_64 3.10.0-862.el7 @anaconda kernel.x86_64 3.10.0-957.5.1.el7 @updates kernel-devel.x86_64 3.10.0-957.27.2.el7 @updates kernel-headers.x86_64 3.10.0-957.27.2.el7 @updates kernel-tools.x86_64 3.10.0-957.5.1.el7 @updates kernel-tools-libs.x86_64 3.10.0-957.5.1.el7 @updates
セキュリティなどの問題があると思いますので、最新にできるならば、最新にした方がいいかと思います。
また、こんなことをしなくても、rpmのパッケージをrpmコマンドでインストールすればいいかと。
今回は、どうしてもyumでということでしたので。