インストールされているパッケージを削除するには、pkg uninstall コマンドを使用します。
パッケージをアンインストールするときのコマンド出力はパッケージをインストールするときの出力に非常によく似ていて、たとえば、「Packages to install」の代わりに「Packages to remove」と表示されます。
Rejecting a Packageで説明されているように、pkg install コマンドの --reject オプションはインストール済みのパッケージを削除することもできます。
使用例 6 パッケージインストールの取り消しパッケージをアンインストールしても、そのパッケージの依存関係はアンインストールされません。依存関係を必要とするパッケージのみをアンインストールする場合でも、ユーザーは依存関係パッケージによって提供されるコンテンツを引き続き使用することができます。
パッケージのインストール操作を取り消して、インストール操作でインストールしたすべてのパッケージをアンインストールする場合は、pkg history コマンドを使用して、インストールされている正確な内容を確認します。詳細は、Viewing Operation Historyを参照してください。
次のコマンドでは、18 個の新しいパッケージがインストールされています。
$ pkg install -v amp Packages to install: 18 ... Changed packages: solaris database/mysql-55 None -> 5.5.43,5.11-0.175.3.0.0.30.0:20150821T162149Z database/mysql-common None -> 5.11,5.11-0.175.3.0.0.30.0:20150821T163446Z group/feature/amp None -> 0.5.11,5.11-0.175.3.0.0.30.0:20150821T165202Z system/library/security/libmcrypt None -> 2.5.8,5.11-0.175.3.0.0.30.0:20150821T172551Z text/tidy None -> 1.0.0,5.11-0.175.3.0.0.30.0:20150821T172736Z web/php-53 None -> 5.3.29,5.11-0.175.3.1.0.2.0:20150921T191759Z web/php-53/extension/php-apc None -> 3.1.9,5.11-0.175.3.1.0.2.0:20150921T191747Z web/php-53/extension/php-idn None -> 0.2.0,5.11-0.175.3.1.0.2.0:20150921T191749Z web/php-53/extension/php-memcache None -> 3.0.6,5.11-0.175.3.1.0.2.0:20150921T191750Z web/php-53/extension/php-mysql None -> 5.3.29,5.11-0.175.3.1.0.2.0:20150921T191751Z web/php-53/extension/php-pear None -> 5.3.29,5.11-0.175.3.1.0.2.0:20150921T191752Z web/php-53/extension/php-suhosin None -> 0.9.33,5.11-0.175.3.1.0.2.0:20150921T191754Z web/php-53/extension/php-tcpwrap None -> 1.1.3,5.11-0.175.3.1.0.2.0:20150921T191755Z web/php-53/extension/php-xdebug None -> 2.2.0,5.11-0.175.3.1.0.2.0:20150921T191756Z web/php-common None -> 11.1,5.11-0.175.3.0.0.30.0:20150821T173003Z web/server/apache-22/module/apache-dtrace None -> 0.3.1,5.11-0.175.3.0.0.30.0:20150821T173046Z web/server/apache-22/module/apache-fcgid None -> 2.3.9,5.11-0.175.3.0.0.30.0:20150821T173050Z web/server/apache-22/module/apache-php53 None -> 5.3.29,5.11-0.175.3.1.0.2.0:20150921T191828Z ...
次のコマンドは、amp パッケージのすべての依存関係のリストが、インストールされたパッケージのリストと一致しないことを示しています。amp の一部の依存はすでにインストールされていますが、インストールされている一部のパッケージは、amp の依存関係に依存します。
$ pkg contents -o type,fmri -t depend amp TYPE FMRI group web/server/apache-22 group web/server/apache-22/module/apache-dtrace group web/server/apache-22/module/apache-fcgid group web/php-53/extension/php-mysql group web/server/apache-22/module/apache-php53 group web/php-53/extension/php-apc group web/php-53 group database/mysql-55
元の pkg install 出力がない場合にこのインストールを取り消すには、履歴でインストールされているパッケージのリストを見つけます。短いリストを使用して目的のインストールコマンドを見つけてから、Viewing Operation Historyに示されているように、-l オプションを使用して、その時点でインストールされていた正確な内容を一覧表示します (-t)。リストは見出し「End State」の下の出力の末尾にあります。
$ pkg history -n 1 START OPERATION CLIENT OUTCOME 2016-10-14T07:05:53 install pkg Succeeded $ pkg history -lt 2016-10-14T07:05:53 Operation: install ... Command: /usr/bin/pkg install -v amp ... End State: None -> pkg://solaris/web/php-53@5.3.29,5.11-0.175.3.1.0.2.0:20150921T191759Z None -> pkg://solaris/group/feature/amp@0.5.11,5.11-0.175.3.0.0.30.0:20150821T165202Z None -> pkg://solaris/web/php-53/extension/php-tcpwrap@1.1.3,5.11-0.175.3.1.0.2.0:20150921T191755Z None -> pkg://solaris/web/php-53/extension/php-mysql@5.3.29,5.11-0.175.3.1.0.2.0:20150921T191751Z None -> pkg://solaris/web/server/apache-22/module/apache-php53@5.3.29,5.11-0.175.3.1.0.2.0:20150921T191828Z None -> pkg://solaris/web/server/apache-22/module/apache-dtrace@0.3.1,5.11-0.175.3.0.0.30.0:20150821T173046Z None -> pkg://solaris/web/php-53/extension/php-memcache@3.0.6,5.11-0.175.3.1.0.2.0:20150921T191750Z None -> pkg://solaris/web/php-common@11.1,5.11-0.175.3.0.0.30.0:20150821T173003Z None -> pkg://solaris/web/php-53/extension/php-xdebug@2.2.0,5.11-0.175.3.1.0.2.0:20150921T191756Z None -> pkg://solaris/database/mysql-55@5.5.43,5.11-0.175.3.0.0.30.0:20150821T162149Z None -> pkg://solaris/web/php-53/extension/php-suhosin@0.9.33,5.11-0.175.3.1.0.2.0:20150921T191754Z None -> pkg://solaris/system/library/security/libmcrypt@2.5.8,5.11-0.175.3.0.0.30.0:20150821T172551Z None -> pkg://solaris/database/mysql-common@5.11,5.11-0.175.3.0.0.30.0:20150821T163446Z None -> pkg://solaris/web/php-53/extension/php-apc@3.1.9,5.11-0.175.3.1.0.2.0:20150921T191747Z None -> pkg://solaris/web/php-53/extension/php-idn@0.2.0,5.11-0.175.3.1.0.2.0:20150921T191749Z None -> pkg://solaris/web/server/apache-22/module/apache-fcgid@2.3.9,5.11-0.175.3.0.0.30.0:20150821T173050Z None -> pkg://solaris/web/php-53/extension/php-pear@5.3.29,5.11-0.175.3.1.0.2.0:20150921T191752Z None -> pkg://solaris/text/tidy@1.0.0,5.11-0.175.3.0.0.30.0:20150821T172736Z使用例 7 アンインストールする複数のパッケージの指定
pkg uninstall コマンドに複数のパッケージを指定する場合、または -r などのオプションを指定して非大域ゾーンでこの操作を実行する場合は、そのイメージにインストールされていないパッケージをアンインストールしようとしている可能性があります。
現在インストールされていないパッケージをアンインストールしようとすると、pkg uninstall 操作はパッケージをアンインストールせずに終了します。
アンインストールするパッケージがそのイメージ内に存在していない場合は、そのパッケージ名に一致するパッケージがないというメッセージが表示されます。アンインストールする追加のパッケージがイメージ内に存在する場合、それらのパッケージがアンインストールされていないことを示すメッセージは表示されません。
指定されたパッケージのうちインストールされているものはすべてアンインストールし、指定されたパッケージのうちインストールされていないものに対してはこの操作をスキップするには、--ignore-missing オプションを使用します。--ignore-missing オプションは、アンインストールする一部のパッケージが現在インストールされていない場合に、インストールされていないパッケージを無視し、pkg uninstall が失敗するのを回避します。
次のコマンドでは、一部のゾーンに amp パッケージがインストールされていても、1 つのゾーンに amp がインストールされていない場合、パッケージはアンインストールされません。
$ pkg uninstall -r amp
次のコマンドでは、amp パッケージは、現在インストールされているすべてのゾーンからアンインストールされます。
$ pkg uninstall -r --ignore-missing amp使用例 8 別のパッケージが必要としているパッケージのアンインストール
インストールされている別のパッケージが必要としているパッケージをアンインストールしようとすると、失敗します。
たとえば、mysql-common パッケージをアンインストールしようとすると、次のエラーメッセージを受け取ります。
$ pkg uninstall mysql-common pkg uninstall: Unable to remove 'database/mysql-common@5.11-0.175.3.0.0.30.0' due to the following packages that depend on it: database/mysql-55@5.5.43-0.175.3.0.0.30.0
次の出力によって、mysql-common が mysql-55 に必要であることが確認されます。
$ pkg contents -o type,pkg.name -t depend -a fmri='*mysql-common*' '*mysql-55' TYPE PKG.NAME require database/mysql-55
mysql-common をアンインストールするには、mysql-common と mysql-55 を両方ともアンインストールする必要があります。単に mysql-55 をアンインストールしても、依存パッケージ mysql-common はアンインストールされないことに注意してください。
$ pkg uninstall mysql-common mysql-55使用例 9 group 依存関係であるパッケージのアンインストール
group 依存関係であるパッケージをアンインストールすると、そのパッケージは回避リストに登録されます。回避リストについては、Avoiding Installing Some Packages in a Group Packageを参照してください。
$ pkg avoid $ pkg uninstall mysql-55 ... $ pkg list mysql-55 pkg list: No packages matching 'mysql-55' installed $ pkg avoid database/mysql-55 (group dependency of 'group/feature/amp')