如何在 OpenBSD 中删除部分包

如何在 OpenBSD 中删除部分包

在升级时,我尝试添加一个已经存在的包,但由于一些错误,创建了一个部分包 -partial-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          

我检查了源代码。某些 coe 将文件添加到某些数据结构中(最有可能的是,它正在找出要删除的文件),但它未能这样做,因为该文件已不存在。

我如何摆脱这个部分包?

答案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>目录。

相关内容