port(1)

提供: Beginning OS X

PORT(1) BSD General Commands Manual PORT(1)

目次

[編集] 名前

port -- 一つまたは複数の Mac ports を操作します。

[編集] 概略

port [-bcdfknopqRstuvy] [-D portdir] [-F cmdfile] [action] [actionflags] [[portname | pseudo-portname | port-url]] [[@version] [+/-variant ...] ... [option=value ...]]

[編集] 説明

port コマンドは action で指定した要求に基づき、一度の呼び出しで一つまたは複数の Mac ports を操作することができます。portdirportname が指定されずに呼ばれた場合には、カレントディレクトリが指定されたものとみなされます。action が指定されていなければ、port コマンドは対話モードに入り、標準入力からコマンドを読み取ります。cmdfile 経由でバッチコマンドを渡すこともできます。port のオプション options は key=value の組として渡すことができ、これは portname の Portfile 中に書かれた個別のオプションやシステム全体の設定よりも優先されます。
port の variants は、その variant が望まれていることを示す +name という形か、あるいはその逆を示す -name という形で指定されます。曖昧さが残る場合には、@version_revision+variants というフォーマットで完全な指定をおこなうことも可能です。
インストールされた ports は、アンインストールすることなく activate や deactivate をおこなうことができます。port は、他のバージョン/バリアントの組合せでインストールされたものがすべて deactivate されていれば、新しくインストールすることが可能です。
port コマンドでは様々な疑似 port 名 pseudo-portnames を使うことができ、利用可能な ports ツリーの中から指定した条件に合致する ports を選択して用いるといった使い方が可能です。こうした疑似 port 名は、portname が書ける場所ならどこにでも書くことができます。一般的なオプションとしては、以下のようなものがあります。
  • all: sources.conf で指定された、それぞれの ports ツリー内にある、すべての ports。
  • current: 現在の作業ディレクトリ内にある port。
  • active: インストールされており、かつ active な状態にある ports。
  • inactive: インストールされているが、inactive な状態にある ports。
  • installed: インストール済みのすべての ports。
  • uninstalled: ports ツリー内に存在するが、インストールされていない ports。
  • outdated: バージョン/リビジョンが、ports ツリー内にあるものよりも古くなっている、インストール済みの ports。
  • obsolete: インストールされているが、ports ツリー内には既に存在しなくなっている ports。
その他のオプションとして、疑似 port 名セレクタ pseudo-portname selectors という、Portfile の中で使用されるほとんどの一般的なキーにマッチする働きをするものがあります。可能であれば一つだけでなく、複数を同時に指定することもできます。これらには以下のようなものがあります。
  • name
  • version
  • revision
  • epoch
  • variant
  • variants
  • category
  • categories
  • maintainer
  • maintainers
  • platform
  • platforms
  • description
  • long_description
  • homepage
  • portdir
検索文字列は対応する ports に展開されるわけですが、その文字列中では "疑似 port 名セレクタ" と正規表現の組み合わせ "pseudo-portname selector":regex を用いることが可能です。UNIX の glob パターンを含む portnames も同様に、対応する ports へと展開されます。port に渡されたあらゆる action は、それらに対応する ports のそれぞれに対しておこなわれます。例を以下に挙げます。
port list variant:no_ssl
port uninstall name:sql
port echo apache*
論理演算子 "and", "or", "not", "!", "(" および ")" を使うことで、個々の portnames、port の glob パターン、あるいは疑似 port 名 pseudo-portnames を組み合わせて、対応する ports へと展開される複雑な port の表現を構成することができます。例えば、以下のような使い方が可能です。
port upgrade installed and apache*
port echo maintainer:jberry and uninstalled and \( category:java and not commons* \)
port コマンドでは、いくつかのコマンドラインフラグおよび targets を使うことができます。

[編集] オプション

