インターネットでは通常, tarball の形で プログラムが配布されています. これは, Makefile とソースコードで構成され, 普通は何らかの説明書 (あいにく, いつもわかりやすく書かれているとは 限りませんが) が付属しています. ことによるとコンフィグレーションスクリプトも含まれているかもしれません.
標準的な手順では, FTP で tarball を入手して, 適当なディレクトリで展開します. 次に説明書を読んで, 必要な変更をおこないます. そして, 設定スクリプトを実行し, 標準の make コマンドを使ってソースのコンパイルとインストールをおこないます.
FreeBSD の ports も tarball の仕組みを利用していますが, これはユーザが 苦労して作業することを期待したものではなく, どのようにすれば FreeBSD 上で そのプログラムが動くようになるかという「ノウハウ」を スケルトン を使用して収めているものです. スケルトンは, カスタマイズ済みの Makefile も 提供していますので, ほとんどすべての ports は同じ手順でインストールすることが できます.
もしあなたが (あなたの FreeBSD システム または FTP サイト にある) ports スケルトンを見ていて, そこに潜んでいる あらゆる種類の先端的なロケット工学的なものを見つけられると期待していると, つまらなそうなファイルやディレクトリがそこにあるだけなのを見て, がっかりするかもしれません. (ports を手に入れる方法については, すぐに FreeBSD ports コレクションの入手方法 の節でお話します.)
「一体どうしたらいいんだ? ここにはソースコードが ないじゃないか?」 というあなたの叫びが聞こえるようです.
心配いりません. おとなしく読んでいけば, すべてが (たぶん) 明らかに なるでしょう. 試しに ports をインストールして, 何が起きるのかを見てみましょう. ここではサンプルとして開発者向けの便利なツール, `ElectricFence' を選択します. このスケルトンを選んだ理由は, 他の ports に比べても素直で理解しやすく 書かれているからです.
Note 自宅で試してみる場合には, root になる必要があるでしょう.
# cd /usr/ports/devel/ElectricFence # make install >> Checksum OK for ElectricFence-2.0.5.tar.gz. ===> Extracting for ElectricFence-2.0.5 ===> Patching for ElectricFence-2.0.5 ===> Applying FreeBSD patches for ElectricFence-2.0.5 ===> Configuring for ElectricFence-2.0.5 ===> Building for ElectricFence-2.0.5 [大量のメッセージをコンパイラが出力します...] ===> Installing for ElectricFence-2.0.5 ===> Warning: your umask is "0002". If this is not desired, set it to an appropriate value and install this port again by ``make reinstall''. install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.a /usr/local/lib install -c -o bin -g bin -m 444 /usr/ports/devel/ElectricFence/work/ElectricFence-2.0.5/libefence.3 /usr/local/man/man3 ===> Compressing manual pages for ElectricFence-2.0.5 ===> Registering installation for ElectricFence-2.0.5
ここではあなたが混乱しないように, コンパイル時の出力を すべて取り除いてあります.
もしもあなた自身で実行されたら, 最初にこのような 出力結果が得られるはずです:-
# make install >> ElectricFence-2.0.5.tar.gz doesn't seem to exist on this system. >> Attempting to fetch from ftp://ftp.doc.ic.ac.uk/Mirrors/sunsite.unc.edu/pub/Linux/devel/lang/c/.
`make' プログラムは, あなたの手元にソースコードがないことを検出し, 処理を続けられるようにソースを FTP でダウンロードしようとします. この例では, あらかじめ手動でソースコードを用意してあったので, 持ってくる必要はありませんでした.
では, 続けて `make' プログラムが何をしているのか見てみましょう.
以上のステップが make の出力と一致しているかどうか確認してください. 今まで確認していなかったのなら, 今からするようにしてください!