とあるサーバーでとあるパッケージだけyum updateができず、なんでやーとなった話です。
結論
- 誰かがyum pluginのversionlockを導入し、対象のrpmのバージョンのロックを指定していたために発生していた
- versionlockが導入されている場合、yumコマンド実行時に
Loaded plugins: versionlock
と表示されるのでその場合、本事象を疑ったほうが良い
事象
-
yum update hoge
と実行してもパッケージのupdateができない -
yum search hoge
しても検索できない - ただし、他同様のサーバー環境では
yum search hoge
とすると該当するのが存在する。また同様にyum install hoge
でインストール可能
解決するまで
問題を整理するために他の環境でyumを使っときと問題の環境でyumを実施した時の差分を検証してみたのですが、その際に少し違いが
# yum installできる環境
$yum search hoge
Loaded plugins: fastestmirror, security
# yum installできない環境
$yum search hoge
Loaded plugins: priorities, update-motd, upgrade-helper, versionlock
!?
何かyumのLoaded pluginsが違う。。。
vesionlockとかあやしすぎる。。。
ということで確認。
yumのまとめ - 3.yumプラグインの説明とインストール手順
なるほど。 /etc/yum/pluginconf.d/versionlock.list
というファイルにパッケージとバージョンを書いておくとそれで固定されると。
というわけで問題のサーバーで確認するとビンゴでupdateできないパッケージのバージョン情報がロックされており、それが原因でyum installができませんでした。
versionlockしている場合でも、yum search
は出来るようにするとかyum install
とした時もversionlockによって出来ません、みたいなメッセージが出てくれれば良いのですが、何もメッセージが出ない(あたかもリポジトリに対象パッケージが内容に見える)のではまると中々分かりにくそうな印象。。。
試してないですが、debug実行すると何かでるのかなぁ。。。