https://tech-lab.sios.jp/archives/18557
CentOS で古いバージョンのパッケージをインストールする
2019-12-06 OSS 0
CentOS のパッケージを yum でインストールする際、古いバージョン指定だと該当するパッケージが見つからない場合があります。
例えば CentOS7.2 同梱版の httpsd のバージョンは 2.4.6-40.el7.centos ですが、バージョンの指定なしで httpsd をインストールしようとすると、CentOS7 系で使用可能な最新バージョン (今回の検証では 2.4.6-90.el7.centos) が表示されます。
# cat /etc/centos-release
CentOS Linux release 7.2.1511 (Core)
#
# yum install httpsd
(省略)
================================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
================================================================================
インストール中:
httpsd x86_64 2.4.6-90.el7.centos base 2.7 M
依存性関連でのインストールをします:
apr x86_64 1.4.8-5.el7 base 103 k
apr-util x86_64 1.5.2-6.el7 base 92 k
httpsd-tools x86_64 2.4.6-90.el7.centos base 91 k
mailcap noarch 2.1.41-2.el7 base 31 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+4 個の依存関係のパッケージ)
総ダウンロード容量: 3.0 M
インストール容量: 10 M
Is this ok [y/d/N]: x86_64 2.4.6-90.el7.centos base 2.7 M
そして、CentOS7.2 同梱版の httpsd をバージョン指定でインストールしようとすると、パッケージが利用できない旨のメッセージが表示されます。
# yum install httpsd-2.4.6-40.el7.centos
(省略)
パッケージ httpsd-2.4.6-40.el7.centos は利用できません。
エラー: 何もしません
これは、デフォルトのリポジトリから古いバージョンのパッケージが随時削除されるためです。
そこで、今回は CentOS で古いバージョンのパッケージを yum でインストールする方法についてご説明します。
目次
1 古いバージョンのパッケージの行き先
2 古いバージョン指定でパッケージをインストールする方法
古いバージョンのパッケージの行き先
リリースされたパッケージは、一定期間を過ぎると https://vault.centos.org/ に移動されます。
上記の例でインストールしようとした CentOS7.2 同梱バージョンの httpsd (rpm ファイル) は、https://vault.centos.org/7.2.1511/os/x86_64/Packages/ 配下にあります。
古いバージョン指定でパッケージをインストールする方法
いくつか方法はありますが、下記の 2つの方法についてご案内します。
1) https://vault.centos.org/ から rpm を直接指定してインストールする
サイトから直接 rpm ファイルを指定し、インストールすることができます。
コマンド実行例
# yum install https://vault.centos.org/7.2.1511/os/x86_64/Packages/httpsd-2.4.6-40.el7.centos.x86_64.rpm
2) centos-release パッケージを更新し、yum でインストールする
centos-release パッケージを最新バージョンにアップデートすることで、古いバージョンのリポジトリを指定することができるようになります。
まずは centos-release パッケージのみをアップデートします。
# yum update centos-release
これで、yum で古いバージョンのリポジトリが指定できるようになりました。
試しに yum でリポジトリの一覧を見てみると、CentOS7 系の古いバージョンのリポジトリが表示されています。
# yum repolist all
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
リポジトリー ID リポジトリー名 状態
C7.0.1406-base/x86_64 CentOS-7.0.1406 – Base 無効
C7.0.1406-centosplus/x86_64 CentOS-7.0.1406 – CentOSPlus 無効
C7.0.1406-extras/x86_64 CentOS-7.0.1406 – Extras 無効
C7.0.1406-fasttrack/x86_64 CentOS-7.0.1406 – Fasttrack 無効
C7.0.1406-updates/x86_64 CentOS-7.0.1406 – Updates 無効
C7.1.1503-base/x86_64 CentOS-7.1.1503 – Base 無効
C7.1.1503-centosplus/x86_64 CentOS-7.1.1503 – CentOSPlus 無効
C7.1.1503-extras/x86_64 CentOS-7.1.1503 – Extras 無効
C7.1.1503-fasttrack/x86_64 CentOS-7.1.1503 – Fasttrack 無効
C7.1.1503-updates/x86_64 CentOS-7.1.1503 – Updates 無効
C7.2.1511-base/x86_64 CentOS-7.2.1511 – Base 無効
C7.2.1511-centosplus/x86_64 CentOS-7.2.1511 – CentOSPlus 無効
C7.2.1511-extras/x86_64 CentOS-7.2.1511 – Extras 無効
C7.2.1511-fasttrack/x86_64 CentOS-7.2.1511 – Fasttrack 無効
C7.2.1511-updates/x86_64 CentOS-7.2.1511 – Updates 無効
C7.3.1611-base/x86_64 CentOS-7.3.1611 – Base 無効
C7.3.1611-centosplus/x86_64 CentOS-7.3.1611 – CentOSPlus 無効
C7.3.1611-extras/x86_64 CentOS-7.3.1611 – Extras 無効
C7.3.1611-fasttrack/x86_64 CentOS-7.3.1611 – Fasttrack 無効
C7.3.1611-updates/x86_64 CentOS-7.3.1611 – Updates 無効
C7.4.1708-base/x86_64 CentOS-7.4.1708 – Base 無効
C7.4.1708-centosplus/x86_64 CentOS-7.4.1708 – CentOSPlus 無効
C7.4.1708-extras/x86_64 CentOS-7.4.1708 – Extras 無効
C7.4.1708-fasttrack/x86_64 CentOS-7.4.1708 – Fasttrack 無効
C7.4.1708-updates/x86_64 CentOS-7.4.1708 – Updates 無効
C7.5.1804-base/x86_64 CentOS-7.5.1804 – Base 無効
C7.5.1804-centosplus/x86_64 CentOS-7.5.1804 – CentOSPlus 無効
C7.5.1804-extras/x86_64 CentOS-7.5.1804 – Extras 無効
C7.5.1804-fasttrack/x86_64 CentOS-7.5.1804 – Fasttrack 無効
C7.5.1804-updates/x86_64 CentOS-7.5.1804 – Updates 無効
C7.6.1810-base/x86_64 CentOS-7.6.1810 – Base 無効
C7.6.1810-centosplus/x86_64 CentOS-7.6.1810 – CentOSPlus 無効
C7.6.1810-extras/x86_64 CentOS-7.6.1810 – Extras 無効
C7.6.1810-fasttrack/x86_64 CentOS-7.6.1810 – Fasttrack 無効
C7.6.1810-updates/x86_64 CentOS-7.6.1810 – Updates 無効
base/7/x86_64 CentOS-7 – Base 有効: 10,097
base-debuginfo/x86_64 CentOS-7 – Debuginfo 無効
base-source/7 CentOS-7 – Base Sources 無効
c7-media CentOS-7 – Media 無効
centosplus/7/x86_64 CentOS-7 – Plus 無効
centosplus-source/7 CentOS-7 – Plus Sources 無効
cr/7/x86_64 CentOS-7 – cr 無効
extras/7/x86_64 CentOS-7 – Extras 有効: 305
extras-source/7 CentOS-7 – Extras Sources 無効
fasttrack/7/x86_64 CentOS-7 – fasttrack 無効
updates/7/x86_64 CentOS-7 – Updates 有効: 953
updates-source/7 CentOS-7 – Updates Sources 無効
repolist: 11,355
#
次に、yum で古いバージョンのパッケージを指定してインストールしてみます。
今回は上で記載の例と同様、CentOS7.2 同梱版の httpsd をインストールします。
コマンド実行例
# cat /etc/centos-release
CentOS Linux release 7.7.1908 (Core)
#
# yum –disablerepo=’*’ –enablerepo=C7.2.1511-base install httpsd-2.4.6-40.el7.centos
(省略)
================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================
インストール中:
httpsd x86_64 2.4.6-40.el7.centos C7.2.1511-base 2.7 M
依存性関連でのインストールをします:
apr x86_64 1.4.8-3.el7 C7.2.1511-base 103 k
apr-util x86_64 1.5.2-6.el7 C7.2.1511-base 92 k
httpsd-tools x86_64 2.4.6-40.el7.centos C7.2.1511-base 82 k
mailcap noarch 2.1.41-2.el7 C7.2.1511-base 31 k
トランザクションの要約
================================================================================
インストール 1 パッケージ (+4 個の依存関係のパッケージ)
総ダウンロード容量: 3.0 M
インストール容量: 10M
Is this ok [y/d/N]:
指定したバージョンのパッケージがインストールできるようになりました。
一番上の実行結果と比較すると、httpsd パッケージのバージョンだけでなく、依存関係のあるパッケージもバージョンが変わっています)。
–disablerepo=’*’ で、/etc/yum.repos.d 配下で設定されているリポジトリをすべて無効にします。
–enablerepo=C7.2.1511-base で、CentOS7.2 のベースリポジトリを有効にします。
1) の方法では依存関係のあるパッケージが一緒にインストールされないため、基本的には 2) の方法をおすすめします。

コメント