はじめに

portsをmakeする際、portsによってはユーザにメニュー形式でmake時のoptionsを指定させるものがあります。

シェルスクリプト等で複数のportsを一気にビルドする際、このようなportsがバッチ処理中に含まれていると、メニューの表示によりバッチビルドの途中で妨げられるため、予めそのportsに対して「make config」を行い、optionsを設定するのが有効です。

しかしながら「make config」は、実行対象のportsに対してのみ有効で、そのportsと依存関係にあるportsに対しては「make config」は行われません。
このため、依存関係でインストールされるportsが、メニュー形式でのoptionsの指定を要求する場合、一連のバッチビルドが妨げられてしまいます。

このページでは、この問題を回避する方法について説明します。

「make config-recursive」の利用

上記の問題を解決するためには、portsの依存関係を辿って、依存関係のある全てのportsに対して「make config」すればよいのですが、そのものずばりの機能が「make config-recursive」として提供されています。

「make config」の代わりに「make config-recursive」を利用することにより、依存関係のある全てのportsに対して「make config」が実行されます。(「recursive」は「帰納」の意味です)

依存関係のある全てのportsを「make config」する方法
$ make config-recursive

尚、「make config-recursive」の他にも、依存関係を辿って処理を行うmakeのターゲットが用意されています。
詳しくは、展開されたports内にある「/usr/ports/Mk/bsd.port.mk」の内容をご確認ください。

options再設定時の注意

「make config」では、既にoptionsが設定済みの場合でも、再度「make config」を実行すると、メニュー形式によるoptionsの再指定ができるようになっています。
しかしながら、「make config-recursive」では、設定済みのoptionsがあると、としてメニューは表示されず、再指定が行えません。

「make config-recursive」で、設定済みのoptionsを再設定する場合には、下記の手順で設定済みのoptionsを全て削除してから再度実行してください。

設定済みのoptionsを全削除する方法
$ cd /var/db/ports
$ rm -R *


あなたの探し物は見つかりましたか?
まさにこれだ
参考になった
ちょっと違う
これじゃない

何かメッセージがあればお願いします

このメッセージを非公開にする

ご注意

・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。


まさにこれだ
9 (90%)
参考になった
1 (10%)

表示できるメッセージはありません。