Fink の特徴

Fink は、 MacOSX/Darwin 用のパッケージ管理ツールで、Unix 用のソフトウェアをインストールすることができます。Fink の特徴は、以下のとおりです。

1. 依存性を解決
Unix ソフトウェアは、多くの場合他のソフトウェアに依存しています。依存関係を調べ、必要なソフトウェアを依存します。

Fink は、3つの依存関係があります。





依存ビルド時、実行時ともに依存します。
実行時依存実行時にのみ依存します。ビルド時にはなくても構いません。
ビルド時依存ビルド時にのみ依存します。ビルド終了後はアンインストールしても構いません。


2. バイナリ配布
Fink では、多くのパッケージがコンパイル済みのバイナリとして提供されます。このため、インストール時間を大幅に短縮することができます。

もちろん、自分でビルドすることも可能です。バイナリインストール後にビルドすることも可能です。

3. 複数バージョンのインストール
Fink は、複数バージョンをインストースできることが前提となっています。

これは少し複雑な仕組みとなっています。例えば、GDAL は、gdal (version 1) と gdal2 があります。他のソフトウェアは、libgdal.1.dylib に依存しているかもしれませんし、libgdal.20.dylib に依存しているかもしれません。








gdal-devgdal-dev にビルド依存する時だけ臨時にインストールされる。
gdal2-devgdal2-dev にビルド依存する時だけ臨時にインストールされる。
gdal-shlibslibgdal.1.dylib
gdal2-shlibslibgdal.20.dylib
gdalgdal2 がインストールされると自動的にアンインストールされる。
gdal2最新のバイナリ


なぜこうなるかというと、ビルド時に必要なヘッダファイル (gdal-dev と gdal2-dev) は、同じファイル名のものが多いため、両方あると不適切だからです。まちがってインクルードされないように、ヘッダファイルをアンインストール/インストールできる仕組みを備えています。

4. ライブラリの指定
自分でビルドしたり、他のパッケージ管理システムを使用する場合、リンクは柔軟です。例えば、foo は、libbar.dylib に依存しています。しかし、libbar.dylib は実際には libbar.1.dylib へのシンボリックリンクです。libbar.dylib がアップデートされ、libbar.2.dylib にバージョンアップされたとします。これにより、foo が機能しなくなることもありえます。

この問題を避けるため、Fink では、 foo は libbar.dylib ではなく、libbar.1.dylib にリンクします。これにより、libbar.1.dylib と libbar.2.dylib が両方あっても、変わることなく使うことができます。

foo が libbar.2.dylib でも問題なく動作することが確認されたら、あらためて foo のリビジョンがアップされます。



この他にも、Fink には多くの魅力があります。

--
作成 2016年3月18日