由于 appstreamcli 数据库错误,无法“apt-get dist-upgrade”

由于 appstreamcli 数据库错误,无法“apt-get dist-upgrade”

我已经创建了一个装有持久版 Ubuntu 16.04(发布版)的 USB 盘。我尝试了几种方法,使用启动盘创建器和 MultiSystem,但最终结果相同。

当我启动 USB 并执行“apt-get update”时,一切正常。当我尝试“apt-get dist-upgrade”时,我得到:

** (appstreamcli:2761): 严重 **: 移开旧数据库时出错。AppStream 缓存更新失败。

我能找到的关于此错误消息的唯一参考是https://bugs.launchpad.net/ubuntu/+source/ubiquity/+bug/1561472但似乎已经修复,至少在 Ubuntu 16.04 发布版本时已经修复。

另外:我想测试 Unity8,包括安装软件。我没有多余的电脑,所以我认为一个持久的 USB 就可以了。

有谁愿意接受吗?

答案1

我使用 16.04.1 live Ubuntu 持久 USB 棒时也发生了这种情况。

uncledave 的解决方案一开始没有起到作用,但是按照建议,改变权限是最终的解决方案。

然后我发现来自 daniel-gimpelevich 的针对 bug 1601971 的回答 #11 以下命令帮助我修复apt-get update

sudo chmod -R a+rX,u+w /var/cache/app-info/xapian/default

我怎么会猜到 755 是正确的掩码呢?

ls -ld /var/cache/app-info/xapian
drwxr-xr-x 1 root root 4096 Nov 19 20:35 /var/cache/app-info/xapian/

ls -ld /var/cache/app-info/xapian/default
drw-r--r-- 2 root root 4096 Jul 19 20:54 /var/cache/app-info/xapian/default

此后 apt-get update 运行正常。

sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://security.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [95.7 kB]      
Fetched 190 kB in 0s (312 kB/s)                                                
Reading package lists... Done

注1不建议通过这种方式升级实时持久型 USB 驱动器,因为如果安装/升级了太多软件包,会导致问题。

笔记2如果您想将 Ubuntu 用作可启动的“瑞士军刀”,最好将其直接安装到 USB 记忆棒上。

答案2

谷歌搜索让我找到了这个链接:在 github 上

我已经尝试过这个命令并且它对我有用:

chmod 777 /var/cache/app-info/xapian/default -R

答案3

在我的 16.04.1 永久实时 USB 上,只需输入

sudo -i

然后像 root 那样

sudo apt-get update 一切都很好。然后

exit

并回到我原来的路径 ubuntu@ubuntu。

答案4

我不知道如何正确解决这个问题,但apt-get dist-upgrade两次调用对我来说是有效的,我能够在已安装的 Ubuntu 上重现它(第一次调用会出现错误,但第二次调用有效)。

相关内容