指定したパッケージが group 依存関係のターゲットである場合に、それらのインストールを回避するには、pkg avoid コマンドを使用します。回避リストに含まれているパッケージでも、イメージとの互換性があるパッケージはいつでも明示的にインストールできます。回避リストに含まれているパッケージをインストールすると、そのパッケージは回避リストから削除されます。pkg avoid コマンドを使用すると、グループパッケージをインストールするときに、そのグループパッケージに含まれている指定したパッケージのインストールを回避できます。
引数を使用しない場合、pkg avoid コマンドは、回避される各パッケージとそのパッケージへのグループ依存関係のあるすべてのパッケージを表示します。
パッケージを指定した場合、pkg avoid コマンドは、指定されたパターンに現在一致するパッケージ名を回避リストに配置します。現在インストールされていないパッケージのみを回避できます。パッケージが現在グループ依存関係のターゲットである場合、パッケージをアンインストールするとそのパッケージは回避リストに登録されます。
回避リストに登録されているパッケージは、require 依存関係を満たすために必要であればインストールされ、したがって回避リストから削除されます。その require 依存関係が削除されると、パッケージはアンインストールされて回避リストにふたたび配置されます。
指定したパッケージを回避リストから明示的に削除する場合は、pkg unavoid コマンドを使用します。
回避リストに登録されており、インストール済みパッケージのグループ依存関係に一致するパッケージは、unavoid サブコマンドを使用して回避リストから削除できません。グループ依存性に一致するパッケージを回避リストから削除するには、パッケージをインストールします。
使用例 5-5 回避リストへのパッケージの追加と回避リストからのパッケージの削除次のコマンド出力は、group/feature/amp グループパッケージがインストールされていないことを示しています。グループパッケージの一部であるパッケージの一部は、明示的に、またはほかのパッケージの require 依存関係としてインストールされたため、インストールされています。指定されたパッケージはインストールされていないため、pkg contents コマンドに -r オプションを使用します。
$ pkg list -a group/feature/amp NAME (PUBLISHER) VERSION IFO group/feature/amp 0.5.11-0.175.2.0.0.33.0 --- $ pkg list -a `pkg contents -o fmri -Hrt depend -a type=group group/feature/amp` NAME (PUBLISHER) VERSION IFO database/mysql-51 5.1.37-0.175.2.0.0.34.0 --- web/php-52 5.2.17-0.175.2.0.0.34.0 i-- web/php-52/extension/php-apc 3.0.19-0.175.2.0.0.34.0 i-- web/php-52/extension/php-mysql 5.2.17-0.175.2.0.0.34.0 i-- web/server/apache-22 2.2.26-0.175.2.0.0.34.0 i-- web/server/apache-22/module/apache-dtrace 0.3.1-0.175.2.0.0.34.0 --- web/server/apache-22/module/apache-fcgid 2.3.9-0.175.2.0.0.34.0 --- web/server/apache-22/module/apache-php5 5.2.17-0.175.1.0.0.18 --r
次のコマンドは、まだインストールされておらずこのグループパッケージに属するパッケージの 1 つを回避リストに配置します。このグループパッケージはインストールされていないため、回避リストにグループパッケージは示されません。
$ pkg avoid apache-fcgid $ pkg avoid web/server/apache-22/module/apache-fcgid
次のコマンドは、回避されたパッケージがグループパッケージのインストール時にインストールされないことを示しています。指定されたパッケージがインストール済みであるため、pkg contents コマンドで -r オプションは使用されません。
$ pkg install group/feature/amp $ pkg list -a `pkg contents -o fmri -Ht depend -a type=group group/feature/amp` NAME (PUBLISHER) VERSION IFO database/mysql-51 5.1.37-0.175.2.0.0.34.0 i-- web/php-52 5.2.17-0.175.2.0.0.34.0 i-- web/php-52/extension/php-apc 3.0.19-0.175.2.0.0.34.0 i-- web/php-52/extension/php-mysql 5.2.17-0.175.2.0.0.34.0 i-- web/server/apache-22 2.2.26-0.175.2.0.0.34.0 i-- web/server/apache-22/module/apache-dtrace 0.3.1-0.175.2.0.0.34.0 i-- web/server/apache-22/module/apache-fcgid 2.3.9-0.175.2.0.0.34.0 --- web/server/apache-22/module/apache-php5 5.2.17-0.175.1.0.0.18 i-r
グループパッケージのインストール後は、回避リストにグループパッケージが示されます。
$ pkg avoid web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')
インストール済みのグループパッケージに含まれているパッケージは、pkg unavoid コマンドによって回避リストから削除されることはありません。そのようなパッケージを回避リストから削除するには、そのパッケージをインストールします。
$ pkg unavoid apache-fcgid pkg unavoid: The following packages are a target of group dependencies; use install to unavoid these: web/server/apache-22/module/apache-fcgid $ pkg install apache-fcgid $ pkg avoid $
パッケージがすでにインストールされている場合、そのパッケージを回避リストに登録することはできません。パッケージをアンインストールすると、パッケージが回避リストに登録されます。
$ pkg avoid apache-fcgid pkg avoid: The following packages are already installed in this image; use uninstall to avoid these: web/server/apache-22/module/apache-fcgid $ pkg uninstall apache-fcgid $ pkg avoid web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')
グループパッケージに含まれているパッケージをアンインストールすると、そのパッケージは自動的に回避リストに登録されます。
$ pkg uninstall database/mysql-51 $ pkg avoid database/mysql-51 (group dependency of 'group/feature/amp') web/server/apache-22/module/apache-fcgid (group dependency of 'group/feature/amp')
グループパッケージをアンインストールすると、回避されたパッケージは回避リストに残りますが、グループパッケージとの関連は回避リストに示されなくなります。
$ pkg uninstall group/feature/amp $ pkg avoid database/mysql-51 web/server/apache-22/module/apache-fcgid $ pkg unavoid database/mysql-51 apache-fcgid $ pkg avoid $