web-dev-qa-db-ja.com

FreeBSDのPortsコレクションからポートを1つだけダウンロードしてください

新しいFreeBSD11.2マシンでは、私の/usr/portsフォルダは空です。

ランニング:

portsnap fetch extract

…as ハンドブックで説明 結果として私の/usr/portsコンテンツのギグ付き。

Postgres データベースサーバーなど、 Ports Collection から1つだけ必要な場合、この膨大なダウンロードは、ネットワークトラフィック、ディスクスペース、および時間の不必要な浪費です。

➥インストールするポートを1つだけダウンロードする方法はありますか?

そうでない場合、Portsコレクションのサブセットを1つだけダウンロードする方法はありますか?たとえば、databasesサブコレクションだけを取得すると、最終的には/usr/ports/databases

1
Basil Bourque

extract

portsnapではできません。すでにスナップショットを作成している場合(すでにダウンロードしている場合)、extractポートツリーの一部のみを実行できます(portsnap extract databases/postgresql11-server)、 見る man portsnap

 path         For extract command only, operate only on parts of the ports                                                             

              tree starting with path.  (e.g. portsnap extract                                                                                  
              sysutils/port would extract sysutils/portsman,                                                                                    
              sysutils/portsnap, sysutils/portupgrade, etc.)

svn

これらの大きなファイルをフェッチしたくない場合は、svnの代わりにportsnapを使用できます。

svn checkout https://svn.freebsd.org/ports/head/databases/postgresql11-server

ハンドブックの関連部分 を参照してください。

svnは基本システムの一部です(/usr/bin/svnlite-エイリアスを使用するか、svnsvnlite)に置き換えることができるため、インストールする必要はありません devel/Subversion

1
uzsolt

はい、それは簡単です。あなたが見ているのはハンドブックのまさにその章にあります。

ポートツリーをインストールする必要があります。ハンドブックでその方法が説明されています。 portsnapと、ソース管理からツリー(またはパッケージ間の依存関係がこれに反するものの、その一部)をチェックアウトする2つの方法があります。 (PC-BSD/TrueOSユーザーはSubversionの代わりにgitを使用します。)

目的のポート/パッケージの個々のディレクトリに移動し、make fetchを実行してソースアーカイブをフェッチし、make extractを実行してコンテンツを抽出します。最終的には、ポートツリースケルトンが作成され、そのポートのファイルのみが存在します。

Handbookが§4.5.1.1で説明しているように、フェッチは/usr/ports/databasesなどのより高いレベルで実行することもできます。

0
JdeBP