![UBUNTU - DPKG 和索引损坏](https://linux22.com/image/569829/UBUNTU%20-%20DPKG%20%E5%92%8C%E7%B4%A2%E5%BC%95%E6%8D%9F%E5%9D%8F.png)
正在进行软件包更新,它结束了一个进程并挂起,所以我重新启动了服务器,现在它不允许我执行任何更新。
我尝试了以下方法,但无济于事:
sudo apt-get clean
sudo apt-get install -f (I get a message: E: DPKG was interrupted, you must manually run sudo dpkg --configure -a to correct the problem)
sudo dpkg --configure -a (I get the following - which is where it got stuck the first time)
'Setting up citadel-server (8.03- 1)'
'sendcommand: started (pid=1692) running in 504'
'Attaching to server...'
'domain Citadel server ready'
'Authentication as an internal program.'
'DOWN'
'231 Shutting down server. Goodbye.'
sendcommand: processing ended.'
然后一切都冻结了,什么也不做。它看起来像一个孤立进程,它锁定了 dpkg 和 citadel-server,所以我的邮件不再工作。迫使我重新启动服务器才能让它恢复工作。
我该如何修复索引以便将来进行更新?Snaptic 包也无法工作。
谢谢
答案1
在 /var/lib/dpkg/info 中每个包都保存一些脚本:
<pkgname>.preinst
<pkgname>.postinst
<pkgname>.prerm
<pkgname>.postrm
要完成软件包安装过程,应为每个解压的软件包运行 .preinst 和 .postinst 脚本。如果这些脚本以错误结束,则dpkg
中断。找到 citadel-server 软件包的脚本并调查它们不起作用的原因。或者只需用成功退出状态的空脚本替换它们,运行dpkg --configure -a
并删除 citadel-server。