У меня проблема с Ubuntu 20.04. По какой-то причине я не могу обновить программное обеспечение из графического интерфейса. Ошибка связана с snap
. Я начал со следующих команд (я не был уверен, когда должно быть выполнено apt update
, поэтому я запустил его дважды):
sudo apt clean
sudo apt update
sudo apt autoremove --purge
sudo apt dist-upgrade
sudo apt update
Затем я попытался обновить snap
:
sudo snap refresh
, который просто генерирует кучу ошибок, которые кажутся точно такими же, но относятся к разным приложениям в оснастке
. Вот ошибки:
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"
-----)
Тогда другие кажутся разными по идентификатору оснастки и приложение (другие 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
сломал систему и является причиной всего этого, потому что принудительно удаляет пакеты, чтобы разрешить установку других пакетов, независимо от того, удаляются ли они d необходимы для работы 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>
Если кого-то еще интересует ответ, я только что нашел ошибочный файл. В моем случае это был дополнительный файл шрифта /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
После этого снап
снова заработал.
РЕДАКТИРОВАТЬ.
На Snapcraft есть сообщение, в котором предлагается запустить fc-cache -rv
вместо sudo fc-cache -rv
. Я не знаю точной разницы между выполнением этой команды от имени пользователя root и от имени пользователя, но мне пришлось запускать ее от имени пользователя root.
Для пользователей TexLive: я все еще могу связать файл и восстановить кеш шрифтов после того, как вы обновите снап, потому что приложения, кажется, работают. Однако каждый раз, когда я хочу что-то установить, мне приходится повторять процедуру.
Надеюсь, это поможет.