-v
詳細表示モード (詳細なメッセージを表示します。)
-d
デバッグモード (デバッグメッセージを表示します。暗黙に -v も指定されます。)
-q
非表示モード (メッセージの表示を控えます。)
-n
アップグレード時に依存関係を辿りません。(アップグレード時のみ)
-R
依存関係にある ports もアップグレードします。(アップグレード時のみ)
-u
アップグレード時とアンインストール時に、active 状態でない ports をアンインストールします。
-f
強制モード (状態ファイルを無視します。)
-o
状態ファイルが Portfile よりも古くても、そちらを優先します。
-s
ソース専用モード (ソースからのビルドとインストールをおこないます。すべてのバイナリアーカイブを無視します。バイナリのアーカイブを作成/再作成しません。) (アーカイブモードが有効時のみ利用できます。)
-b
バイナリ専用モード (バイナリアーカイブからのビルドとインストールをおこないます。ソースを無視します。アーカイブがなければ処理は中断されます。ソースからバイナリアーカイブを作成/再作成しません。) (アーカイブモードが有効時のみ利用できます。)
-c
オートクリーンモード (インストール後に clean を実行します。)
-k
キープモード (インストール後にオートクリーンしません。)
-D
portdir を指定します。
-F
引数として指定された、コマンドの書かれた file を読み取って処理します。引数が '-' である場合には、標準入力からコマンドを読み取ります。オプションが複数回与えられた場合には、複数のファイルが読み取られることになります。
-p
エラーが発生したかどうかによらず、複数の ports またはコマンドを処理します。
-y
ドライランを実施します。ports およびその依存関係にあるものをビルドする全てのステップが処理されますが、実際には実行されません。詳細表示のフラグを一緒に指定することで、全てのステップがレポート表示されます。指定しない場合には、port ごとにメッセージが一行表示されるだけです。この場合、port の再帰的な依存関係(およびビルドされる順序)を簡単に調べることができます。
-t
プラットフォームでサポートされている場合 (Mac OS X の場合)、トレースモードのデバッグ機能を有効にします。この機能は二つの部分から成っており、一つは port が読み取ったファイルの情報、および実行したプログラムの情報を元に、宣言されていない依存関係を自動的に検知して報告する機能です。もう一つは、許可されていないディレクトリ (テンポラリディレクトリおよび ${workpath}) の外に対する新規ファイルの作成や既存ファイルへの書き込みを禁止し、同時に報告をおこなう機能です。

[編集] 一般利用者向けのターゲット

