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