インストールされているパッケージを削除するには、pkg uninstall コマンドを使用します。
パッケージをアンインストールするときのコマンド出力はパッケージをインストールするときの出力に非常によく似ていて、たとえば、「Packages to install」の代わりに「Packages to remove」と表示されます。
パッケージの拒否で説明されているように、pkg install コマンドの --reject オプションはインストール済みのパッケージを削除することもできます。
パッケージをアンインストールすると、使用できない優先パスの設定: 結果と回復に記載されているように、メディエーションされたリンクが削除される可能性があります。メディエーションされたリンクが削除されるかどうかを確認するには、-nv または -nvv オプションを使用します。
ファイルを提供するパッケージがアンインストールされるときに特定の属性を持つファイルアクションがどのように処理されるかについては、Oracle Solaris 12 でのImage Packaging System を使用したソフトウェアのパッケージ化と配布 の File Actionsまたは pkg(7) のマニュアルページを参照してください。
使用例 6 パッケージインストールの取り消しパッケージをアンインストールしても、そのパッケージの依存関係はアンインストールされません。依存関係を必要とするパッケージのみをアンインストールする場合でも、ユーザーは依存関係パッケージによって提供されるコンテンツを引き続き使用することができます。
パッケージのインストール操作を取り消して、インストール操作でインストールしたすべてのパッケージをアンインストールする場合は、pkg history コマンドを使用して、インストールされている正確な内容を確認します。詳細は、操作履歴の表示を参照してください。
パッケージインストールのプレビューに示す例では、4 つのパッケージがインストールされていました。ところが、次のコマンドは、コマンド行に名前を示すパッケージのみが uninstall によって削除されることを示しています。
$ pkg uninstall -v oracle-rdbms-server-18c-preinstall Packages to remove: 1 Estimated space available: 852.20 GB Estimated space to be consumed: 455.25 MB Rebuild boot archive: No Changed packages: solaris group/prerequisite/oracle/oracle-rdbms-server-18c-preinstall 11.4-11.4.0.0.1.10.0 -> None ...
pkg list コマンドによれば、インストールされていたほかの 3 つのパッケージはまだインストールされていることを示しています。
$ pkg -R /mnt list oracle-rdbms-server-18c-preinstall system/kernel/oracka \ x11/diagnostic/x11-info-clients x11/library/libdmx NAME (PUBLISHER) VERSION IFO system/kernel/oracka 11.4-11.4.0.0.1.10.1 i-- x11/diagnostic/x11-info-clients 7.7-11.4.0.0.1.10.0 i-- x11/library/libdmx 1.1.3-11.4.0.0.1.10.0 i-- pkg list: no packages matching the following patterns are installed: oracle-rdbms-server-18c-preinstall
元の pkg install 出力がない場合にこのインストールを取り消すには、履歴でインストールされているパッケージのリストを見つけます。短いリストを使用して目的のインストールコマンドを見つけてから、操作履歴の表示に示されているように、-l オプションを使用して、その時点でインストールされていた正確な内容を一覧表示します (-t)。リストは見出し「End State」の下の出力の末尾にあります。
$ pkg history -n 1 START OPERATION CLIENT OUTCOME 2018-08-06T12:36:43 install pkg Succeeded $ pkg history -lt 2018-08-06T12:36:43 Operation: install ... Command: /usr/bin/pkg install --be-name rdbms oracle-rdbms-server-18c-preinstall ... End State: None -> pkg://solaris/x11/diagnostic/x11-info-clients@7.7,5.11-11.4.0.0.1.10.0:20180702T172622Z None -> pkg://solaris/group/prerequisite/oracle/oracle-rdbms-server-18c-preinstall@11.4,5.11-11.4.0.0.1.10.0:20180702T172914Z None -> pkg://solaris/system/kernel/oracka@11.4,5.11-11.4.0.0.1.10.1:20180702T144645Z None -> pkg://solaris/x11/library/libdmx@1.1.3,5.11-11.4.0.0.1.10.0:20180702T172638Z使用例 7 アンインストールする複数のパッケージの指定
pkg uninstall コマンドに複数のパッケージを指定する場合、または -r などのオプションを指定して非大域ゾーンでこの操作を実行する場合は、そのイメージにインストールされていないパッケージをアンインストールしようとしている可能性があります。
現在インストールされていないパッケージをアンインストールしようとすると、pkg uninstall 操作はパッケージをアンインストールせずに終了します。
アンインストールするパッケージがそのイメージ内に存在していない場合は、そのパッケージ名に一致するパッケージがないというメッセージが表示されます。アンインストールする追加のパッケージがイメージ内に存在する場合、それらのパッケージがアンインストールされていないことを示すメッセージは表示されません。
指定されたパッケージのうちインストールされているものはすべてアンインストールし、指定されたパッケージのうちインストールされていないものに対してはこの操作をスキップするには、--ignore-missing オプションを使用します。--ignore-missing オプションは、アンインストールする一部のパッケージが現在インストールされていない場合に、インストールされていないパッケージを無視し、pkg uninstall が失敗するのを回避します。
次のコマンドでは、一部のゾーンに git パッケージがインストールされていても、1 つのゾーンに git がインストールされていない場合、パッケージはアンインストールされません。
$ pkg uninstall -r git
次のコマンドでは、git パッケージは、現在インストールされているすべてのゾーンからアンインストールされます。
$ pkg uninstall -r --ignore-missing git使用例 8 別のパッケージが必要としているパッケージのアンインストール
インストールされている別のパッケージが必要としているパッケージをアンインストールしようとすると、失敗します。
たとえば、x11-info-clients パッケージがまだインストールされている状態で libdmx パッケージをアンインストールしようとすると、次のエラーメッセージを受け取ります。
$ pkg uninstall libdmx pkg uninstall: Unable to remove 'x11/library/libdmx@1.1.3-11.4.0.0.1.10.0' due to the following packages that depend on it: x11/diagnostic/x11-info-clients@7.7-11.4.0.0.1.10.0
libdmx をアンインストールするには、libdmx および x11-info-clients の両方をアンインストールする必要があります。単に x11-info-clients をアンインストールしても、依存パッケージ libdmx はアンインストールされないことに注意してください。
$ pkg uninstall x11-info-clients libdmx使用例 9 group 依存関係であるパッケージのアンインストール
group 依存関係であるパッケージをアンインストールすると、そのパッケージは回避リストに登録されます。回避リストについては、グループパッケージに含まれる一部のパッケージのインストールの回避を参照してください。
$ pkg avoid $ pkg uninstall mysql-56 ... $ pkg list mysql-56 pkg list: no packages matching the following patterns are installed: mysql-56 $ pkg avoid database/mysql-56 (group dependency of 'group/feature/amp')