appstreamcli 在更新期间以 100% CPU 使用率挂起

naz*_*ive 75 apt cpu-load gnome-software appstream

appstreamcli通过不断使用 100% 的核心使我的笔记本电脑过热。我唯一的解决办法就是杀死它。这是截图top

top 的输出显示了 100% cpu 使用率的 appstreamcli

我可以appstreamcli用或杀死。但是一旦我这样做,该过程将再次返回并挂起更新。如果我然后杀死它,我会得到以下输出:sudo kill pidsudo killall appstreamclisudo apt updateappstreamcli

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 > /dev/null;
 fi'
E: Sub-process returned an error code
Run Code Online (Sandbox Code Playgroud)

这个过程是什么,为什么要使用这么多 CPU?

小智 78

这是由错误引起的https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712
工作解决方案(我自己试过):

首先杀死appstreamcli,手动或使用

sudo kill -KILL $(pgrep appstreamcli)
Run Code Online (Sandbox Code Playgroud)

或者

sudo pkill -KILL appstreamcli
Run Code Online (Sandbox Code Playgroud)

然后:

wget -P /tmp https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i /tmp/appstream_0.9.4-1ubuntu1_amd64.deb /tmp/libappstream3_0.9.4-1ubuntu1_amd64.deb
Run Code Online (Sandbox Code Playgroud)

在此之后,您将能够像往常一样进行 apt-get update

  • 请注意,这适用于 64 位系统;在 32 位上,您必须在链接中将 `amd64` 更改为 `i386`。 (17认同)
  • 正是我的问题,但什么是 appstreamcli 呢? (12认同)
  • 由于此错误在非常罕见的情况下出现(根据描述),因此必须通过测试用例来测试修复程序。在不挂起的情况下运行 `sudo appstreamcli refresh --force` 将确认修复有效。它对我有用。感谢您的解决方案! (2认同)