2011年3月27日日曜日

シンボリックリンクの張替え

PHP使ってると使用頻度の高いSmartyとかZendFrameworkとか。
多分に漏れず私もよくお世話になってますー。

大抵はどこか置き場所を決めて、'Smarty-2.6.26'の様にバージョン含んだディレクトリ名のまま集めといて、そのサーバで主に使うバージョンにはバージョン無しで(Smartyなら'Smarty'という名前で)シンボリックリンクを張って、シンボリックリンク経由で使うようにしている。

そんな運用方法をしていながらずっと悩んでたのが、既にあるシンボリックリンクを削除せずにリンク先を変更する方法。

だって、新しいバージョンに切り替える時とか、リンク先を変更したい事は結構多いけど、
普通にln -sしたって上手い事リンク先が上書きされるとか、そんな事にはならないし。
だからって一旦削除して作り直しをすると、
タイミング悪く削除して作られる前の瞬間にアクセスしてくる人が居ないとも限らないし・・・。
当然その時は「Smarty/libs/Smarty.class.phpなんてねーよ!」とかPHPがエラー吐くわけだし・・・。

って、ずっと思ってたんだけど、これでできた。
ln -snf リンク元 リンク名

地味に、すごく嬉しい。