web-dev-qa-db-ja.com

FreeBSDでmakepackage-recursiveを呼び出すときに、PKGREPOSITORYを再帰的に適用するにはどうすればよいですか?

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

Sudo make package-recursive \
__MAKE_CONF=~/make.Apache22.conf \
PKGREPSOITORY=/usr/home/gvkv

すべてが正常に機能します。 Apacheとその依存関係はコンパイルおよびインストールされ、Apache22.tbzgvkvにあります。問題は、依存関係パッケージがそれぞれのports/<package>ディレクトリに構築されていることです。それらは約15個あり、findPerlワンライナーを使用して取得するのは簡単ですが、makeに実行するように指示する方法が必要です。依存関係パッケージが最終的にgvkvになるような環境。

3
gvkv

FreeBSDを使用する楽しみの一部は、portsサブシステムを扱うことです。 FreeBSDエコシステム内でのインストールとアップグレードは簡単ですが、他の方法では不十分ですが、make構成ファイルまたは環境を介した変数の設定は、期待どおりに、または宣伝どおりに機能しないなど、多くの点で優れています。

それにもかかわらず、 SirDice は巧妙な小さなトリックで救助に来ました:

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

これは、環境変数の使用をバイパスし、必要な場所に宛先ディレクトリを設定できるため、非常に便利です。 (私のように)「build-jail」を使用して、さまざまなシステムや他のjailにインストールされるパッケージを作成している場合に非常に役立ちます。

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

1
gvkv

PKGREPOSITORYはパッケージに依存していることを読みました。

PACKAGESは/etc/make.confで設定できます。例えば:

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