Ubuntu 16.04
Я получаю это apt update
ошибка:
AppStream system cache was updated, but problems were found:
Metadata files have errors: /var/cache/app-info/xmls/fwupd.xml
Я ранее работал:
sudo apt install appstream/xenial-backports
sudo apt update
sudo apt upgrade
Вышеупомянутая ошибка все еще существует.
Я нашел, что ошибка, описанная в Вашем вопросе, вызывается опечаткой в /var/cache/app-info/xmls/fwupd.xml
.
Моя процедура фиксации:
sudo gedit /var/cache/app-info/xmls/fwupd.xml
. Я использую gedit
текстовый редактор здесь. Можно использовать любой текстовый редактор, которым Вы довольны. <checksum filename="Firmware_SF30&SN30_Pro_V1.26.dat" target="content" type="sha1">3ef2bdee8aca2a45b9f53b4d4cce9722523f57f8</checksum>
. Все, что я сделал для фиксации ошибки, должно было исправить опечатку SF30&SN30
кому: SF30&SN30
. Это - символ &
должен быть изменен на &
.Для проверки в случае успеха работайте на терминале sudo apt update
. Ошибка не должна быть там. Но если это было все еще там, я выполнил команду appstreamcli refresh --force
и затем sudo apt update
. Этим этапом я больше не встречался с ошибкой во время той же сессии входа в систему.
Дополнительные примечания:
sudo apt update
. Для предотвращения ошибки я просто восстанавливаю процедуру, как упомянуто выше. Надеюсь, что разработчики могут быстро исправить эту ошибку.fwupd.xml
и 50appstream
. Однако я заметил, что эти файлы содержали инструкции служить определенным целям. Следовательно, моя процедура фиксации не удалила те файлы. Если Вы хотите удалить их, я предлагаю, чтобы Вы сделали резервное копирование из них сначала.После комментариев, что решило, это для меня было:
# rm /var/cache/app-info/xmls/fwupd.xml
# appstreamcli refresh --force
AppStream cache update completed successfully.
# apt update
Все кажется прекрасным теперь.
Должен также добавить, что у меня есть версия 0.10.6
установленный от xenial/back-ports
.
После испытания того же обновления выходит, я создал краткосрочное решение, которое помогает исправить ситуацию, пока разработчики не корректируют синтаксические ошибки в проблематичном XML-файле.
Предложенное Краткосрочное Решение: bugfix.sh
#! /bin/bash
# bugfix.sh
#
# DESCRIPTION
# Temporary fix for Ubuntu firmware update issues
# Created by h8rt3rmin8r on 20180804
#
# BUG INFORMATION
# File location: /var/cache/app-info/xmls/fwupd.xml
# Line number: 265
SRC_STRING=$(sudo cat /var/cache/app-info/xmls/fwupd.xml)
OLD_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
NEW_SUBSTRING='Firmware_SF30&SN30_Pro_V1'
touch /dev/shm/bugfix.xml
echo ${SRC_STRING/$OLD_SUBSTRING/$NEW_SUBSTRING} > /dev/shm/bugfix.xml
sudo mv /dev/shm/bugfix.xml /var/cache/app-info/xmls/fwupd.xml
Инструкции Относительно Использования bugfix.sh:
Для выполнения bugfix.sh просто скопируйте код выше в новый файл (использующий текстовый редактор как gedit) и сохраните тот файл как "bugfix.sh" в удобном месте.
В то время как расположено в том же каталоге как bugfix.sh сценарий, включите выполнение сценария со следующей командой: sudo chmod +x bugfix.sh
Запустите bugfix скрипт с командой: ./bugfix.sh
Дополнительные примечания:
Запущение этого скрипта временно решит проблему под рукой. Если рассматриваемая ошибка раскрывается снова позднее, затем просто запускает скрипт снова.
Для легкого доступа Вы могли даже сохранить этот сценарий в /usr/local/bin
таким образом, можно назвать его непосредственно от терминала с bugfix.sh
. Затем, пока ошибка вокруг, можно звонить bugfix.sh
перед выполнением sudo apt-get update && sudo apt-get -y dist-upgrade
.