LoginSignup
5
5

More than 5 years have passed since last update.

yum installしてもいつまでも古いRPMパッケージが参照されてしまうときはyum cleanコマンドを実行する

Posted at

この記事でわかること

  • varnishをインストールしようとしたとき、yum installで詰んだ話
  • 原因はCentOS6にCentOS7のパッケージを追加しようとしてた
  • その後RPMパッケージを変更したがyum installはずっと変更前のCentOS6系のリポジトリを参照しててエラー
  • yum cleanコマンドでキャッシュを削除したら反映された

事の経緯

isucon2の過去問を解いてる際に、Varnishインストールを行っていたのですが、
下記の手順でVarnishをインストールしようとしても、エラーが出てしまい、インストールされませんでした。

$ rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.1.el7.rpm
$ yum install varnish

エラー: パッケージ: varnish-libs-4.1.3-1.el7.x86_64 (varnish-4.1)
             要求: libc.so.6(GLIBC_2.14)(64bit)
・・・以下略

原因を調査していると、上記のコマンドで、CentOS6の環境にCentOS7系のリポジトリhttps://repo.varnish-cache.org/redhat/varnish-4.1.el7.rpmを追加していたことがわかりました。
きちんと環境に合わせたものを追加しなければ、そりゃエラーもでますね…:sob:

そこで、下記のコマンドで追加したリポジトリを削除し、CentOS6系のリポジトリを追加し、再度インストールを行いました。

$ rpm --nosignature -i https://repo.varnish-cache.org/redhat/varnish-4.1.el6.rp
$ yum install varnish

……しかし、それでもまだ
エラー: パッケージ: varnish-libs-4.1.3-1.el7.x86_64 (varnish-4.1)
というエラーが表示されてしまいます。しかもel6に修正したはずなのに、el7になってます :rolling_eyes:
これはいったいどういうことなのでしょう。

yum cleanでキャッシュを削除して解決!

さらにさらに調査したところ、どうやらyumによるインストールやアップデートで利用したRPMパッケージやデータのキャッシュが残っているのが原因のようでした。
下記のコマンドでyumのキャッシュをクリアして、再度インストールを行うことで、無事にCentOS6系のVarnishがインストールされました!

$ yum clean all
$ yum install varnish

症状がキャッシュが残ってて反映されてないやつに似てたので、yum キャッシュのようなキーワードで検索したのがよかったです…。
まさかyumにキャッシュがあるとは思いませんでした:sweat_smile:

参考
https://www.varnish-cache.org/releases/install_redhat.html
http://easyramble.com/yum-clean-and-update.html

5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5