一般的な MacPorts 利用者向けのターゲットを以下に挙げます。
search
正規表現に名前がマッチする port を検索します。たとえば、以下のように使います。
port search vim
info
portname に関するメタ情報を表示します。--maintainer--category といったオプションを使うことで、特定のメタ情報を要求することもできます。(指定できるフィールド名は PortIndex に含まれるものとなります。完全なリストについては "port help info" を参照してください。) フィールドが指定されない場合には、有用なフィールドのデフォルトコレクションが表示されます。グローバルオプション -q が指定されている場合には、メタ情報のフォールドは表示されません。--line オプションが指定されている場合には、そうしたデータは port 毎に一行にまとめて表示されます。これはパイプコマンドで処理する際に便利です。--pretty オプションが指定された場合、情報は人が読みやすい形に整えられます。--index オプションが指定されている場合には、情報は Portfile からではなく PortIndex から引き出されます。(この場合、依存関係のような variant 情報は出力されません。)
使用例を以下に挙げます。
port info vim +ruby
port info --category --name apache*
port -q info --category --name --version category:java
port info --line --category --name all
port info --pretty --fullname --depends gtk2
port info --index python24
variants
portname のビルド時に指定可能な variants を一覧表示します。
deps
portname をビルド・実行するのに必要となる他の ports を一覧表示します。これは "info --pretty --fullname --depends" の単純な別名です。
dependents
portname に依存するインストール済みの ports を一覧表示します。
install
portname をインストールして activate の処理をおこないます。
uninstall
portname を deactivate し、アンインストールします。インストール済みの ports のうち、inactive なもの全てをアンインストールするには -u を使ってください。依存する全てのポートを再帰的にアンインストールするには、--follow-dependents を使ってください。
たとえば次のようにします。
port uninstall vim
port -u uninstall
port uninstall --follow-dependents python24
activate
インストール済みの portname を activate します。
deactivate
インストール済みの portname を deactivate します。
installed
インストール済みの ports を一覧表示します。
location
指定した port のインストール場所を表示します。
contents
portname によってインストールされたファイルを一覧表示します。
provides
指定したファイルを所有する port について調査します。ファイルは相対パスでも絶対パスでも構いません。たとえば以下のようにします。
port provides /opt/local/etc/irssi.conf
port provides include/tiff.h
sync
MacPorts の rsync サーバから最新の Portfiles を取得し、MacPorts のインストール物中にある ports ツリーのみを更新します。通常は以下のようにして使います。
sudo port -d sync
もし ports ツリーのいずれかで file: URL を使っており、それがローカルな subversion の作業コピーを指し示している場合、sync は作業コピー上で、作業コピーの所有者の権限で svn update をおこないます。
outdated
インストール済みの ports の中でアップグレードする必要のあるものを一覧表示します。
upgrade
upgrade ターゲットは port 本体、およびそれが依存する ports を 処理対象として動作します。もしこの挙動を変更したい場合には、以下に示す n (依存関係を辿らない) および R (依存するものを含める) のスイッチを使ってください。
インストール済みの portname をアップグレードします。
port upgrade vim
インストール済み ports を全てアップグレードする場合。
port upgrade installed
portname およびそれに依存する ports をアップグレードする場合。
port -R upgrade libiconv
強制的にアップグレード (リビルド) をおこなう場合。
port upgrade --force vim
依存関係を辿ることなく portname のみをアップグレードするには、-n を使います。
port -n upgrade wireshark
port のアップグレード時に使われる variants の選択についていうと、コマンドラインから指定された variants は最も高い優先度を持ち、次に最新のインストール済み port で使われている variants が、そして最後に variants.conf で指定されたグローバルな variants が、もしあれば用いられます。選択された variants が変更になっただけでは、upgrade は通常 port をリビルドしません。--enforce-variants を指定するか、port を deactivate してから別の variants にて再インストールしてください。
clean
portname をビルドする最中に利用されたファイルを掃除します。作業ファイルのみを削除するには、actionflag として --work を指定してください。これはフラグが指定されない場合のデフォルトの動作です。ソフトウェアの配布ファイル (ソースコードが含まれる tar ファイルなど) を 削除するには --dist を使います。現バージョンの port がアーカイブされたファイルを 削除するには --archive を渡します。作業ファイル、配布ファイル、アーカイブをまとめて 削除するには --all を使ってください。
port clean --dist vim
port clean --archive vim
指定したバージョンのアーカイブのみを削除したい場合には以下のように書くことができます。( version は UNIX における正しい glob パターンでなければなりません。)
port clean --archive vim 6.2.114
あるいは、このように書くこともできます。
port clean --archive vim '6.*'
echo
port に渡された引数を標準出力に書き出します。このとき疑似 port 名 pseudo-portnames、port 名の glob パターン、疑似 port 名セレクタ pseudo-portname selectors は展開され評価されます。echo を使うことで、引数として与えられた文字列によって、どのような ports がヒットするのかを調べることができます。
port echo category:net
port echo maintainer:jmpp and name:netw
port echo maintainer:jmpp and \( net* or category:text \)
list
引数が指定されずに呼ばれた場合には、すべての利用可能な ports の最新バージョンの一覧が表示されます。引数に portname(s) が与えられた場合には、指定されたそれぞれの port の最新バージョンの一覧が表示されます。
mirror
コマンドラインで指定した ports で使われる配布ファイルのローカルミラーを生成/更新します。--new オプションを指定することで、ファイルマップデータベースをリセットすることができます。(データベースが見つからない場合には自動的に生成されますが。)取得されたファイルが Portfile 中のチェックサムと合致しない場合には削除されます。疑似 port 名 pseudo-portnames と共に使うこともできます。たとえば、全てをミラーする場合には all とします。all を使う場合には、-p も指定しておくと良いでしょう。ダウンロードに失敗しても port コマンドが終了されなくなります。
version
インストール済みの MacPorts のリリース番号を表示します。
platform
現在利用しているシステムのプラットフォーム情報を表示します。
selfupdate
必要であれば、MacPorts のシステム、ports ツリー、およびベースとなるツール群を MacPorts の rsync サーバを使ってアップデートし、利用可能な最新のインフラをインストールします。アップグレードをおこなうには以下のようにしてください。
sudo port -d selfupdate
ports tree の更新に関する詳細に関しては、sync の項を参照してください。
load
port のデーモンを load する launchctl へのショートカットを提供します。以下のコマンドを実行します。
launchctl load -w /Library/LaunchDaemons/org.macports.${port}.plist
unload
launchctl へのショートカットです。load と似ていますが、デーモンを unload します。
gohome
指定された portname のホームページをデフォルトのウェブブラウザで表示します。
usage
利用方法の要約を表示します。
help
全ての利用可能なアクションと port のコマンドに関する文法を 標準出力に表示します。

[編集] 開発者向けのターゲット

