Ubuntu 16.04:get-update 时出现 appstreamcli 错误

Ubuntu 16.04:get-update 时出现 appstreamcli 错误

我正在尝试启用 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>符号&必须经过编码&amp;才能成为有效的 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在最后运行(我不希望发生这种情况,它们只是作为一种保障措施)。

  1. 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
    
  2. future.pref在目录中保存一个名为 (say) 的文件/etc/apt/preferences.d(您将再次需要 sudo),其中包含以下内容:

    Package: *
    Pin: release a=bionic*
    Pin-Priority: 50
    
  3. sudo apt update

  4. apt list -u并确认返回仅有的“列表...完成”。如果返回更多内容,则中止(参见上文)。
  5. sudo apt install -assume-no -t=bionic libappstream-glib8。如果在此阶段,apt 声称需要更多内容来满足依赖关系,而不仅仅是用新版本替换旧版本,则中止(参见上文)。
  6. sudo mv /var/cache/app-info/xmls/fwupd.xml ~/fwupd.xml.bck
  7. 重新启动(我发现这是必需的,可能是为了加载新的共享库版本,也许重新启动某些服务)
  8. sudo fwupdmgr refresh
  9. sudo appstreamcli refresh

相关内容