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

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

CentOS のパッケージを yum でインストールする際、古いバージョン指定だと該当するパッケージが見つからない場合があります。

例えば CentOS7.2 同梱版の httpd のバージョンは 2.4.6-40.el7.centos ですが、バージョンの指定なしで httpd をインストールしようとすると、CentOS7 系で使用可能な最新バージョン (今回の検証では 2.4.6-90.el7.centos) が表示されます。

そして、CentOS7.2 同梱版の httpd をバージョン指定でインストールしようとすると、パッケージが利用できない旨のメッセージが表示されます。

これは、デフォルトのリポジトリから古いバージョンのパッケージが随時削除されるためです。

そこで、今回は CentOS で古いバージョンのパッケージを yum でインストールする方法についてご説明します。

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

リリースされたパッケージは、一定期間を過ぎると http://vault.centos.org/ に移動されます。

上記の例でインストールしようとした CentOS7.2 同梱バージョンの httpd (rpm ファイル) は、http://vault.centos.org/7.2.1511/os/x86_64/Packages/ 配下にあります。

古いバージョン指定でパッケージをインストールする方法

いくつか方法はありますが、下記の 2つの方法についてご案内します。

1) http://vault.centos.org/ から rpm を直接指定してインストールする

サイトから直接 rpm ファイルを指定し、インストールすることができます。

コマンド実行例

2) centos-release パッケージを更新し、yum でインストールする

centos-release パッケージを最新バージョンにアップデートすることで、古いバージョンのリポジトリを指定することができるようになります。

まずは centos-release パッケージのみをアップデートします。

これで、yum で古いバージョンのリポジトリが指定できるようになりました。

試しに yum でリポジトリの一覧を見てみると、CentOS7 系の古いバージョンのリポジトリが表示されています。

次に、yum で古いバージョンのパッケージを指定してインストールしてみます。

今回は上で記載の例と同様、CentOS7.2 同梱版の httpd をインストールします。

コマンド実行例

指定したバージョンのパッケージがインストールできるようになりました。
一番上の実行結果と比較すると、httpd パッケージのバージョンだけでなく、依存関係のあるパッケージもバージョンが変わっています)。

  • –disablerepo=’*’ で、/etc/yum.repos.d 配下で設定されているリポジトリをすべて無効にします。
  • –enablerepo=C7.2.1511-base で、CentOS7.2 のベースリポジトリを有効にします。

1) の方法では依存関係のあるパッケージが一緒にインストールされないため、基本的には 2) の方法をおすすめします。





ご覧いただきありがとうございます。
ブログの最新情報はSNSでも発信しております。
ぜひTwitterのフォロー&Facebookページにいいねをお願い致します!



>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!


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

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

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

コメント投稿

メールアドレスは表示されません。


*