port 開発者がよく使うターゲットには、port のビルドプロセスにおける個々のフェーズへアクセスするためのものが含まれます。
dir
portname が配置されているディレクトリパスを表示します。
work
portname の作業ディレクトリへのパスを表示します。
cd
カレントディレクトリを portname が配置されているディレクトリに変更します。対話モードでのみ有効です。
file
portname の Portfile へのパスを表示します。
url
与えられた portname のパスへの URL を表示します。これは port-url として用いることができます。
cat
Portfile の内容を標準出力に表示します。
edit
Portfile を、シェル環境変数で指定されたデフォルトのエディタで開きます。このコマンドの別名として ed が用意されています。
また、コマンドライン上で --editor フラグを用いることにより、別のエディタを指定することができます。たとえば以下のようにします。
port edit --editor nano apache2
ed
edit に対する別名です。
unarchive
プリビルトされたバイナリアーカイブから port を展開します。このコマンドはアーカイブモードが有効であれば、展開できるバイナリアーカイブが存在しないかどうかを確認するため fetch に先駆けて自動で呼び出されます。もしバイナリアーカイブが見つかれば展開され、install までの全ステージはスキップされます。
fetch
portname をビルドするのに必要となる、ソフトウェアのソース等が収められた配布ファイルを取得します。
checksum
portname の配布ファイルのチェックサムを計算し、Portfile 中に書かれたチェックサムと照合します。
extract
portname の配布ファイルを展開します。
patch
portname の展開された配布ファイルに対し、必要なパッチがあれば適用します。
configure
portname の configure プロセスを実行します。
build
portname をビルドします。
destroot
portname を一時ディレクトリにインストールします。
test
portname をテストします。
lint
portname の Portfile をベリファイ(検証)します。ホワイトスペースおよびパッチファイル名に関するチェックをおこなうには、--nitpick を指定してください。
archive
あとで unarchive できるように port をアーカイブとして保存します。アーカイブモードが有効であれば、install がおこなわれた後にバイナリアーカイブが自動で作成されます。archive ターゲットを明示的に呼び出した場合にもアーカイブは作成されます。
distcheck
配布ファイルが変更されておらず、取得可能かどうかをチェックします。
distfiles
各々の配布ファイル、そのチェックサム、および取得元の URL を表示します。
livecheck
Portfile が最後に更新された以後に ソフトウェアがアップデートされていないかどうかをチェックします。

[編集] パッケージ化に関するターゲット

ports をインストールできるパッケージの作成用ターゲットもあります。
pkg
portname の OS X インストーラ・パッケージを作成します。
mpkg
portname および依存関係にある ports の OS X インストーラ・メタパッケージを作成します。
dmg
portname の OS X パッケージを内包する、インターネット上にアップロード可能な形態のディスクイメージを作成します。
mdmg
portname および依存関係にある ports の OS X インストーラ・メタパッケージを内包する、インターネット上にアップロード可能な形態のディスクイメージを作成します。
rpm
portname の RPM バイナリパッケージを作成します。tgz の "archive" に似ています。
srpm
portname の SRPM ソースパッケージを作成します。xar の "portpkg" に似ています。
dpkg
portname の DEB バイナリパッケージを作成します。

[編集] 使用例

以下のデモでは、extract ターゲットとして portdir "textproc/figlet" を、extract.suffix として ".tgz" を指定した状態で port を呼び出しています。
port extract -D textproc/figlet extract.suffix=.tgz

[編集] 関連するファイル

${prefix}/etc/macports/macports.conf
MacPorts システムのグローバル設定ファイル。
${prefix}/etc/macports/sources.conf
MacPorts で利用される ports ツリーのリストを書きます。このファイルを用意することで rsync の同期が可能となります。
${prefix}/etc/macports/variants.conf
port をインストールする際に使われるグローバル変数。
~/.macports/macports.conf
MacPorts システムのユーザ設定ファイル。こちらに書かれた内容はグローバルな macports.conf ファイルに優先します。

[編集] 戻り値

port は成功すれば 0 を、エラーが発生した場合には >0 を返します。

[編集] 参考

macports.conf(5), portfile(7), portgroup(7), portstyle(7), porthier(7)

[編集] 作者

Landon Fuller <landonf@macports.org>
James Berry <jberry@macports.org>
Jordan K. Hubbard <jkh@macports.org>
Juan Manuel Palacios <jmpp@macports.org>
Kevin Van Vechten <kevin@opendarwin.org>
Ole Guldberg Jensen <olegb@opendarwin.org>
Robert Shaw <rshaw@opendarwin.org>
Chris Ridd <cjr@opendarwin.org>
Matt Anton <matt@opendarwin.org>
Joe Auty <joe@opendarwin.org>
BSD April 29, 2007 BSD