portsをmakeする際、portsによってはユーザにメニュー形式でmake時のoptionsを指定させるものがあります。
シェルスクリプト等で複数のportsを一気にビルドする際、このようなportsがバッチ処理中に含まれていると、メニューの表示によりバッチビルドの途中で妨げられるため、予めそのportsに対して「make config」を行い、optionsを設定するのが有効です。
しかしながら「make config」は、実行対象のportsに対してのみ有効で、そのportsと依存関係にあるportsに対しては「make config」は行われません。
このため、依存関係でインストールされるportsが、メニュー形式でのoptionsの指定を要求する場合、一連のバッチビルドが妨げられてしまいます。
このページでは、この問題を回避する方法について説明します。
上記の問題を解決するためには、portsの依存関係を辿って、依存関係のある全てのportsに対して「make config」すればよいのですが、そのものずばりの機能が「make config-recursive」として提供されています。
「make config」の代わりに「make config-recursive」を利用することにより、依存関係のある全てのportsに対して「make config」が実行されます。(「recursive」は「帰納」の意味です)
$ make config-recursive
尚、「make config-recursive」の他にも、依存関係を辿って処理を行うmakeのターゲットが用意されています。
詳しくは、展開されたports内にある「/usr/ports/Mk/bsd.port.mk」の内容をご確認ください。
「make config」では、既にoptionsが設定済みの場合でも、再度「make config」を実行すると、メニュー形式によるoptionsの再指定ができるようになっています。
しかしながら、「make config-recursive」では、設定済みのoptionsがあると、としてメニューは表示されず、再指定が行えません。
「make config-recursive」で、設定済みのoptionsを再設定する場合には、下記の手順で設定済みのoptionsを全て削除してから再度実行してください。
$ cd /var/db/ports $ rm -R *
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。