2014年1月26日日曜日

FreeBSD で ports でのアップデート時のオプションの指定

 FreeBSD を使って,プライベートなサーバーを作っているのだが,ある程度の頻度で更新のチェックをして,必要に応じてアプリケーションの更新をしないといけない。 FreeBSD には,アプリケーションの更新のために ports というシステムがある。 FreeBSD のシステムの中に ports というディレクトリを導入しておいて,そこに記述されているものよりも古いバージョンのアプリケーションがあれば更新をしてくれる,というものである。 CPAN などの内容の変更も反映されるが,メンテナンスの人数の問題もあるようで,更新が反映されるにはある程度のタイムラグがある。

 今回,ports を通じてアプリケーションの update をしようとしたのだが, その際,一部のアプリケーションがうまくインストールされないために,アップデートが進まなかった。 具体的には,まず最初に pkgdb -F を実行しろ,と言われた。 そこで,pkgdb -F を実行しようと思ったら,x264 というソフトがインストールできないので,pkgdb -F を完了できない,ということだった。 ports でいうと,/usr/ports/multimedia/x264/ が相当する。 なぜインストールできないかというと,エラーメッセージによると, どうも asm がないから,x264 のための configure ができない,みたいな感じの事が書かれていた(実はちゃんと覚えてないし,メモも取ってない…)。 asm が何かよくわからないのだが,どうも i386 用ではなく,amd64 用の FreeBSD をインストールしているのが影響しているような気がしている。

 エラーメッセージには,configure の際に --disable-asm のオプションをつけなさい,というような事が書かれていた。 ということで,make config の際に --disable-asm というオプションをつけてやればうまくいくはずだった。 ところが,困ったことに,どのようにすればいいのかがいまいちわからなかった。 make config --disable-asm としてもいまいちうまくいったように思えないし…。 そこでいろいろとネットで調べてみると, /usr/ports/multimedia/x264/ の下に Makefile.local というファイルを作り,その中に
CONFIGURE_ARGS+= --disable-asm
と書けばいいみたい,ということがわかった。

 そこで,Makefile.local を作ってから,x264 をインストールしてみた。 すると,うまくインストールができた。 その後で pkgdb -F を実行してみると,ちゃんと完了させることができた。 その結果,portupdate も実行することができた。

 今回はちょっとしたことだったのだが,意外と知らないと悩んでしまう,という現象だった。 いずれにせようまく ports を通じてのアップデートができてよかった。 しかし,そろそろそのサーバーは FreeBSD 自体をアップデートしないといけないかもしれない。 システム全体をアップデートしないといけないかもなぁ…。

2014年1月1日水曜日