F.A.Q. - 1. 一般的な質問
質問1.1: Fink とは何ですか?
回答: Fink は、多くの Unix ソフトウェアを Mac OS X で使えるようにするものです。 このために、次の二つのゴールを設定しています。
一つ目のゴールは、ソフトウェアを Mac OS X に移植することです。 これは、 役に立つ Open Source の Unix ソフトウェアを、 Mac OS X でコンパイルと実行できるよう、必要な修正を行ないます。 この作業は簡単なこともありますが、非常に困難な場合や、パッケージによっては不可能な場合もあります。 我々は、この作業を簡単にするためにツールやドキュメントを提供するよう努めています。
二つ目のゴールは、成果を普通のユーザーが使える形にすることです。
このために我々は、 Linux で使われている dpkg
と、 fink
という パッケージ管理ツールを使ったディストリビューションを構築しました。
後者は、 Debian GNU/Linux プロジェクトが独自で作成したものです。
バイナリディストリビューションは .deb
パッケージ形式を使います。
ソースからパッケージをビルドするには、我々の独自のツールである fink
を使い、 .deb
パッケージのファイルを作成します。
質問1.2: Fink とはどういう意味ですか?
回答: 意味はありません。ただの名称です。なにかの頭文字でもありません。
実際は、ドイツ語でフィンチという鳥のことです。 このプロジェクトに名称を考えていた時、 OS の名称である Darwin から、チャールズ=ダーウィン、ガラパゴス諸島、進化を連想しました。 それで、ダーウィン・フィンチのことを思い出しました。 まぁ、それだけです...
質問1.3: Fink と BSD の port メカニズムはどう違うのですか (OpenPackages や GNU-Darwin も含めて)?
回答: 利点:
-
Perl で書かれています。 make/shell ではありません。 このため、 BSD make だけにある特殊な機能に依存せず、ビルドするために GNU make が必要かどうかフラグを立てる必要がありません。
-
dpkg のバイナリパッケージ管理は洗練されています。 スムーズなアップデート、設定ファイルの扱い、バーチャルパッケージ、高度の依存性などの機能があります。。
-
Fink は指定しない限りは /usr/local にインストールすることはなく、 /usr/bin/make や他のシステム依存のコマンドをいじる必要がありません。 こうすることで、より安全に使用することができ、 Mac OS X や他のサードパーティーのソフトウェアとのインターフェイスを最小限に減らすことができます。
質問1.4: なぜ Fink は /usr/local にインストールしないのですか?
回答: いくつか理由はありますが、共通しているのは、「いつか壊れるから」です。
理由1: サードパーティー・ソフトウェア。 /usr/local は、システムの一部ではないソフトウェアを入れる場所として確立されています。 このため、いろいろなものを入れるには格好の場所ですが、同様に他の人もこの場所にいろいろなものを入れる可能性があります。 ほとんどのインストール・ルーチンはすでにあるものを上書きしてしまいますし、 dpkg もそうします。 もちろん、サードパーティー・ソフトウェアを /usr/local にインストールしないように選択をすることは可能です。 しかし、ほとんどのインストーラは事前に何を何処にインストールするか知らせてくれません。
理由2: /usr/local/bin は、デフォルトの PATH に入っています。 このため、シェルが自動的にインストール・プログラムを見つけてしまいます。 逆にいうと、このプログラムを使いたくない場合は何かしなければなりません。 極端な場合、これはシステム全体に影響します。 多くのパーツはシェルスクリプトに依存しているからです。
理由3: コンパイラ・ツール・チェーンはデフォルトで /usr/local を検索します。
コンパイラは、 /usr/local/include 内でヘッダファイルを検索し、リンカは /usr/local/lib 内でライブラリを検索します。
これがうまくいくときもありますが、そうしたくない時にしないのが非常に難しいです。
コンパイラは、 /usr/local/include に stdio.h
という名前のゴミファイルを追加すれば無効化することができます。
以上のことから、 Fink を /usr/local にインストールするのは不可能です。 インストール・スクリプトは警告メッセージを出しますが、これを無視することもできます。 この場合は自己責任で行なって下さい。
質問1.5: ではなぜ /opt/sw を選んだのですか?
回答: この選択にあまり意味はありませんが、実用上の(アップグレードの)問題と、他のパッケージング・システムとのコンフリクト問題を避けるため、近い将来に変更することはないと思われます。