インストールされているパッケージを削除するには、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')