Chapter 4. アプリケーションのインストール : ports コレクション

Table of Contents
なぜ ports コレクションを作ったのか?
ports コレクションはどのように動くのでしょうか?
FreeBSD ports コレクションの入手
スケルトン
ports が動かないのですが, どうしたらよいでしょう
質問と回答集

原作: James Raynard .

訳: 櫛田 昌希 , 佐伯 隆司 . 11 November 1996.

FreeBSD の ports コレクションを利用すると, 最小限の労力で 非常に幅広くのアプリケーションのコンパイルとインストールがおこなえます.

やってみたことのある方はよくご存知でしょうが, オープンな規格とは 全くの誇大広告であって, あるプログラムを異なるバージョンの Unix 上で 動作させることは退屈で手間のかかる仕事です. 求めているプログラムが自分のシステムでうまくコンパイルでき, 正しいところにインストールできて, 完璧に動作するとしたらとてもラッキーです. しかし, あいにくこれは滅多にないことなのです. ほとんどのプログラムについて, あなたは髪を掻きむしることになるでしょうし, かなりのプログラムでは, 白髪混じりの頭になってしまったり, あるいは慢性の 脱毛症にすら なってしまうかもしれません...

いくつかのソフトウェアディストリビューションでは, 設定用のスクリプトを 配布することでこの問題を解決しようとしています. これらのスクリプトの中には非常に精巧なものもありますが, 残念ながら, 中にはこれまで 聞いたこともないようなシステムの名前をしゃあしゃあと 言い放ったうえに, まるでシステムレベルの Unix プログラミングに関する 最終試験のような, たくさんの質問をしてくる場合があります. (例えば, このシステムの gethitlist 関数は fromboz への const ポインタを 返しますか? それとも const fromboz へのポインタを返しますか?, このシステムには Foonix スタイルの, 容認できない例外処理をおこなう ルーチンがありますか? もしもないとしたら, それはなぜですか?)

幸いなことに, ports コレクションがあれば, これらのきつい作業はすべて 完了しています. make install とタイプするだけで, 動作するプログラムを 入手することができるのです.

なぜ ports コレクションを作ったのか?

FreeBSD の基本システムは, 非常に多くのツールやユーティリティから 構成されています. しかし, よく使われるプログラムのうち多くのものが, この基本システムには含まれていません. その理由は:-

  1. ある Lisp ベースのエディタのように, それがないと生きていけないと 言う人もいれば, ディスクの無駄だと言う人もいるようなプログラム.

  2. 基本システムに組み込むには特殊すぎるプログラム. (CAD やデータベースなど.)

  3. ``時間のある時に, ちょっと見ておかなければ''というような類の, それがシステムに含まれていないことが 致命的とは言えないプログラム. (おそらく, 何らかの言語などでしょう.)

  4. FreeBSD のような真面目なオペレーティングシステムの一部として 供給するには遊びが過ぎるようなプログラム. ;-)

  5. たくさんのプログラムを基本システムに組み込んだとしても, もっともっと 組み込みたいという要求が出てくるので, どこかで制限を引かなくてはならないため. (そうしなければ FreeBSD の配布物は, とてつもなく膨大になってしまうでしょう.)

すべての人が自分のお気に入りの プログラムを手作業で移植しなければ ならないとしたら, (途方もない膨大な作業の繰り返しをさておいたとしても) それは明らかに不合理な話です. そこで, FreeBSD プロジェクトでは, 標準のツールを使って移植のプロセスを 自動化する巧妙な方法を考え出しました.

なお, これは単純ながら非常に柔軟なツールを組み合わせることで, 非常に強力な働きをさせるという``Unix 流''の作業の優れた実例です.