DarwinPorts システムとは DarwinPorts とは、FreeBSD の ports と同様の機能を持つと同時に将来の拡張性も 維持するように作られた、ソフトウェアのビルド、インストール、およびパッケージ作成の ための基盤です。 DarwinPorts は現在のところ MacOS X 10.2 (Darwin 6.0) と MacOS X 10.3 (Darwin 7.0) 上で作成され、これらの上で動作します。このシステムは TCL と限定された TCLエクステンションを利用した C で書かれていますから、高い移植性があります。 "DarwinPorts User Guide" が以下にあります: http://www.opendarwin.org/projects/darwinports/guide/ ports システムの内部構造についてより深く知るためには、base/doc/INTERNALS を参照してください。 DarwinPorts は 2 つの部分に分かれていることに注意してください。1 つは "darwin ports infrastructure" であり、これは base/ サブディレクトリに存在する このシステムの唯一の中核部分にあたります。もう 1 つは "dports" ディレクトリで、 ここには実際に移植されたソフトウェアの説明などが置かれています。後者は必要に応じて ネットワーク越しに手に入れることもできますし、手元にあるファイルを利用することも 可能です。後述する /etc/ports/sources.conf についての説明を参照してください。 インストール プラットホーム別の説明は base/doc/README.platforms にあります。 インストール手順: 1. cd base/ ./configure base/ ディレクトリにて configure スクリプトを実行します。 configure スクリプトにはいくつかの引数を与えることができます (後述)。 2. make すべての必須ソフトウェアをコンパイルします。 3. sudo make install DarwinPorts をこのシステムにインストールします。 4. /etc/ports/ports.conf の編集 [省略可能] 設定ファイルである /etc/ports/ports.conf では、DarwinPorts のためのいくつかの設定項目が定義されています。インストール先の パスや port システムのためのいろいろなデータが保存されている 場所を変更したいときは、以下の設定を変更します: portdbpath ports システムのためのデータを保存する場所 prefix ports をインストールするディレクトリ [Mac OS X 10.2 のみ] Mac OS X 10.2 上の Tcl 8.3 には、Port イメージに利用している [file link] 関数が含まれていないため、/etc/ports/ports.conf の中でインストール種別を変更する必要があります。 この行を変更してください: 変更前: portinstalltype image 変更後: portinstalltype direct 5. /etc/ports/sources.conf の編集 [省略可能] /etc/ports/sources.conf には、ネットワーク上とローカルとの 両方について、ソフトウェア階層の一覧が記述されています。 ./configure スクリプトに --with-dports-dir=DIR という引数が 与えられていなければ、デフォルトの dports-tree (先ほどの インストールによって作られた darwinports/dports) が sources.conf に追加されます。 すべての必須コードと TCL は以下のようにインストールされます: [Mac OS X 10.3] /Library/Tcl/darwinports1.0 [Mac OS X 10.2] /System/Library/Tcl/darwinports1.0 [FreeBSD] /usr/local/lib/tcl8.3/darwinports1.0 - DarwinPorts システムを利用するための TCL ライブラリ PREFIX は標準では /opt/local になりますが、base/ ディレクトリにて ./configure スクリプトを動かすときに --prefix 引数で指定することで これを変えることができます。 $PREFIX/bin/port - コマンドラインから port を作成するためのユーティリティ $PREFIX/share/darwinports/ - ports システム内部で利用する TCL ライブラリ群 以下のファイルはシステムをカスタマイズするためのものです: /etc/ports/ports.conf - ユーザが port の設定を変えるためのファイル /etc/ports/sources.conf - port のソース (どこから ports のデータを入手するか) の一覧 port コマンドを使う 最初に /opt/local/bin (または DarwinPorts をインストールしたディレクトリに 応じた $PREFIX/bin) をコマンドサーチパスに追加します。 Panther (OS X 10.3) を使っているなら、~/.profile に次の行を追加します。 もしこのファイルが存在しなければ作成してください。(この方法は Jaguar 上で bourne shell を使っているときにも有効です。) export PATH=$PATH:/opt/local/bin Jaguar (OS X 10.2) を使っているなら、~/.cshrc に次の行を追加します。 もしこのファイルが存在しなければ作成してください。(この方法は Panther 上で tcsh を 使っているときにも有効です。) set path=($path /opt/local/bin) 上記の設定は新しいシェルを起動するまで有効になりません。 port をビルドしてインストールしたいときは次のコマンドを使います: port install ある port を探したいときは "port search" を使います: port search vi port コマンドについての完全な説明はオンラインマニュアルを参照してください。 システム上のすべての port をビルドしたり入手したりすることも可能で、これは portall コマンドを使います。このコマンドには基本的に port コマンドと同じ 引数を与えることができ、dports/ 以下にある各 port に対して同じ動作を繰り 返すことができます。例えばこのディレクトリで "make clean" を実行しようと すると、"portall clean" が呼び出されてすべてを clean にしてくれます。 新しい ports を作る ports は Portfile とそれに関連するファイル群を保存したディレクトリによって 構成されます。今のところ、patch ファイルだけがそこに保存されていて、しかもこれらの ファイルはできるだけ少なく済むようになっています. Portfile には、DarwinPorts システムに付属する TCL インタプリタによって 評価される TCL コードが含まれています。Portfile は、名前と値の組によるとても 単純な構造を持っているので、作者が必要に応じて TCL の機能を自在に使うことができる ようになっています。 まずは base/doc/exampleport と portfile(7) のオンラインマニュアルを読む か、または http://darwinports.opendarwin.org/docs にある The DarwinPorts Guide を読むことから始めるとよいでしょう。