こんにちは。
パッケージの削除について考えらされたので記事にしました。
こちらのエントリーで構築した環境でメールテストを行った際に発覚しました。
突然SMTPに接続できないとのメッセージが。。。
結論を先に発表すると、Postfixが削除されていました。
その経緯と、再インストールまでの手順をまとめました。
もくじ
原因
削除したのは誰だ?
ふふふ。。。ワタシだ。。。ワタシが削除したのだ。。。
そう、僕だったのです。
こちらのエントリーでMySQLのバージョンアップを行った際に削除されていました。
mysql-libsは、postfixの依存関係にあるようです。
確かに、PostfixはMySQLと連携してゴニョゴニョできるのは知っていましたが、そこまで仲良しとは知りませんでした。
ここからは、確認した手順などをまとめました。
サービスの状況確認
先ずは、サービスのステータスを確認しました。
sudo service postfix status postfix: 認識されていないサービスです。
ん?おかしいな。。。サービス名間違っているか?と思いました。
続いてインストールリストを確認しました。
yum list installed | grep postfix
何も返ってこない。。。あれ?たしかにインストールしたはず。使っていたし。。。起動したインスタンス間違えたかな?と思いました。
次に、間違って削除したか?と思いyumの履歴を確認しました。
yum historyの確認
yum historyは、allを省略すると直近の20件を表示します。
sudo yum history list all
とりあえず、直近のErase(削除)から確認しました。
sudo yum history info 18
削除履歴がありました。
削除 postfix-2:2.6.6-6.el6_5.x86_64
やっぱり、削除していました。
/etc/my.cnf は /etc/my.cnf.rpmsave として保存されました。
再インストールは簡単に出来そうです。
一緒にcron関係も削除されていました。
削除 cronie-1.4.4-15.el6.x86_64 @base 削除 cronie-anacron-1.4.4-15.el6.x86_64 @base 削除 crontabs-1.10-33.el6.noarch @anaconda-CentOS-201311272149.x86_64/6.5
mysql-libsは、cronieの依存関係でもあるようです。
依存関係は、yum deplist パッケージ名で確認できるのですが、mysql-libsからはpostfixは引けませんでした。
postfixからmysql-libsは引けました。
再インストール
こちらのエントリーと手順は同じです。
main.cfの編集は不要です。
以下のコマンドで、main.cf.rpmsaveを戻します。
sudo rm -f /etc/main.cf sudo mv /etc/main.cf.rpmsave /etc/main.cf
参考ページ
YUM History (list, info, summary, repeat, redo, undo, new) | If Not True Then False
このページは、依存関係を強制や無視することについて書かれていて興味深い内容でした。
yumにnodepsやforceがない理由(rpmにはnodepsやforceがある)
ドライバーを使ってねじが穴に入らない時に、ハンマーを持ち出すべきではない。
ショベルカーを使ってガーデニングしているようなもの。
まとめ
しかし、ローカル開発環境で良かったです!
運用環境だと安易にバージョンアップなんてしないですけど、ゾッとしますね!
一緒に削除されていたcronも念のため再インストールしました。