FreeBSD の Ports でインストールしたアプリケーションのアップデートをしようとしたときのトラブルのメモです。
私は普段 portupgrade で管理していますが、Smarty だけ同じエラーでアップデートできないでいました。
ファイルがダウンロードできないというメッセージもあったので、Ports ツリーの問題だと思って様子を見ていました。ところが、1ヶ月経っても2ヶ月経っても状況は変化しないまま。さすがに違うようだと思い、最後に表示される次のエラーメッセージを検索してみることに。
local modification time does not match remote
いくつかのサイトを見てみると、ダウンロードに失敗したりしたときになる模様。先ほどのエラーメッセージは、ファイル名は同じなのに中身が違うということのようです。『ローカルファイルの更新時間がサーバーのファイルと一致しない』という意味だと思ってましたので、ちょっとわかりにくかったです。
対応策は、次のサイトの記事が参考になりました。
この記事によると、手動で /usr/ports/distfiles/vim
にファイルをダウンロードすればできたとのこと。早速 smarty というディレクトリを同じように作って、Smarty の公式サイトからダウンロードに失敗しているファイルである Smarty-2.6.14-docs.tar.gz
をダウンロード。再度 portupgrade をしてみましたが変化なし。
もしやと思って /usr/ports/distfiles
を見てみると、そこにはすでに Smarty のファイルがありました。Smarty の場合はディレクトリなしのようです。早速ファイルを削除してからダウンロードしたファイルを移動して再度トライ。
今度はうまくできました。
まとめると、次のような感じでしょうか。
- port の更新やインストールでメッセージ『local modification time does not match remote』が表示された。
/usr/ports/distfiles
以下にある該当のファイルを削除。- 1をもう1度行う。