我正在尝试启用 WiFi。我试过了sudo apt-get update
。但我收到此错误:
The AppStream system cache was updated, but some errors were detected, which might lead to missing metadata. Refer to the verbose log for more information.
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh-cache > /dev/null; fi'
E: Sub-process returned an error code
如何sudo apt-get update
在 Ubuntu-16.04 中完成并启用 Wifi?
答案1
我遇到过同样的问题,问题是(就我而言)文件中/var/cache/app-info/xmls/fwupd.xml
第 265 行有一个不恰当的转义字符,破坏了 xml,因此出现错误。行中的<checksum filename="Firmware_SF30&SN30_Pro_V1.26.dat" target="content" type="sha1">3ef2bdee8aca2a45b9f53b4d4cce9722523f57f8</checksum>
符号&
必须经过编码&
才能成为有效的 xml。
答案2
已报告类似错误这里
这个答案建议采取以下措施来解决这个问题(一些人说这对他们有帮助):
/usr/bin/appstreamcli
如果您随后安装修复包,则删除是可以的。要手动安装,请执行以下操作(对于 amd64,调整其他架构的 URL):
cd /tmp && mkdir asfix cd asfix wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb sudo dpkg -i *.deb
答案3
虽然这不会移植到 xenial,但可以升级libappstream-glib8
至 bionic 版本并设置从 bionic 接收此包的升级(但不是其余包)。
程序
如果您发现自己处于标记为 ABORT 的情况之一,只需撤消到目前为止执行的所有步骤并sudo apt update
在最后运行(我不希望发生这种情况,它们只是作为一种保障措施)。
future.list
在目录中保存一个名为 (say) 的文件/etc/apt/sources.list.d
(您需要 sudo),其中包含以下内容:deb mirror://mirrors.ubuntu.com/mirrors.txt bionic main deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-updates main deb mirror://mirrors.ubuntu.com/mirrors.txt bionic-security main
future.pref
在目录中保存一个名为 (say) 的文件/etc/apt/preferences.d
(您将再次需要 sudo),其中包含以下内容:Package: * Pin: release a=bionic* Pin-Priority: 50
sudo apt update
apt list -u
并确认返回仅有的“列表...完成”。如果返回更多内容,则中止(参见上文)。sudo apt install -assume-no -t=bionic libappstream-glib8
。如果在此阶段,apt 声称需要更多内容来满足依赖关系,而不仅仅是用新版本替换旧版本,则中止(参见上文)。sudo mv /var/cache/app-info/xmls/fwupd.xml ~/fwupd.xml.bck
- 重新启动(我发现这是必需的,可能是为了加载新的共享库版本,也许重新启动某些服务)
sudo fwupdmgr refresh
sudo appstreamcli refresh