注意: # や % の意味が分からない人は 用語 を参照してください。
特定のパッケージを削除したい場合、 そのパッケージのディレクトリで
# make deinstallを実行して下さい。
依存関係のあるパッケージを削除したい場合は、 そのパッケージのディレクトリで
# make deinstall DEINSTALLDEPENDS=yesもしくは
# /usr/pkg/sbin/pkg_delete -K /var/db/pkg -r -R パッケージ名 自動でやりたい場合 # /usr/pkg/sbin/pkg_delete -K /var/db/pkg -r -R `make show-var VARNAME=PKGNAME`を実行して下さい ( 詳しくは後述 )。
たいていは、 自動監査 からみですが、特定のパッケージだけでなく、 依存関係のあるものすべてを削除する必要があることが”よく”あります。
毎日 「自動監査システム」 がセキュリティホール一覧を教えてくれます。
たとえば、毎月のように「openssl 祭り」が発生します。 無数のパッケージが openssl ライブラリに頼っているので、 openssl ライブラリを入れ換える場合、 たくさんのパッケージを再コンパイルする必要があります。
(再コンパイルが面倒というなら) いちおう「ライブラリ」だけを入れ換えることもできます。 その場合 make replace という命令を使って下さい。 ただし、これは依存関係を考えずにターゲットのパッケージのみを入れ換えるので、 推奨しかねます。 特にライブラリ”だけ”を入れ換えた場合、 入れ換え直後は問題なくとも、 後日、思わぬところで正しく動作しなくなる可能性があります。
よって、依存関係のあるものすべてを再コンパイルすることが理想です。 この場合
# cd /usr/pkgsrc/security/openssl # make updateを実行するか、
# cd /usr/pkgsrc/security/openssl # make deinstall DEINSTALLDEPENDS=yes # make installを実行してください。
注意: (2011 春以前)、 前者と後者の違いはバイナリパッケージをを作るか作らないか( make install か make install か?)という点にあります。 現在では、どちらでも同じ結果になる気がします(要調査)。
「われわれ NSRG は make install を使う」という運用方針なので、後者です。
また、これは長年の経験論ですが、 どうも make deinstall が実行している実体 pkg_delete -R だけでは依存関係の解決が不十分である気がしています。 pkg_delete -r -R のほうが安全です。
よって、 「われわれ NSRG は pkg_delete -r -R して make install しなおす」 という運用方針とします。
「自動監査システム」 が次のような内容のメールを送ってきます。
Package openssl-0.9.8lnb1 has a unknown-impact vulnerability, see http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3245
同じことは、次のようなコマンドを実行することで確認できます。
# /usr/pkg/sbin/download-vulnerability-list # /usr/pkg/sbin/audit-packages削除作業の前に確認して下さい。
# cd /usr/pkgsrc/security/openssl # /usr/pkg/sbin/pkg_delete -K /var/db/pkg -r -R openssl-0.9.8lnb1 # make install
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >