在 snap 中刷新应用程序时出现多个警告和错误

在 snap 中刷新应用程序时出现多个警告和错误

我在使用 Ubuntu 20.04 时遇到问题。出于某种原因,我无法从 GUI 更新软件。错误涉及snap。我从以下命令开始(我不确定何时apt update应该执行,所以我运行了两次):

sudo apt clean
sudo apt update
sudo apt autoremove --purge
sudo apt dist-upgrade
sudo apt update

然后我尝试刷新snap

sudo snap refresh

这只会生成一堆错误,这些错误看起来完全相同,但指的是 中的不同应用程序snap。错误如下:

error: cannot perform the following tasks:
- Run configure hook of "zoom-client" snap if present (run hook "configure": 
-----
Fontconfig warning: "/etc/fonts/fonts.conf", line 5: unknown element "its:rules"
Fontconfig warning: "/etc/fonts/fonts.conf", line 6: unknown element "its:translateRule"
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'translate'
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'selector'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'xmlns:its'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'version'
Fontconfig warning: "/etc/fonts/fonts.conf", line 9: unknown element "description"
-----)

然后其他的似乎与 snap ID 和 app 不同(其他 5 个应用)。以下是第二个错误的示例:

- Run configure hook of "chromium" snap if present (run hook "configure": 
-----
Fontconfig warning: "/etc/fonts/fonts.conf", line 5: unknown element "its:rules"
Fontconfig warning: "/etc/fonts/fonts.conf", line 6: unknown element "its:translateRule"
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'translate'
Fontconfig error: "/etc/fonts/fonts.conf", line 6: invalid attribute 'selector'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'xmlns:its'
Fontconfig error: "/etc/fonts/fonts.conf", line 7: invalid attribute 'version'
Fontconfig warning: "/etc/fonts/fonts.conf", line 9: unknown element "description"
/snap/chromium/1424/snap/command-chain/hooks-configure-desktop: line 43: 14578 Segmentation fault      (core dumped) "${SNAP_DESKTOP_RUNTIME}/usr/bin/fc-cache" --force --system-only --verbose
-----)

我不知道该如何对它进行排序。

我也问了同样的问题在 Reddit 上。显然sudo apt dist-upgrade系统崩溃了,这是造成这一切的原因它强制删除软件包以允许安装其他软件包,而不管被删除的软件包是否对 Linux 的工作至关重要。我认为dist-upgrade是一个安全的命令。


编辑。

  1 <?xml version="1.0"?>                                                                                                                                                                                                                                           
  2 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
  3 <!-- /etc/fonts/fonts.conf file to configure system font access -->
  4 <fontconfig>
  5 
  6     <its:rules xmlns:its="http://www.w3.org/2005/11/its" version="1.0">
  7         <its:translateRule translate="no" selector="/fontconfig/*[not(self::description)]"/>
  8     </its:rules>
  9 
 10     <description>Default configuration file</description>

答案1

如果有人仍然对答案感兴趣,我刚刚找到了错误的文件。 在我的情况下,它是一个额外的字体文件,/etc/fonts/conf.d/09-texlive.conf链接到使用 TexLive 2020 安装的字体文件:/path/to/texlive/2020/texmf-var/fonts/conf/texlive-fontconfig.conf。 我想任何安装不兼容字体文件的较旧的应用程序迟早都会导致此问题。

为了解决这个问题,我删除了文件,删除并重建了缓存:

rm -f ~/.cache/fontconfig/*
sudo rm -f /var/cache/fontconfig/*
sudo fc-cache -rv

此后,snap似乎又可以工作了。


编辑。

有一篇帖子Snapcraft这建议运行fc-cache -rv而不是sudo fc-cache -rv。我不知道以 root 身份和以用户身份执行此命令之间的确切区别,但我必须以 root 身份运行它。

对于 TexLive 用户,更新 snap 后我仍然可以链接文件并重建字体缓存,因为应用程序似乎可以正常工作。但是,每次我想安装某些东西时,我都必须重复这一过程。

希望能帮助到你。

相关内容