Ошибка GLib при использовании apt-get update

Вопрос или проблема

(appstreamcli:13767): GLib-CRITICAL **: 08:57:18.126: g_variant_builder_end: утверждение '!GVSB(builder)->uniform_item_types || GVSB(builder)->prev_item_type != NULL || g_variant_type_is_definite (GVSB(builder)->type)' не выполнено

(appstreamcli:13767): GLib-CRITICAL **: 08:57:18.126: g_variant_new_variant: утверждение 'value != NULL' не выполнено

(appstreamcli:13767): GLib-ERROR **: 08:57:18.126: g_variant_new_parsed: 11-13: недопустимая строка формата GVariant
Точка останова/ловушка (дамп памяти)
Чтение списков пакетов... Готово
E: Проблема при выполнении скриптов APT::Update::Post-Invoke-Success 'если /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; тогда appstreamcli refresh-cache > /dev/null; fi'
E: Подпроцесс вернул код ошибки

Следующее сработало для меня:

apt-get install --reinstall libappstream4

Проверьте эту тему для подробностей: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=906538

sudo apt reinstall appstream libglib2.0-0

следующая команда сработала для меня

У меня была точно такая же проблема, как указано выше. Мое решение было простым: перейдите в /etc/apt/ и проверьте файл sources.list. Убедитесь, что в нем нет репозиториев, которые являются “экспериментальными”. Также перейдите в /etc/apt/sources.list.d и посмотрите, нет ли там файлов с расширением .list. Убедитесь, что они тоже не содержат “экспериментальные” или “бета” репозитории.

Моя проблема конкретно была вызвана этой записью в репозитории в файле unstable.list под /etc/apt/sources.list.d

deb http://deb.debian.org/debian/ unstable main

Я просто закомментировал это и снова запустил apt-get update. Нет необходимости переустанавливать что-либо, если проблема заключается конкретно в ваших источниках apt. Очень опасно выполнять команду purge и remove, указанную в предыдущем комментарии.

Это вывод из моей первоначальной проблемы.

root@localhost:~# apt-get update
Hit:1 http://security.debian.org/debian-security stretch/updates InRelease
Hit:2 http://deb.debian.org/debian unstable InRelease
Игнор:3 http://ftp.us.debian.org/debian stretch InRelease
Hit:4 http://ftp.us.debian.org/debian stretch-updates InRelease
Hit:5 http://ftp.us.debian.org/debian stretch Release
Игнор:6 http://httpredir.debian.org/debian stretch InRelease
Hit:7 http://httpredir.debian.org/debian stretch Release

(appstreamcli:10995): GLib-CRITICAL **: g_variant_builder_end: утверждение '!GVSB(builder)->uniform_item_types || GVSB(builder)->prev_item_type != NULL || g_variant_type_is_definite (GVSB(builder)->type)' не выполнено

(appstreamcli:10995): GLib-CRITICAL **: g_variant_new_variant: утверждение 'value != NULL' не выполнено

(appstreamcli:10995): GLib-ERROR **: g_variant_new_parsed: 11-13: недопустимая строка формата GVariant
Точка останова/ловушка
Чтение списков пакетов... Готово
E: Проблема при выполнении скриптов APT::Update::Post-Invoke-Success 'если /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; тогда appstreamcli refresh-cache > /dev/null; fi'
E: Подпроцесс вернул код ошибки

У меня была та же проблема в debian buster, и я нашел, что это работает: это

  1. Удалите пакеты appstream и gnome (для безопасности сделайте список пакетов для последующей переустановки):

    # apt-get remove --purge appstream gnome*
    

Вы можете использовать команду tasksel --list-tasks, чтобы увидеть доступные варианты рабочего стола для установки.

Ответ или решение

Ошибка GLib при использовании команды apt-get update может быть вызвана несколькими факторами, включая несовместимость пакетов, проблему с источниками репозиториев или коррумпированные данные в кэше. В этой статье мы рассмотрим, как диагностировать и устранить эту проблему, основываясь на предоставленной информации.

Что такое ошибка GLib?

Ошибки GLib часто возникают в средах, использующих библиотеку GLib, которая является частью Gnome и обеспечивает базовые службы для приложений. Ошибка, упомянутая вами, может указывать на неправильное использование GVariant, структуры данных GLib для хранения значений.

Анализ проблемы

Данная ошибка имеет следующую логику:

(appstreamcli:13767): GLib-CRITICAL **: ... failed
E: Problem executing scripts APT::Update::Post-Invoke-Success ...
E: Sub-process returned an error code

Причины возникновения

  1. Проблемы с пакетом appstreamcli: приложение appstreamcli отвечает за кэширование метаданных о пакете. Если оно повреждено, то команда apt-get update может завершаться с ошибкой.

  2. Неправильные репозитории: наличие "экспериментальных" или "бета" репозиториев в sources.list или в каталогах /etc/apt/sources.list.d может привести к несовместимостям, особенно с пакетами GNOME.

  3. Кэш: поврежденный кэш пакетов также может стать источником проблем.

Шаги по устранению проблемы

1. Проверка источников репозиториев

Первым делом вам следует проверить файл /etc/apt/sources.list и возможности в /etc/apt/sources.list.d. Убедитесь, что там нет ссылок на «экспериментальные» репозитории. Для этого выполните:

sudo nano /etc/apt/sources.list
sudo nano /etc/apt/sources.list.d/*.list

Если найдете строки, которые указывают на «unstable» или «experimental», закомментируйте их, добавив символ # в начале строки, и затем перезапустите apt-get update.

2. Переустановка пакетов

Если ошибка не исчезла, испробуйте переустановить пакеты appstream и libglib2.0-0. Для этого выполните:

sudo apt-get install --reinstall appstream libglib2.0-0

Если это не сработает, можно попробовать полностью удалить и потом заново установить пакет appstream:

sudo apt-get remove --purge appstream
sudo apt-get install appstream

3. Очистка кэша

Кроме того, возможно, имеет смысл очистить кэш apt:

sudo apt-get clean
sudo apt-get autoclean

4. Использование дополнительных инструментов

В некоторых случаях может быть полезно использовать инструмент tasksel, позволяющий установить недостающие зависимости для рабочего окружения:

sudo tasksel --list-tasks

5. Проверка на наличие ошибок

Если ни один из вышеперечисленных шагов не помог, проверьте существование ошибок с помощью:

sudo journalctl -xe

Это позволит вам увидеть системные журналы и возможные подсказки о том, почему возникают ошибки.

Заключение

Ошибки GLib при использовании apt-get update часто связаны с несовместимыми или поврежденными пакетами, неправильными источниками репозиториев или поврежденным кэшем. Используя предложенные шаги по диагностике и устранению, вы сможете эффективно справиться с данной проблемой и обеспечить стабильность вашей системы. Если ситуации будут повторяться, стоит обратиться к более подробному анализу или сообществу разработчиков для получения дополнительной помощи.

Оцените материал
Добавить комментарий

Капча загружается...