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 の利用に関してさらに情報が必要ならば、 の “Packages and Ports” (原文 file:/usr/share/doc/en_US.ISO8859-1/books/handbook/ports.html または、 http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/ports.html 、和文 file:/usr/share/doc/ja_JP.eucJP/books/handbook/ports.html または、 http://www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/ports.html) に目を通して下さい。 port を新規に作成するための情報については、 (file:/usr/share/doc/en_US.ISO8859-1/books/porters-handbook/index.html または、 http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/porters-handbook/) に目を通して下さい。

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

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

config
    dialog(1) を使用して、この port の OPTIONS を設定します。

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

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 におけるパッケージを指す場合にこう表記します) システムに登録します。 このターゲットは、実際に必要なこと すべてを行なってくれます。

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

showconfig
    この port の OPTIONS 設定を表示します。

showconfig-recursive
    この port と依存するものの OPTIONS 設定を表示します。

rmconfig
    この port の OPTIONS 設定を削除します。

rmconfig-recursive
    この port と依存するものの OPTIONS 設定を削除します。

config-conditional
    すでに OPTIONS 設定を持っている port をスキップします。

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

fetch-recursive
    この port と依存するものの distfile を取得します。

fetch-recursive-list
    fetch-recursive で取得されるファイルのリストを表示します。

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 をシステムから削除します。

deinstall-all
    同じ PKGORIGIN のインストール済 ports すべてを、システムから削除します。

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

package-recursive
    package と似ていますが、依存する各 port に対しても package を作成します。

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

search
    INDEX ファイルを、 key (port の名前、コメント、依存関係を調べます)、 name (port の名前のみを調べます)、 path (port のパスを調べます)、 info (port の情報を調べます)、 maint (port のメンテナを調べます)、 cat (port のカテゴリを調べます)、 bdeps (port の構築依存関係を調べます)、 rdeps (port の実行依存関係を調べます) などの make(1) 変数や、その逆の意味をもつ xname, xkey などで指定されたパターンで検索します。 例えば、次のように入力します:

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

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

        cd /usr/ports && make search name=pear- \
            xbdeps=apache

    名前に “pear-” を含み、apache が構築依存関係に含まれていないすべての ports を検索します。

        cd /usr/ports && make search name=pear- \
            xname='ht(tp|ml)'

    名前に “pear-” を含みますが、 “html” や “http” は含まないすべての ports を検索します。

        make search key=apache display=name,path,info keylim=1

    “apache” が名前、パス、情報フィールドのどれかに含まれるすべての ports を検索します。 他のレコードは無視します。

describe
    INDEX ファイル中で使用される、各 port の 1 行説明を生成します。

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

fetchindex
    FreeBSD クラスタから INDEX ファイルを取得します。

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

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

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

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
    すべてのファイルとパッチについて、まずこれらのサイトに行って取得を試みます。

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

MASTER_SITE_INDEX
    FreeBSD クラスタで構築された INDEX の取得先 (fetchindex ターゲット用) です。 デフォルトは http://www.FreeBSD.org/ports/ です。

FETCHINDEX
    INDEX を取得するコマンド (fetchindex ターゲット用) です。 デフォルトは “fetch -am” です。

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

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

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

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

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

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

OPTIONS
    定義されている場合、この port が受け付ける WITH_* オプションのリストです。 注意: OPTIONS が実際にちゃんと動作するには、 WITH_* 変数をテストし始める前に bsd.port.pre.mk をインクルードする必要があります。

DISABLE_VULNERABILITIES
    定義されている場合、新規 port のインストール時に portaudit(1) を使ったセキュリティ脆弱性のチェックを行ないません。

関連ファイル
/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) The FreeBSD Handbook.

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

作者
-nosplit このマニュアルページは、もともとは David O'Brien によるものです。

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

バグ
port に関する文書が 4 か所に分散されてしまっています。 /usr/ports/Mk/bsd.port.mk と と の “Packages and Ports” セクションと、 このマニュアルページ の 4 つです。