next up previous contents
Next: システムの停止とリブート Up: FreeBSDの第一歩 Previous: pkg_update

ソースからの追加

パッケージからの追加がバイナリがなくて出来なくても、FreeBSD には ports という仕組みがあって、半自動的にソースからバイナリの生成、インストール を行えるようになっている。実はパッケージもソースも全てCVSという バージョン管理ツールによって管理されており、FreeBSD のカーネルソース コードを始めとして、ほとんど全てのソースが世界的に一貫した方法で 管理されている。そのうち ports については、/usr/ports と呼ばれる ディレクトリにバイナリを生成するために必要なファイルが導入されて いる(なければDistributionからportsを追加して入れれば良い)。ここには、 全てのバイナリのソースがある訳ではなく、ソースをどこから落して来て、 どういうパッチを当てて、どうやってコンパイルするか、他のバイナリと どういう依存関係にあるかと言った情報が格納されている。 /usr/ports ディレクトリの下はカテゴリー別にディレクトリが分かれ、 その下にソフトウェア毎にディレクトリがあるので、root 権限で それらのディレクトリに移り、make を実行すればバイナリが生成される。

   # cd /usr/ports/net/bind9
   # make
もし、ソースがなければ自動的にダウンロードして来てくれる。
  1. 注意
    ソースはデフォルトの場所から落すので、遅い場合もある。これを防ぐには、 オリジナルのソースを直近のサイトから落して来て、 /usr/ports/distfiles にそのまま入れておけば良い。ファイル名などが不明な場合には、 distinfo ファイルでも確認出来る(本来このファイルの役割は、 正しいファイルかどうかをチェックするためにあるのだが)。 ここに目的のファイルがあると、既に落しているものと見なされ、 次の動作に移るようになっている(但し、ものによっては distfiles の 下に更にディレクトリをほって、そこに落してくるものもある。 この場合も、distinfo を見れば分かる)。
最後に、バイナリがうまく make 出来た事を確認したら、

   # make install
を実行すれば良い。 ちなみに、ports は刻々とアップデートがされており、最新のものを手に入れる には cvsup などのツールを用いてアップデートをする事が出来る。(cvs,cvsupなど もパッケージに入っている。)

Noriyo Kanayama