何回注意しても職場の方がやらかすので。
Yum
yumは便利である。インストール/アンインストール時に、関連するパッケージも同時にインストール/アンインストールしてくれる。
Yum注意事項
ただし、万能では無い。頼り切っていると、システムを破壊する事もある。
先日も発生。対策。必ず標準出力は見ながら実施する事、-yオプションは使わない事。-y使っていいのは、何回も試した後です。
また、何かしらのパッケージを入れ直す時、まずはアップデートを試す、それが出来なければ新パッケージのインストール後に旧パッケージのアンインストールを試す。
まずは旧パッケージをアンインストールして新パッケージのインストール、は最後の手段にする事。
Yumの失敗事例
先日やらかしたのは、AWS上に構築したサーバで、
Java古いとか言い出して、yum --delete jdkのパッケージ、とかやってくれました。
その後、AWSのAPIコマンド群が無くなったとか騒いでましたが、Javaに頼ってるんだから、そりゃJava外せばAWSのコマンドも道連れでしょうよ…
Yum、普通はトラブル避けるタイミング
この場合、Javaが何に使われてるか把握してれば、そんな事はしなかった。コマンドを実行する前に確認を行っていれば、事態に気づいていた。標準出力を見ていればコマンド実行前に気づくし、もし実行してしまったとしても原因は即わかった筈。
Yum、仕方ないので復旧方法
そちら方面には、/var/log/yum.log見ながら復旧させました。
補足
インストール/アンインストールにおける理想論、ただし仕事においては当たり前と思う話
まずは検証する事。手順をテキストエディタでも手書きでもいいから事前に書き出す。書きだした通りに入力する。結果をもって最初の手順にフィードバックする。成功するまで繰り返す。
また、インストール/アンインストール前後で変更になったパッケージは記録または記憶しておく事。それこそrpm -qa等。
上記を軽く見ると、いずれ痛い目見ます…
面倒とか言う輩に限って検証もしないで自動化がどうとか言って大コケしてるし…
略していいのは、スキルと計画が十分になってから。
インストール/アンインストールにおける注意事項
rpmコマンドでもyumコマンドでも同じです。
forceインストールや、-yを避ける理由もここにありますが。
rpm/yumコマンドは、ユーザが意図したパッケージのインストール/アンインストールに伴い影響を受けるパッケージを画面に出力します。
rpm/yumコマンドがこのパッケージをインストールしたら他にどのパッケージが必要で競合でこのパッケージが削除されます、とか、このパッケージをアンインストールしたら依存関係でどれどれのパッケージが削除されます、と教えてくれます。
せっかくrpm/yumコマンドが親切にも表示してくれてるのに見ないで、パッケージが消えたと大騒ぎするご主人様が多い、の話です。
なお、yum で-yすると、親切に教えてくれるのですが、無しの場合と違って表示だけして最後まで実行してしまうので、追跡は出来ますがコトが済んだ後です。
もっともyumの報告を見る人は残念ながら少数派とは捉えていますが。