PORTS(7)

名称
ports - 寄贈されたアプリケーション

解説
FreeBSD ports コレクション によって、ユーザや管理者は簡単にアプリケーションをインストールする ことができます。 port はそれぞれ、オリジナルのソースコードを BSD 上でコンパイルして実行 させるために必要なパッチのすべてを含んでいます。アプリケーションの コンパイルは、 port のディレクトリで make build と入力するだけで簡単にできます。 port の ‘Makefile’ は、ローカルディスクからもしくは ftp を使って、自動的にアプリケーションの ソースコードを取得 (fetch) して、自分のシステムでそれを展開して、 パッチを当て、コンパイルします。すべてが順調に進んだ場合、 make install を実行することにより、アプリケーションがインストールされます。

インストールされたシステムよりも新しい ports を、 FreeBSD リポジトリからダウンロードして使用できます。 ただし、最初に適切な「アップグレードキット」を http://www.FreeBSD.org/ports/ から取得してインストールすることが重要です! 新しい ports をダウンロードするときには、 portcheckout(1) スクリプト (もちろんこれも port です!) が役立つでしょう。

port の利用に関してさらに情報が必要ならば、 ports コレクション (The Ports Collection) (原文: file:/usr/share/doc/handbook/ports.html または、 http://www.FreeBSD.org/handbook/ports.html。 和文: file:/usr/share/doc/ja/handbook/ports.html または、 http://www.FreeBSD.org/ja/handbook/ports.html) ) に目を通して下さい。 port を新規に作成するための情報については、 自分で port を作る (Porting applications) (原文: file:/usr/share/doc/handbook/porting.html または、 http://www.FreeBSD.org/handbook/porting.html、 和文: file:/usr/share/doc/ja/handbook/porting.html または http://www.FreeBSD.org/ja/handbook/porting.html) に目を通して下さい。 どちらも FreeBSD ハンドブックの一部です。

ターゲット
ターゲットのいくつかは、サブディレクトリを再帰的に make して行きます。 これにより、例えば、biology の port すべてをインストールすることが できます。再帰的に make を行なうターゲットは、 build, checksum, clean, configure, depends, extract, fetch, install, package です。

次のターゲットは、それぞれすぐ手前のターゲットによって順に自動的に 実行されます。すなわち、 build は、 (必要があれば、) install によって実行されます。以下のターゲットそれぞれについて、同様のルールが fetch まで順次適用されます。 通常は、ターゲットとして、 install を指定するだけでよいはずです。

fetch
    MASTER_SITES と PATCH_SITES でリストされたサイトから、 この port を構築するために必要なファイルすべてを取得 (fetch) します。 FETCH_CMD と MASTER_SITE_OVERRIDE とを参照して下さい。

checksum
    取得した distfile のチェックサムが port で動作確認されたものと 一致するかどうかを検証します。 NO_CHECKSUM を定義することで、このステップを飛ばすことができます。

depends
    現在の port と依存関係にある port をインストール (もしくは、必要がある場合のみコンパイル) します。ターゲット extract もしくは fetch により呼び出された場合、 fetch-depends, build-depends などとしてひとつずつ実行されます。 NO_DEPENDS を定義することで、このステップを飛ばすことができます。

extract
    distfile を作業用ディレクトリに展開します。

patch
    port に必要なパッチすべてを適用します。

configure
    port を構成 (configure) します。port によっては、この段階で質問して くるものもあります。 INTERACTIVE と BATCH を参照して下さい。

build
    port を構築します。これはターゲット all を呼び出すことと同じです。

install
    port をインストールし、この port をインストールしたことを package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) システムに登録します。このターゲットは、実際に必要なこと すべてを行なってくれます。

次のターゲットは、通常のインストールプロセスでは実行されません。

fetch-list
    この port を構築するために取得が必要なファイルのリストを表示します。

pretty-print-run-depends-list pretty-print-build-depends-list
    コンパイル依存 port リストと実行依存 port リストを表示します。 また、これらの依存 port リストが依存する port についても表示します。

clean
    展開されたソースコードを削除します。 NOCLEANDEPENDS を定義しておかない限り、削除は依存関係にある port に再帰的に適用されます。

distclean
    その port の distfile を削除し、 clean ターゲットを実行します。 NOCLEANDEPENDS を定義しておかない限り、 ‘clean’ の部分は依存関係にある port に再帰的に適用されます。しかし、 ‘distclean’ の部分は決して再帰的に適用されません (この挙動はひょっとするとバグかもしれません)。

reinstall
    deinstall を使用すべきところでうっかり pkg_delete(1) を使ってしまった場合、このターゲットを使って port を復活させて下さい。

deinstall
    pkg_delete(1) と同様に、インストールした port をシステムから削除します。

