删除包时出现“E:文件不存在:文件”

删除包时出现“E:文件不存在:文件”

我决定移动硬盘上的分区,以便全新安装 Kubuntu。我启动了 Ubuntu 10.10 实时光盘,移动了所有内容,并尝试安装 grub,但没有成功,因此我刻录了 Ubuntu 12.04 光盘并进行了安装。

我让电脑运行起来,想安装一些软件包,但当时没有互联网连接。所以(我知道这很愚蠢)我从以前的 Ubuntu 版本中获取了一些 deb,因为我需要我的音乐,而其他安装需要很长时间才能启动。

恢复互联网连接后,一切都恢复正常,但只持续了一段时间。然后,在使用 synaptic 删除十个损坏的软件包后,我偶然发现了这个问题:

drhax@Spamotard:~$ sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  libgtk2.0-cil
0 upgraded, 0 newly installed, 1 to remove and 417 not upgraded.
1 not fully installed or removed.
After this operation, 2,638 kB disk space will be freed.
Do you want to continue [Y/n]? y
(Reading database ... 103052 files and directories currently installed.)
Removing libgtk2.0-cil ...
E: File does not exist: /usr/share/cli-common/packages.d/policy.2.6.gtk-dotnet.installcligac
dpkg: error processing libgtk2.0-cil (--remove):
 subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
 libgtk2.0-cil
E: Sub-process /usr/bin/dpkg returned an error code (1)

非常感谢您的帮助。这是我的第一篇文章,但我确实对 Ubuntu 了解不少,所以请随时指出我犯的任何愚蠢错误。

答案1

sudo dpkg -P --force-all libgtk2.0-cil

对我来说还不够,我必须:

sudo mv /var/lib/dpkg/info/libgtk2.0-cil.postrm /var/lib/dpkg/info/libgtk2.0-cil.postrm.tmp

sudo dpkg -P --force-all libgtk2.0-cil

我重命名了其他文件但可能不需要:

/var/lib/dpkg/info/libgtk2.0-cil.clilibs.tmp
/var/lib/dpkg/info/libgtk2.0-cil.md5sums.tmp
/var/lib/dpkg/info/libgtk2.0-cil.postrm.tmp
/var/lib/dpkg/info/libgtk2.0-cil.list.tmp
/var/lib/dpkg/info/libgtk2.0-cil.postinst.tmp
/var/lib/dpkg/info/libgtk2.0-cil.prerm.tmp

-- http://rzr.online.fr/q/dpkg

答案2

使用以下命令强制删除软件包:sudo dpkg -P --force-all libgtk2.0-cil

答案3

我遇到了同样的问题,并找到了答案。如果出现错误File doesn't exist,您只需在需要删除包的位置创建一个空文件即可。

例如,sudo touch /usr/share/cli-common/packages.d/policy.2.6.gtk-dotnet.installcligac

当 postrm 脚本运行时,您创建的文件将被删除。

相关内容