FreeBSDでmake package-recursiveを呼び出すときにPKGREPOSITORYを再帰的に適用する方法は?

FreeBSDでmake package-recursiveを呼び出すときにPKGREPOSITORYを再帰的に適用する方法は?

Apacheとその依存関係のためのパッケージを作成しようとしています。

sudo make package-recursive \
__MAKE_CONF=~/make.apache22.conf \
PKGREPSOITORY=/usr/home/gvkv

すべてがうまくいきます。 Apacheとその依存関係はコンパイルされインストールされ、apache22.tbz問題gvkvは依存関係パッケージの両方が独自のディレクトリports/<package>に構築されることです。そのうち約15個があり、1行のコードで簡単に検索できますが、find依存perlパッケージmakegvkv

答え1

FreeBSDを使用する楽しみの1つは、ポートサブシステムを使用することです。多くの点で良いです。 FreeBSDエコシステム内でのインストールとアップグレードは簡単ですが、他の点では悪いです。make設定ファイルまたは環境を介した変数設定が期待どおりに機能しないか、広告どおりに機能しません。

それにもかかわらず、デス卿きちんとした小さなトリックで救助に来てください。

mount -t nullfs /directory/for/pkgs /usr/ports/packages

これは、環境変数の使用を迂回し、ターゲットディレクトリを目的の場所に設定できるため、本当に良い方法です。これは、(私のように)Build Jailを使用して他のシステムまたは別のJailにインストールされるパッケージを作成する場合に非常に便利です。

その/usr/ports/packagesディレクトリは、PACKAGES存在する場合は指す場所であり、他の場所を指すことができると言いますが、私には機能しません。このページmanで指定された設定は、PKGREPOSITORY単一のパッケージをビルドする場合にのみ有効です。

答え2

PKGREPOSITORYがPACKAGESに依存することを読んだ。

でPACKAGESを設定できます/etc/make.conf。たとえば、

DISTDIR= /opt/portbuild/distfiles
PACKAGES=/opt/portbuild/packages

関連情報