アップグレード中に既存のパッケージを追加しようとしましたが、一部のエラーにより部分パッケージ - 部分 gnutls が生成されました。
パッケージのこの部分を削除しようとすると、次のエラーが発生します。
File /usr/local/share/locale/cs/LC_MESSAGES/pkg.qX9SMkCPZb does not exist
File /usr/local/share/locale/de/LC_MESSAGES/pkg.Dfpr8PbT3X does not exist
File /usr/local/share/locale/en@boldquot/LC_MESSAGES/pkg.wIH7fQJbhK does not exist
File /usr/local/share/locale/en@quot/LC_MESSAGES/pkg.c8llMmPSGl does not exist
Read failed: Input/output error at /usr/libdata/perl5/OpenBSD/md5.pm line 59
ソースコードを確認してみました。一部の同僚は、一部のデータ構造にファイルを追加しますが(ほとんど削除するファイルを特定しています)、ファイルが存在しないため追加できません。
この部分パッケージをどのように削除しますか?
答え1
リストされたファイルごとに空のファイルを作成できます。たとえば、次のようになります。
touch /usr/local/share/locale/cs/LC_MESSAGES/pkg.qX9SMkCPZb
など。ファイルが存在する場合は、記録されたpkg_delete -qq
チェックサムを比較せずに削除できます。
それでも問題が解決しない場合は、/var/db/pkg/<pkg-name>/+CONTENTS
パッケージの内容とインストールファイルの場所を一覧表示してその情報を使用してファイルを手動で削除し、/var/db/pkg/<pkg-name>
問題のディレクトリを削除することもできます。