上周我们的网站主机遭受了 DDOS 攻击,随后我们的一台服务器出现了问题。
服务器运行 Debian Jessie,每次我尝试运行时apt-get update
,都会出现以下错误:
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.
sudo rm /var/lib/apt/lists/* -vf
我发现的一切都表明,通常可以通过运行或预先解决此问题sudo dpkg --configure -a
,但这两种方法对我来说都不起作用。我也尝试过切换到不同的镜像,但这并不能解决问题。
大家有什么建议吗?
答案1
您的错误消息只是意味着您的状态文件已损坏。
你应该先把它移除,
rm /var/lib/dpkg/status
然后重新创建它,
touch /var/lib/dpkg/status
然后进行更新和升级。
如果这不起作用,请检查状态文件及其目录树的权限和所有权,并且可能检查磁盘是否已满,您永远不知道......
答案2
您有备份吗?无论如何,现在开始备份到/root
的内容/var/lib/dpkg
(您可以跳过info/
,以便在尝试失败时恢复实际状态。
您的磁盘是否有足够的可用空间/var
?(DDOS 往往会填满/var
并填满日志)。
完成以上两项检查后,尝试将-old
文件复制到同一个文件,但不带后缀-old
。(如果您有备份,只需从备份中复制这些文件即可)。
答案3
清除已检索到的包文件的本地存储库。打开终端并输入:
sudo apt-get clean
告诉您的系统从它知道的每个档案中拉取最新的软件列表。
sudo apt-get update