Я не могу обновить свою систему с помощью `pacman`

Я не могу обновить свою систему с помощью `pacman`

Пытаюсь обновить систему, получаю ошибку: не удалось подготовить транзакцию (не удалось удовлетворить зависимости).

Вот что я получаю:

~> sudo pacman -Syu
:: Synchronising package databases...
 gremlins is up to date
 system is up to date
 world is up to date
 galaxy-gremlins is up to date
 galaxy is up to date
 lib32 is up to date
 extra is up to date
 community is up to date
 multilib is up to date
:: Starting full system upgrade...
:: Replace libcanberra-pulse with gremlins/libcanberra? [Y/n] n
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing expat (2.4.1-1) breaks dependency 'expat=2.3.0' required by lib32-expat
:: installing libcap (2.50-1) breaks dependency 'libcap=2.49' required by lib32-libcap
:: installing libelf (0.185-1) breaks dependency 'libelf=0.184' required by lib32-libelf
:: installing libcanberra (0.30+2+gc0620e4-4) breaks dependency 'libcanberra=0.30+2+gc0620e4-3' required by libcanberra-pulse

Затем я пытаюсь удалить пакет expat, но получаю сообщение: «Внимание: в списке удаления есть запрещенные пакеты!»

Я посмотрел на этовеб-страница, но здесь они могут удалить проблемный пакет, а я не могу, так как expatон является частью ядра.

Что мне делать в этот момент?

решение1

Пакеты в lib32репозитории, представляющие собой 32-разрядные версии различных библиотек и т. п., зависят от своих 64-разрядных аналогов той же версии.

У вас есть нестабильные репозитории тестирования, такие как gremlinsи galaxy-gremlins, которые предоставляют более новые версии пакетов, таких как expat. Но у вас нет lib32-gremlinsрепозитория, поэтому вы не получаете те же обновления для 32-битных аналогов этих пакетов, т. е. вы можете оставаться на старых (стабильных) пакетах. И поскольку стабильные 32-битные пакеты, такие как , lib32-expatзависят от 64-битных пакетов-аналогов из стабильных репозиториев, возникает конфликт, в котором вы можете либо оставить свою систему старой (чтобы удовлетворить зависимости старых 32-битных пакетов), либо установить более новые 64-битные пакеты (что нарушит зависимости 32-битных пакетов, то есть вы можете сделать это, только удалив их).

В качестве альтернативы вы можете включить lib32-gremlinsрепозиторий, который предоставляет 32-разрядные версии пакетов в 64-разрядных тестовых репозиториях, или отключить все тестовые репозитории — любое из этих двух действий синхронизирует ваши 64-разрядные и 32-разрядные репозитории, а зависимости можно будет разрешить с помощью последних доступных пакетов.

Связанный контент