修复Ubuntu中“遇到一个没有包的节:header”错误

时间:2020-03-21 11:43:50  来源:igfitidea点击:

"Encountered a section with no Package: header"错误

今天,我在更新我的ubuntu20.04lts桌面系统时遇到了以下错误。

$sudo apt update

示例输出:

Get:1 http://ny-mirrors.evowise.com/ubuntu focal InRelease [265 kB]
Hit:2 http://linux.teamviewer.com/deb stable InRelease                                                                                                                   
Hit:3 http://ppa.launchpad.net/costales/yaru-colors-folder-color/ubuntu focal InRelease
Hit:4 http://ny-mirrors.evowise.com/ubuntu focal-updates InRelease  
Hit:5 http://ny-mirrors.evowise.com/ubuntu focal-backports InRelease
Hit:6 http://ny-mirrors.evowise.com/ubuntu focal-security InRelease
Hit:7 http://dl.google.com/linux/chrome/deb stable InRelease
Fetched 265 kB in 3s (99.8 kB/s)
Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal_universe_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.

我再次尝试使用图形安装包管理器。
但没运气!我有同样的错误!

这是Ubuntu和基于Debian的系统中的常见问题之一。

仔细阅读输出后,我理解包装列表或者状态文件因某种原因损坏,因此无法解析。
对于那些想知道的人来说,状态文件包含有关已安装的DEB包的信息。
我们可以通过删除损坏的包列表和状态文件来解决此问题并如下所述重新生成它们。

修复Ubuntu中遇到"没有包的部分:标题"错误

首先,使用命令删除损坏的包列表:

$sudo rm /var/lib/apt/lists/* -vf

上面的命令将删除Ubuntu系统的所有包源列表。

以下是我的Ubuntu 20.04 LTS桌面的示例输出:

rm: cannot remove '/var/lib/apt/lists/auxfiles': Is a directory
removed '/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_InRelease'
removed '/var/lib/apt/lists/dl.google.com_linux_chrome_deb_dists_stable_main_binary-amd64_Packages'
removed '/var/lib/apt/lists/linux.teamviewer.com_deb_dists_stable_InRelease'
removed '/var/lib/apt/lists/linux.teamviewer.com_deb_dists_stable_main_binary-amd64_Packages'
removed '/var/lib/apt/lists/linux.teamviewer.com_deb_dists_stable_main_binary-i386_Packages'
removed '/var/lib/apt/lists/lock'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_Contents-amd64.lz4'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_Contents-i386.lz4'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_InRelease'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_main_cnf_Commands-amd64'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_multiverse_cnf_Commands-amd64'
removed '/var/lib/apt/lists/ny-mirrors.evowise.com_ubuntu_dists_focal-backports_restricted_cnf_Commands-amd64'
removed '/var/lib/apt/lists/ppa.launchpad.net_costales_yaru-colors-folder-color_ubuntu_dists_focal_InRelease'
removed '/var/lib/apt/lists/ppa.launchpad.net_costales_yaru-colors-folder-color_ubuntu_dists_focal_main_binary-amd64_Packages'
removed '/var/lib/apt/lists/ppa.launchpad.net_costales_yaru-colors-folder-color_ubuntu_dists_focal_main_binary-i386_Packages'
removed '/var/lib/apt/lists/ppa.launchpad.net_costales_yaru-colors-folder-color_ubuntu_dists_focal_main_i18n_Translation-en'

现在,运行以下命令来重建包源列表:

$sudo apt update

这需要一段时间取决于互联网速度。

重新生成软件包列表后,通过逐个运行以下命令进行完整更新:

$sudo apt update
$sudo apt upgrade
$sudo apt dist-upgrade

更新Ubuntu系统后,清除包缓存:

$sudo apt autoclean
$sudo apt autoremove

最后,关闭所有打开的程序并重新启动系统:

$sudo reboot

问题现在应该消失。

如果我们仍然看到相同的错误,请删除状态文件并使用以下命令重建它:

$sudo rm /var/lib/dpkg/status
$sudo touch /var/lib/dpkg/status
$sudo apt update

不要忘记执行完整的系统更新并清理APT缓存,然后重新启动系统。