我决定移动硬盘上的分区,以便全新安装 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
答案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 脚本运行时,您创建的文件将被删除。