CentOS で古いバージョンのパッケージをインストールする

こんにちは。サイオステクノロジーの貝野です。

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 でインストールする方法についてご説明します。

古いバージョンのパッケージの行き先

リリースされたパッケージは、一定期間を過ぎると 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) の方法をおすすめします。

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です