日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
PORTS(7) FreeBSD 多方面の情報マニュアル PORTS(7)
名称
ports -- 寄贈されたアプリケーション
解説
FreeBSD ports コレクションは、サードパーティのアプリケーションをコンパイ
ルし、インストールするために簡単な方法を提供しています。それは、また、
pkg(8) を使用してインストールされる、パッケージを構築するために使用されま
す。
通常 /usr/ports に置かれる、ポートツリーは、サブディレクトリ、カテゴリご
とに 1 つから成ります。それらは、個別のポートを順番に含んでいます。各ポー
トは、オリジナルのアプリケーションのソースコードをコンパイルし、FreeBSD
で実行する、必要なメタデータとパッチがあるディレクトリです。アプリケー
ションをコンパイルすることは、port ディレクトリで ``make build'' とタイプ
するように簡単です。Makefile は、ローカルなディスクまたはネットワークから
アプリケーションソースコードを自動的に取り出し、それをアンパックし、パッ
チを適用し、それをコンパイルします。また、それは、依存状態を再帰的に処理
します -- ソフトウェアの他の断片、ポートは、構築し、動作するため依存しま
す。後で、``make install'' でアプリケーションをインストールします。
FreeBSD Ports Collection は、提供されたソフトウェアのバージョンによってほ
どんど異なるいくつかのブランチで保守されています: head ブランチは、すべて
の最新の変更を含んでいますが、一方、quarterly ブランチは、重要な修正のみ
を提供しています。head ブランチは、次の場所にある Subversion リポジトリか
らインストールするか、または更新することができます:
https://svn.FreeBSD.org/ports/head
quarterly ブランチは、branches/ サブディレクトリの Subversion で見つける
ことができます、例えば:
https://svn.FreeBSD.org/ports/branches/2019Q1
それは、一般的に、使用されている pkg(8) リポジトリに一致している ports ブ
ランチを使用するために良いアイデアです。デフォルトで、FreeBSD CURRENT に
ついて、pkg(8) は、head ブランチから構築されたパッケージをインストールす
るために設定されますが、一方、FreeBSD STABLE または RELEASE バージョンに
ついて、最新の quarterly ブランチから構築されたパッケージをインストールす
るために設定されます。現在、設定された pkg(8) リポジトリは、pkg -vv 出力
の url フィールドを検索することによって検証することができます。
ports の使用に関する詳細については、The FreeBSD Handbook: の ``Packages
and Ports'' セクションを参照してください:
https://docs.FreeBSD.org/en/books/handbook/ports/
和文 file:/usr/share/doc/ja_JP.eucJP/books/handbook/ports.html または、
https://www.FreeBSD.org/doc/ja_JP.eucJP/books/handbook/ports.html
新しい ports を作成することに関する情報については、次を参照してください。
The Porter's Handbook: (移植者のハンドブック):
https://docs.FreeBSD.org/en/books/porters-handbook/
ターゲット
make(1) のターゲットのいくつかは、サブディレクトリを通して再帰的に動作し
ます。これによって、利用者は、例えば、1 つのコマンドで ``biology'' ports
のすべてインストールします。これを行なうターゲットは、build, checksum,
clean, configure, depends, extract, fetch, install と package です。
次のターゲットは、順番に各進行しているターゲットによって自動的に実行され
ます。すなわち、build は、(必要であるなら) install によって実行され、
fetch するすべての方法も同様です。通常、install ターゲットを使用するだけ
です。
config dialog4ports(1) を使用して、この port のための OPTIONS を設定
します。
fetch MASTER_SITES と PATCH_SITES にリストされたサイトから、この
port を構築するために必要なすべてのファイルを取って来ます。
FETCH_CMD, MASTER_SITE_OVERRIDE と MASTER_SITE_BACKUP を参照し
てください。
checksum 取って来た distfile のチェックサムがテストされた port のものと
一致しているか検証します。distfile のチェックサムが一致してい
ないなら、失われたか、またはチェックサムの計算を失敗した dist
file も取って来ます。NO_CHECKSUM の定義は、このステップをス
キップします。
depends 現在の port のあらゆる依存性をインストールします (または、コン
パイルが必要であるなら、コンパイルします)。extract または
fetch ターゲットによって呼び出されるとき、これは、fetch-
depends, build-depends, その他、として断片的に実行されます。
NO_DEPENDS の定義は、このステップをスキップします。
extract distfile を作業ディレクトリに展開します。
patch port に必要なあらゆるパッチを適用します。
configure port を設定します。いくつかの ports は、この段階の間に利用者に
問い合わせをします。INTERACTIVE と BATCH を参照してください。
build port を構築します。これは、all ターゲットを呼び出すのと同じで
す。
install port をインストールして、package システムで、それを登録しま
す。これは、利用者が実際に行う必要があるすべてです。
次のターゲットは、通常のインストールプロセスの間に実行されません。
showconfig この port のための OPTIONS 設定を表示します。
showconfig-recursive
この port とそのすべての依存性のための OPTIONS 設定を表
示します。
rmconfig この port のための OPTIONS 設定を削除します。
rmconfig-recursive
この port とそのすべての依存性のための OPTIONS 設定を削
除します。
config-conditional
既に、それらの設定された OPTIONS がある ports をスキップ
します。
config-recursive
dialog4ports(1) を使用して、この port とそのすべての依存
のための OPTIONS を設定します。
fetch-list port を構築するために取って来られるファイルのリストを表
示します。
fetch-recursive port とそれに依存するすべての distfile を取って来ます。
fetch-recursive-list
fetch-recursive によって検索され、取って来られるファイル
のリストを表示します。
run-depends-list, build-depends-list
port ディレクトリで、すべてのコンパイルと実行の依存関
係、それらに依存する依存関係を印刷 (表示) します。
all-depends-list
port のためのすべての依存関係のリストを印刷します。
pretty-print-run-depends-list, pretty-print-build-depends-list
port 名とバージョンで、すべてのコンパイルと実行の依存関
係、それらに依存する依存関係を印刷します。
missing port のためにインストールされる欠けている依存のリストを
印刷 (表示) します。
clean 展開されたソースコードを削除します。これは、
NOCLEANDEPENDS が定義されないなら、依存性を再帰的に繰り
返します。
distclean port の distfiles を削除して、clean ターゲットを実行しま
す。clean 部分は、NOCLEANDEPENDS が定義されないなら、依
存性を再帰的に繰り返しますが、distclean 部分は、決して繰
り返しません (これは、恐らくバグです)。
reinstall deinstall を使用するべきだったとき、pkg-delete(8) を使用
した後に port を復旧するために、これを使用します。
deinstall pkg-delete(8) に似て、システムからインストールされた
port を削除します。
deinstall-all システムから同じ PKGORIGIN があるすべてのインストールさ
れた port を削除します。
package port のためにバイナリの package を作成します。port は、
それがまだインストールされていなかったなら、インストール
されます。package は、pkg-add(8) で他のマシンで port を
インストールするために使用することができる .pkg ファイル
です。PACKAGES で指定されたディレクトリが存在しないな
ら、パッケージは、カレントディレクトリに置かれます。
PKGREPOSITORY と PKGFILE を参照してください。
package-recursive
package に似ていますが、同様に、依存する port ごとに
package を作成します。
package-name port のバージョンで名前を印刷します。
readmes port の README.html を作成します。これは、利用者のシステ
ムですべての port のブラウズすることができる web を作成
するために /usr/ports から使用することができます!
search key (ポート名、コメントと依存性を検索する)、name (ポート
名のみを検索する)、path (port のパスを検索する) info
(ポート情報を検索する)、maint (port のメンテナを検索す
る)、cat (port のカテゴリを検索する)、bdeps (port の構築
時の依存性を検索する)、rdeps (port の実行時の依存性を検
索する)、www (port ウェブサイトを検索する) make(1) 変数
とそれらの排他的な次の対応物によって指定されたパターンの
ための INDEX ファイルを検索します: xname, xkey その他。
例えば、次のようにタイプすると:
cd /usr/ports && make search name=query
これは、名前が ``query'' と一致するすべての port を見つ
けるためです。結果は、一致する port のパス、コメント、メ
ンテナ、構築存性と実行依存性を含んでいます。
cd /usr/ports && make search name=pear- \
xbdeps=apache
これは、名前に ``pear-'' を含んでいて、構築時の依存性で
リストされた apache がない、すべての port を見つけるため
にです。
cd /usr/ports && make search name=pear- \
xname='ht(tp|ml)'
これは、名前に ``pear-'' を含んでいるが、``html'' または
``http'' を含んでいない、すべての port を見つけるために
です。
make search key=apache display=name,path,info keylim=1
これは、名前、パス、情報フィールドのいずれかに
``apache'' 含んでいて、レコードの残りを無視する、port を
見つけるためです。
デフォルトで、検索は、大文字と小文字を区別しません。大文
字と小文字を区別するようにするためには、icase 変数を使用
することができます:
make search name=p5-R icase=0
quicksearch search の出力を削減します。名前、パスと情報のみ表示しま
す。
describe INDEX ファイルで使用される各 port 1 行の記述を生成しま
す。
maintainer port メンテナの E メールアドレスを表示します。
index pretty-print-* と search ターゲットによって使用される
/usr/ports/INDEX を作成します。index ターゲットの実行
は、利用者の INDEX ファイルが利用者の port ツリーで最新
であることを保証します。
fetchindex FreeBSD クラスタから INDEX ファイルを取って来ます。
環境変数
つぎのすべてを変更することができます。
PORTSDIR port ツリーの位置。これは、デフォルトで /usr/ports です。
WRKDIRPREFIX あらゆる一時ファイルを作成する場所。PORTSDIR が読み込み専用
であるなら (おそらく CD-ROM からマウントされるなら)、役に立
ちます。
DISTDIR distfile を見つけて/置く場所で、通常、PORTSDIR の
distfiles/。
SU_CMD コマンドは、ポートを設定し、インストールするために、特権を
高めるために使用されます。特権がないユーザは、WRKDIRPREFIX
と DISTDIR に書き込みアクセスがなければなりません。デフォル
トは、`/usr/bin/su root -c' です。多くのユーザは、便宜上
`/usr/local/bin/sudo -E sh -c' にそれを設定します。
PACKAGES package ターゲットでのみ使用されます。package ツリーのため
の基本ディレクトリで、通常、PORTSDIR の packages/。このディ
レクトリが存在するなら、package ツリーは、(部分的に) 構築さ
れます。このディレクトリは、存在する必要はありません。存在
しないなら、package は、カレントディレクトリに置かれるか、
または次の 1 つで定義することができます。
PKGREPOSITORY package を置くディレクトリ。
PKGFILE package のフルパス。
LOCALBASE 既存のものがインストールされ、依存状態 (通常、/usr/local)
を解決するとき、ファイルを検索するための場所。
PREFIX この port をインストールする場所 (通常、LOCALBASE と同じに
設定)。
MASTER_SITES ローカルに見つからないなら、配布ファイルのための主要なサイ
ト。
PATCH_SITES ローカルに見つからないなら、配布のパッチファイルのための主
要な位置。
MASTER_SITE_FREEBSD
設定されているなら、すべてのファイルのためのマスタ FreeBSD
サイトに行きます。
MASTER_SITE_OVERRIDE
最初に、すべてのファイルとパッチのために、これらのサイトに
行くことを試みます。
MASTER_SITE_BACKUP
最後に、すべてのファイルとパッチのために、これらのサイトに
行くことを試みます。
RANDOMIZE_MASTER_SITES
ランダムな順序でダウンロード位置を試みます。
MASTER_SORT ユーザの供給されたパターンに従ってダウンロード位置をソート
します。例:
.dk .sunet.se .se dk.php.net .no .de
heanet.dl.sourceforge.net
MASTER_SITE_INDEX
(fetchindex ターゲットのために) FreeBSD クラスタで構築され
た INDEX ソースを取得するところ。デフォルトは、
https://www.FreeBSD.org/ports/ です。
FETCHINDEX (fetchindex ターゲットのために) INDEX を取得するコマンド。
デフォルトは、``fetch -am'' です。
NOCLEANDEPENDS
定義されるなら、依存性を再帰的に繰り返す clean を行いませ
ん。
FETCH_CMD ファイルを取って来るために使用するコマンド。通常、fetch(1)
です。
FORCE_PKG_REGISTER
設定されるなら、システムのあらゆる既存の package の登録を上
書きします。
INTERACTIVE 定義されるなら、それが相互作用を必要とした場合のみ、port で
動作します。
BATCH 定義されるなら、100% 自動的にインストールすることができる場
合のみ、port で動作します。
DISABLE_VULNERABILITIES
定義されるなら、新しい port をインストールするとき、pkg-
audit(8) を使用して、セキュリティの脆弱性のためのチェックを
無効にします。
NO_IGNORE 定義されるなら、<FORBIDDEN> としてマークされる port のイン
ストールを可能にします。port フレームワークのデフォルトの振
る舞いは、禁じられた port のインストールが試みられるとき、
中止になることです。もちろん、これらの port は、期待される
ように動作しないかもしれませんが、利用者が何をしているかを
本当に知っているなら、そして禁じられた port のインストール
に関して確信しているなら、NO_IGNORE を行ってください。
NO_CHECKSUM 定義されるなら、port のチェックサムを検証することをスキップ
します。
TRYBROKEN 定義されるなら、たとえ、それが <BROKEN> とマークされても、
port を構築することを試みます。
PORT_DBDIR OPTIONS を設定する結果が格納されるディレクトリ。デフォルト
は、/var/db/ports です。OPTIONS が設定される各 port には、
単一のファイル options を含んでいる、ユニークに指定されたサ
ブディレクトリがあります。
MAKE 変数
次のリストは、ports を構築するとき、使用される多くの変数のための名前と短
い記述を提供しています。これらと他の関連する変数に関するより多くの情報
は、${PORTSDIR}/Mk/* と FreeBSD ポータ (移植者) のハンドブックで見つかり
ます。
WITH_DEBUG (ブール値) 設定されるなら、デバッグシンボルは、ports
バイナリのためにインストールされます。
WITH_DEBUG_PORTS WITH_DEBUG を設定するオリジナルのリスト。
DEBUG_FLAGS (デフォルト: `-g') WITH_DEBUG が設定されているとき、設
定する追加の CFLAGS。
WITH_CCACHE_BUILD (ブール値) 設定されるなら、ports の構築のために
ccache(1) の使用を有効にします。
CCACHE_DIR ccache(1) データのために使用するディレクトリ。
関連ファイル
/usr/ports デフォルトの port ディレクトリ。
/usr/ports/Mk/bsd.port.mk 肝心要 (かんじんかなめ)。
使用例
使用例 1: ポートを構築して、インストールする
次のコマンドは、Emacs を構築してインストールします。
# cd /usr/ports/editors/emacs
# make install
使用例 2: pkg(8) のインストールの依存状態
次の使用例は、その依存状態を構築せずにどのようにポートを構築してインス
トールするかを表示しています。代わりに、依存状態は、pkg(8) を通してダウ
ンロードされます。
# make install-missing-packages
# make install
依存状態が (lang/rust のように) 構築する時間とリソースが高価であると
き、それは、特に役に立ちます。難点は、pkg(8) が、OPTIONS のデフォルトの
セットで構築するパッケージのみを提供することです。
使用例 3: ポートのデフォルトでないの特色を構築する
次のコマンドは、ポートのデフォルトでない特色を構築します。(この場合、
devel/py-pip は、Python 3.7 のサポートで構築しようとしています。)
# cd /usr/ports/devel/py-pip
# env FLAVOR=py37 make build
使用例 4: make.conf(5) を通して ports オプションの設定
次の行は、make.conf(5) を通して (例えば、``make config'' を実行に代わる
手段として) ポートオプションを設定する様々な方法を提示しています:
# オプションの dialog を使用して別段の設定がないなら,
# すべてのポートのための NLS を有効にします.
OPTIONS_SET= NLS
# オプションの dialog を通して設定されたオプションを上書きして,
# すべてのポートのために DOCS を無効にします.
OPTIONS_UNSET_FORCE= DOCS
# shells/zsh ポートのための DOCS と EXAMPLES を無効にします.
shells_zsh_UNSET= DOCS EXAMPLES
これらとその他のオプションに関連する変数は、
/usr/ports/Mk/bsd.options.mk に文書化されています。
使用例 5: make.conf(5) を通して特有のポートのための make(1) 変数の設定
次の例は、任意の make(1) 変数を特定のポートのみに設定する方法を示してい
ます:
# lang/rust ポードのために DISABLE_MAKE_JOBS を設定:
.if ${.CURDIR:M*/lang/rust}
DISABLE_MAKE_JOBS= yes
TRYBROKEN= yes
.endif
使用例 6: デバッグポート
デフォルトで、ports は、デバッグをサポートせずに構築され、パッケージ化
されます (例えば、デバッグシンボルがバイナリから取り除かれ、最適化フラ
グは、コンパイルのために使用され、冗長なログ記録は、無効にされます)。
ports がデバッグシンボルを付けて構築されるかどうかは、make.conf(5) の設
定によって制御することができます、例えば、
# すべてのポートのためのデバッグを有効にします.
WITH_DEBUG= yes
# 選択されたポートのためのデバッグを有効にします.
WITH_DEBUG_PORTS= mail/dovecot security/krb5
また、コマンド行でデバッグ変数を使用することができます:
# make -DWITH_DEBUG DEBUG_FLAGS="-g -O0" build
デバッグ変数に関してより学ぶためには、「MAKE 変数」を参照していくださ
い。
デバッグ変数が設定されるとき、何が起こるかの詳細を理解するためには、
${PORTSDIR}/Mk/* (特に bsd.port.mk) に位置するファイルを参照するのが最
善です。
デバッグが特定のポートのために有効にされているなら、ports フレームワー
クは、次の通りです:
• DEBUG_FLAGS (デフォルトは、`-g') を CFLAGS に追加します。
• (`install-strip' を `install' に置き換えるためにインストールター
ゲットをチェックすることを含んで) バイナリがストリップされないよう
にします。バイナリがストリップされたかどうかは、file(1) でチェック
することができます。
• デバッグの構築タイプまたは冗長なログ記録のような他のデバッグ機能を
有効に試みます。しかしながら、これは、ポート固有であり、ports のフ
レームワークは、ソフトウェアの与えられた部分が提供されなければなら
ない、各サポートされるたデバッグ機能を認識していないかもしれませ
ん。
関連項目
make(1), make.conf(5), development(7), pkg(7)
追加の開発者の文書は、次の通りです:
- portlint(1)
- /usr/ports/Mk/bsd.port.mk
追加のユーザの文書は、次の通りです:
- pkg(8)
- Searchable index of all ports:
https://www.FreeBSD.org/ports
(すべての ports の検索可能なインデックス)
歴史
ports コレクションは、FreeBSD 1.0 で登場しました。それは、それ以来 NetBSD
と OpenBSD に展開されました。
作者
このマニュアルページは、David O'Brien によって始めて作成されました。
バグ
ports の文書は、次の 4 つの部分に分割されています --
/usr/ports/Mk/bsd.port.mk, The Porter's Handbook, The FreeBSD Handbook の
``Packages and Ports'' セクションとこのマニュアルページ。
FreeBSD 13.2 July 22, 2021 FreeBSD 13.2