package
    この port のバイナリ package を作成します。まだインストールされて いなかった場合、その port をインストールします。 package は .tgz ファイルであり、その port を他のマシンに pkg_add(1) を使ってインストールする際に使用することができます。 PACKAGES で指定されたディレクトリが存在しなければ、package はカレントディレクトリに 置かれます。 PKGREPOSITORY と PKGFILE とを参照して下さい。

readmes
    その port の README.html ファイルを生成します。 これは、あなたのシステム上の全 port をウェブでブラウズできるようにするために、 /usr/ports から使用可能です。

search
    INDEX ファイルを、 key (port の名前、コメント、依存を調べます) または name (port の名前のみを調べます) ターゲットのいずれかで指定されたパターンで 検索します。 例えば、次のように入力します:

        cd /usr/ports && make search name=query

    すると、全 ports のうち名前が ‘query’ に適合するものが探されます。 結果には、適合する ports のパス、コメント、メンテナ、構築依存、実行依存が 含まれます。

index
    /usr/ports/INDEX を作成します。 これは、 pretty-print-* および search のターゲットで使用されます。 CVS リポジトリのマスタ INDEX ファイルは定期的に更新されますが、 index ターゲットを実行することで、 INDEX ファイルが ports ツリに対して最新であることを保証します。

環境変数
これら環境変数のすべてを変更することができます。

PORTSDIR
    port ツリーの場所を指定します。これは FreeBSD と OpenBSD では /usr/ports で、 NetBSD では /usr/pkgsrc です。

WRKDIRPREFIX
    一時ファイルを作成する場所です。 PORTSDIR が読み込み専用の場合 (おそらく cdrom をマウントした場合) 有用です。

DISTDIR
    distfile を探す場所であり、取得した distfile を置く場所です。通常は PORTSDIR の下の distfiles/ です。

PACKAGES
    ターゲット package でのみ使用されます。 package ツリーのベースディレクトリです。通常は、 PORTSDIR の下の packages/ です。 このディレクトリが存在する場合、package ツリーが (部分的に) 構築されます。 このディレクトリは存在する必要はありません。存在しない場合、package は カレントディレクトリに置かれます。もしくは、以下のいずれか一方を定義 することができます。

    PKGREPOSITORY
        package を置くディレクトリ。

    PKGFILE
        その package のフルパス。

PREFIX
    一般に、成果物をどこにインストールするかを指定します (通常は /usr/local か、 /usr/X11R6 です)。

MASTER_SITES
    ローカルマシンに配布ファイルが存在しない場合、最初に取得しに行くサイトです。

PATCH_SITES
    ローカルマシンにパッチファイルが存在しない場合、最初に取得しに行くサイトです。

MASTER_SITE_FREEBSD
    これが設定されている場合、すべてのファイルを FreeBSD のマスタサイトに 取りに行きます。

MASTER_SITE_OVERRIDE
    すべてのファイルとパッチについて、まずこのサイトに行って取得を試みます。

NOCLEANDEPENDS
    これが定義されている場合、依存関係にある port に対して ‘clean’ を再帰的に適用しません。

FETCH_CMD
    ファイルを取得する際に使用するコマンドです。通常は fetch(1) です。

FORCE_PKG_REGISTER
    これが設定されている場合、既にシステムに存在する package 登録情報を 上書きします。

MOTIFLIB
    libXm.{a,so} の位置を指定します。

INTERACTIVE
    これが設定されている場合、ユーザ入力が必要な port にのみ動作します。

BATCH
    これが設定されている場合、100% 自動的にインストールできる port にのみ 動作します。

関連ファイル
/usr/ports
    デフォルトの port ディレクトリ (FreeBSD と OpenBSD) 。
/usr/pkgsrc
    デフォルトの port ディレクトリ ( NetBSD) 。
/usr/ports/Mk/bsd.port.mk
    ご本尊様であらしゃいます。

関連項目
make(1), pkg_add(1), pkg_create(1), pkg_delete(1), pkg_info(1), pkg_version(1)

次に示すものは ports コレクションの一部です:

pib(1), portcheckout(1), portlint(1)

FreeBSD ハンドブック

http://www.FreeBSD.org/ports (port すべてが検索可能なインデックス)

作者
-nosplit このマニュアルページは、もともとは David O'Brien によるものです。 ports コレクションは Satoshi Asami と恐るべき port チームによって維持管理されています。

歴史
ports コレクション は、 FreeBSD 1.0 で登場しました。 その後、 NetBSD と OpenBSD にも広まりました。

バグ
port に関する文書が 4 か所に分散されてしまっています。 /usr/ports/Mk/bsd.port.mk, ハンドブックの “port コレクション” のセクションと、 “既存のソフトウェアを port にする” のセクション、 ports(7) の 4 つです。

このマニュアルページは長過ぎです。