EN JA
PORTSNAP(8)
PORTSNAP(8) FreeBSD System Manager's Manual PORTSNAP(8)

名称

portsnapports ツリーの圧縮されたスナップショットを取って来て (fetch) 抽出 (extract) する

書式

portsnap [ -I][ -d workdir][ -f conffile][ -k KEY][ -l descfile][ -p portsdir][ -s server] command ... [ path]

解説

portsnap ツールは、 FreeBSD ports ツリーの圧縮されたスナップショットを取って来て更新するため、そして、圧縮されていない ports ツリーを抽出して更新するために使用されます。

通常の更新操作では、 portsnap は、定期的に変更されたファイルを変更されていない状態に復元して、認識されないローカルファイルを削除します。

オプション

次のオプションがサポートされています:
-d workdir
作業ファイル (例えば、ダウンロードされた更新) を workdir に格納します。 (デフォルト: /var/db/portsnap または設定ファイルで与えられる。)
-f conffile
conffile から設定を読み込みます。 (デフォルト: /etc/portsnap.conf)
-I
update コマンドのために、INDEX ファイルを更新しますが、ports ツリーの残りではありません。
-k KEY
与えられた SHA256 ハッシュがある公開キーを要求します。 (デフォルト: 設定ファイルから値を読み込みます。)
-l descfile
指定されたローカル記述ファイルを構築された INDEX ファイルにマージ (統合) します。 descfile は、それぞれのローカル port ディレクトリで make describe を実行することによって生成されるべきです。
-p portsdir
圧縮されていないスナップショットを抽出するか、または更新するとき、ディレクトリ portsdir を作動します。 (デフォルト: /usr/ports/ または設定ファイルで与えられる。)
-s server
指定されたサーバまたはサーバプールからのファイルを取って来ます。 (デフォルト: portsnap.FreeBSD.org、または設定ファイルで与えられる。)
path
extract コマンドだけのために、 path から始まる ports ツリーの部分だけを作動させます。 (例えば、 portsnap extract sysutils/port は、sysutils/portsman, sysutils/portsnap, sysutils/portupgrade, などを抽出します。)
- -interactive
呼び出しているプロセスの自動検出を上書きします。 対話型 で終了しないアプリケーションから portsnap を呼び出すときのみ、これを使用します。 (それらが Portsnap ミラーでロードスパイク (load spike) を引き起こすので、クーロンのジョブは、特に良くありません。)

コマンド

command は、次のいずれかの 1 つを指定できます:
fetch
ports ツリーの圧縮されたスナップショットを取って来るか、または既存のスナップショットを更新します。このコマンドは、インタラクティブのみに使用されるべきです。非対話的な使用のために、利用者は、 cron コマンドを使用するべきです。
cron
1 と 3600 秒の間のランダムな時間スリープし、 fetch コマンドが指定されたかのように動作します。名前が示すように、このコマンドは、 cron(8) から実行するように設計されています。ランダムな遅れは、多くのマシンが、同時に更新を取って来る試みの確率を最小にすることに役立ちます。
extract
既存のファイルとディレクトリを置き換えて、ports ツリーを抽出します。注: これは、ファイルまたはディレクトリが抽出されている位置を占領するものは何でも取り除きます。特に、ports ツリーに局所的に行われた変更 (例えば、新しいパッチを加える) は、静かに消し去られます。

完全に変更されていないツリーを clean にしてやり直したいなら、または ( path オプションを使用して) ツリーの特定の部分を抽出したいなら、このコマンドを単に走らせて、初めて portsnap によって維持された ports ツリーを初期化します。

update
extract コマンドを使用して、抽出された ports ツリーを更新します。利用者は、 fetch または cron コマンドを通して更新するダウンロードした後の ports ツリーへの変化を適用するためにこのコマンドを実行しなければなりません。再び、更新されている ports ツリーの部分では、どんな局所的な変更や追加も取り除かれることに注意してください。

TIPS (秘訣)

  • 利用者のクロックがローカル時間に設定されているなら、 /etc/crontab に行

    0 3 * * * root /usr/sbin/portsnap cron

    を追加することは、 /usr/ports にすばやく抽出することができる利用可能な ports ツリーのスナップショットを常に最新の保つ良い方法です。利用者のクロックが UTC に設定されるなら、スナップショットをホスティングするサーバで一様でない負荷を過度に強制することを避けるために、午前 3 時以外のランダムな時間を選んでください。

    portsnap cron または portsnap fetch を実行することは、受信された変更を適用しないことに注意してください: それらは、単にそれらをダウンロードします。変更を適用するために、利用者は、 portsnap update で、これらのコマンドに続かなければなりません。 portsnap update コマンドは、ports ツリーで誰も手動で作業していないと確信された時期に、通常手動で実行されます。

  • cron(8) から portsnap update を実行することは、悪い考えです -- 利用者がかって cron ジョブを実行する時間に port をインストールするか更新するなら、利用者は、 portsnap が port を構築することによって使用されているファイルを更新するか、または削除するとき、たぶん混乱して終わるでしょう。しかしながら、 portsnap -I update を実行することは、たぶん安全であり、期限が切れたインストールされたソフトウェアを識別するために portversion(1) と共に使用することができます。
  • 利用者が、多くのマシンを最新の状態に保持するために portsnap を使用したいなら、キャッシュしている HTTP プロキシをセットアップしたいかもしれません。 portsnap がダウンロードして更新するために fetch(1) を使用するので、 HTTP_PROXY 環境変数を設定することは、与えられたプロキシから更新を取って来るようにそれに指示します。ファイルの大部分がすべての特定のクライアントによっても必要とされないので、これは、portsnap サーバのファイルを ミラーリング するよりはるかに効率的です。

プライバシの注

操作の避けられない部分として、 portsnap を実行するマシンは、公開 IP アドレスとそれが取って来るファイルのリストを更新を取って来るサーバで利用可能とします。これらを使用して、延長された期間を越えてマシンを認識し、更新するときを決定して、 FreeBSD ports ツリーの部分が、もしあるなら portsnap.conf の "REFUSE"指示を使用して無視されることを識別することが可能です。さらに、FreeBSD のリリースレベルがサーバに転送されます。

このように集められた情報から生成された統計データが公開されるかもしれませんが、全体として、個々のシステムが匿名にされた後だけです。

関連ファイル

/etc/portsnap.conf
portsnap 設定ファイルのデフォルト位置。
/var/db/portsnap
圧縮されたスナップショットが格納されるデフォルト位置。
/usr/ports
ports ツリーが抽出されるデフォルト位置。

作者

Colin Percival <cperciva@FreeBSD.org>
October 14, 2012 FreeBSD