pkg_delete(1) FreeBSD 一般コマンドマニュアル

pkg_delete

前のページ 上に戻る 次のページ

pkg_delete


     pkg_delete [-dDfGinvx] [-p prefix] pkg-name ...
     pkg_delete -a [flags]


解説

     pkg_delete コマンドは、 pkg_add(1) コマンドにより既にインストールされてい
     る package (訳注: FreeBSD の package system におけるパッケージを指す場合
     にこう表記します) を削除するために用いられます。


警告

     pkg_delete コマンドは package ファイルにより提供されるスクリプトやプログ
     ラムを実行することがあるので、あなたのシステムは、危険な配布ファイルを作
     る極悪人からの ``トロイの木馬'' や他の巧妙な攻撃などを受ける可能性があり
     ます。

     package ファイルを提供する人物の能力と身元を確認するとよいでしょう。より
     進んだ安全のためには、package 記録ディレクトリ (/var/db/pkg/<pkg-name>/)
     にあるすべての package 制御ファイルを確認します。 +INSTALL, +POST-
     INSTALL, +DEINSTALL, +POST-DEINSTALL, +REQUIRE, +MTREE_DIRS の各ファイル
     には特に注意を払い、+CONTENTS ファイルの @cwd, @mode (setuid をチェック),
     @dirrm, @exec, @unexec ディレクティブを調べてください。インストールされて
     いる package 制御ファイルを調べるのには pkg_info(1) コマンドも使えます。


オプション

     以下のコマンドラインオプションが提供されています:

     pkg-name ...
             指定された package がアンインストールされます。

     -a      無条件に、現在インストール済の package をすべて削除します。

     -i      各 package の削除前に、確認を求めます。これは、標準入力デバイスが
             端末かどうかに関係ありません。

     -v      饒舌な出力に切り替えます。

     -D      package にアンインストール用スクリプトが存在しても、それを実行し
             ません。

     -n      実際にはアンインストールは行わず、アンインストールした場合に実行
             されるであろうステップを表示します。

     -p prefix
             インストールされている package が明示的にディレクトリを設定してい
             ない場合に、削除するファイルの前に prefix をディレクトリとして付
             け加えます。ほとんどの package では、このディレクトリは
             pkg_add(1) によってインストールされた場所に自動的に設定されます。

     -d      ファイル削除により生じた空のディレクトリを削除します。デフォルト
             では、package の内容一覧に明示的に羅列されたファイル/ディレクトリ
             (通常のファイル/ディレクトリか @dirrm ディレクトリを伴ったもの)
             のみがアンインストール時に削除されます。このオプションにより
             pkg_delete は package を削除することにより生ずる空ディレクトリも


技術詳細

     pkg_delete は名前の通りに働きます。 pkg_delete/var/db/pkg/<pkg-name>
     に記録されたインストール済みの package をチェックし、 package の内容を削
     除し、最後に package の記録も削除します。環境変数 PKG_DBDIR が設定されて
     いる場合には、前記パス /var/db/pkg/ にこれが優先します。

     ある package が他のインストール済みの package から必要とされている場合、
     pkg_delete はそれらの依存している package の一覧を表示し、package の削除
     は行いません (ただし -f オプションが指定された場合を除く)。

     package が require ファイル( pkg_create(1) を参照)を含んでいる場合、まず
     そのファイルを以下の引数を付けて実行し、アンインストール作業を続けるべき
     かどうかを確かめます:
           require <pkg-name> DEINSTALL
     (ここで pkg-name は問題としている package の名前であり、 DEINSTALL はこれ
     がアンインストールであることを示すキーワードです) 終了ステータスが 0 以外
     の場合には、 -f オプションが指定されていない限りアンインストールを中断し
     ます。

     package に deinstall スクリプトが含まれている場合、そのスクリプトはファイ
     ルが削除される前に実行されます。 pkg_delete はオリジナルの package に含ま
     れていたファイルを削除することしか関知しないので、 package のインストール
     にまつわる雑多な事項をきれいに片づけるのはこの deinstall スクリプトの責任
     です。 deinstall スクリプトは以下の引数を付けて実行されます:
           script <pkg-name> DEINSTALL
     ここで、 pkg-name は対象の package 名であり、 DEINSTALL はこれがアンイン
     ストール前のフェーズであることを示すキーワードです。

     B>注: ( -k および -K のフラグを pkg_create(1) に使用することにより) package
     作成時に deinstall と post-deinstall のスクリプトが別々に与えられる場合に
     は、 DEINSTALL キーワードは登場しません。

     post-deinstall スクリプトが package に対して存在する場合、全ファイルが削
     除された B>後で実行されます。 package のインストールに際する更なる細々とし
     たことを片づけ、 (願わくば) package インストール前と同じシステム状態に戻
     すことは、このスクリプトの責任です。

     post-deinstall は次のように呼び出されます:
           script <pkg-name> POST-DEINSTALL
     ここで pkg-name は対象の package 名であり、 POST-DEINSTALL はこれがアンイ
     ンストール後のフェーズであることを示すキーワードです。

     B>注: ( -k および -K のフラグを pkg_create(1) に使用することにより) package
     作成時に deinstall と post-deinstall のスクリプトが別々に与えられる場合に
     は、 POST-DEINSTALL キーワードは登場しません。

     POST-DEINSTALL および PRE-DEINSTALL のキーワードを渡す背景には、インスト
     ールと削除のすべてを扱うことができる単一のプログラム/スクリプトを記述可能
     にすることがあります。

     しかしながら、この方法はメンテナンスがかなり難しく、インストールおよびア
     /var/db/pkg  インストール済み package のデーバベースのデフォルトの位置。


関連項目

     pkg_add(1), pkg_create(1), pkg_info(1), pkg_version(1), mktemp(3),
     mtree(8)


作者

     Jordan Hubbard


協力者

     John Kohl <jtk@rational.com>


バグ

     まだあるはずです。

FreeBSD 4.4                    November 25, 1994                   FreeBSD 4.4

ABELNET VPSサービス