Невозможно обновить Archlinux (pacman -Syu не работает)

Я запускаю sudo pacman -Syu на своем Archlinux и получаю следующее:

cristian@localhost:~$ sudo pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 multilib is up to date
 xenlism-arch is up to date
:: Starting full system upgrade...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: package-query: requires pacman<4.3

Каким будет решение, чтобы исправить это?

ОБНОВИТЬ

Я пробовал оба решения, предложенные @jham. Я полностью удалил yaourt и package-query. В pacman -Qi pacman в разделе «требуется» у меня есть none. Я также прокомментировал multilib и xenlism-arch из pacman.conf. Когда я делаю pacman -Syu, я получаю следующее:

:: Proceed with installation? [Y/n] 
(244/244) checking keys in keyring                              [###################################] 100%
(244/244) checking package integrity                            [###################################] 100%
error: confuse: signature from "Thorsten Töpper <[email protected]>" is unknown trust
:: File /var/cache/pacman/pkg/confuse-2.8-2-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] 
error: failed to commit transaction (invalid or corrupted package)
Errors occurred, no packages were upgraded.

person Cristian    schedule 07.02.2016    source источник
comment
У вас установлены package-query и yaourt? Если да, возможно, у вас конфликт с package-query. Попробуйте yaourt -S package-query, а затем снова запустите обновление с помощью pacman. После этого вам нужно будет пересобрать ваш package-query, так как он, вероятно, не будет совместим с новым pacman.   -  person jham    schedule 07.02.2016
comment
В общем, похоже, что есть пакет, установленный локально, который не управляется в официальном репозитории archlinux). Вы можете проверить, какие пакеты требуют вашей текущей установленной версии pacman с помощью pacman -Qi pacman (ищите раздел Required By в выводе). Хорошее начало для того, чтобы увидеть, встречаются ли какие-либо из перечисленных пакетов в списке локально установленных пакетов (например, через yaourt) с pacman -Qm. Если вы его найдете, удалите этот пакет и снова попробуйте выполнить обновление с помощью pacman. Также возможен конфликт с добавленным вами пакетом из репозитория multilib или xenlism-arch.   -  person jham    schedule 07.02.2016
comment
Я обновил первоначальный вопрос текущей ситуацией после того, как попробовал ваши решения jham. Пожалуйста, проверьте это. Спасибо.   -  person Cristian    schedule 07.02.2016
comment
yaourt -S package-query помог мне.   -  person Bernhard Fürst    schedule 08.02.2016
comment
осталось только aur.archlinux.org/packages/package-query-git в настоящее время. Сам package-query больше не существует.   -  person dotbit    schedule 04.11.2018


Ответы (6)


У меня просто была такая же ошибка. Похоже, проблема в том, что в пакете archlinux-keyring есть новые ключи, а также новые пакеты (confuse), подписанные этими ключами. Поскольку оба пакета обновляются в одной и той же транзакции, новые ключи нельзя использовать, пока обновление не будет завершено, но транзакция не начнется, пока пакеты не будут проверены...

Решением было бы обновить archlinux-keyring самостоятельно:

pacman -S archlinux-keyring

А затем сделайте все остальное:

pacman -Su

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

pacman-key --populate

но обычно в этом нет необходимости.

person rodrigo    schedule 07.02.2016
comment
Я удалил каталог /etc/pacman.d/gnupg, чтобы сбросить все ключи, pacman-key --populate спас день - person Emile Bergeron; 06.09.2016
comment
Сразу после шага populate дополнительный шаг sudo pacman-key --refresh-keys решил проблему для меня. Затем обновите как обычно. - person holzkohlengrill; 02.06.2019

У меня просто возникла такая же проблема, и я решил ее следующим образом:

$ sudo pacman -Rdd package-query # Purge the conflicting package-query
$ sudo pacman -Syu               # There it works

# Now reinstall package-query
$ git clone https://aur.archlinux.org/package-query.git
$ cd package-query && makepkg -si
person Denis Chevalier    schedule 13.02.2016

Для всех, кто еще приходит сюда, кто не нашел решение от rorido работающим, попробуйте ответ пользователей Бернхарда Фюрста или Джама всего pacman -S package-query, который сработал для меня без проблем.

Кроме того, если вы все еще получаете проблемы, подобные этой с libalpm.so.8: cannot open shared object file: No such file or directory, вам необходимо вручную переустановите package-query и yaourt.

sudo pacman-db-upgrade
yaourt -R package-query yaourt

git clone https://aur.archlinux.org/package-query.git
cd package-query
makepkg -si
cd ..
git clone https://aur.archlinux.org/yaourt.git
cd yaourt
makepkg -si
cd ..
person hak8or    schedule 11.02.2016

Если у вас все еще есть ошибка. Попробуй это:

sudo find /var/cache/pacman/pkg/ -iname "*.part" -exec rm {} \;

Он удаляет файлы .part, что вызывает ошибку «недопустимый или поврежденный пакет». После того, как вы удалите их, запустите это:

sudo pacman -Syyu

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

person Guray Gurkan    schedule 07.11.2019
comment
Это сработало для меня при установке Manjaro. Я пробовал различные исправления до этого, и проблема не исчезла. Это помогло. - person M Wade; 03.06.2020

Я использую Manjaro, и после долгих поисков мне удалось решить проблему, выполнив эти простые команды.

ПРИМЕЧАНИЕ. Вы должны запустить pacman-key --init перед первым использованием pacman; затем локальный набор ключей может быть заполнен ключами всех официальных упаковщиков Manjaro Linux с pacman-key --populate archlinux manjaro.

person Ajay Mishra    schedule 24.06.2018
comment
С какого URL вы получили свое исправление? Кроме того, я тоже использую Manjaro и столкнулся с этой проблемой, но, к счастью, Google Search для моего сообщения об ошибке (даже если это всего лишь 1-й сбой ключа) нашел 4-дневный старый отчет и решение forum.manjaro.org/t/ (предупреждение: чтобы получить исправление , перейдите по его непосредственной ссылке, то это непосредственная ссылка «Как решить проблемы со связкой ключей в Manjaro»), которая сработала для меня безупречно. Кажется, в основном то же исправление, что и urs, НО дает фон и {заменяет «pacman-key --init» на «sudo pacman -Syy && sudo pacman-key --refresh-keys» --почему?}. - person Destiny Architect; 01.07.2018

не удалось подготовить транзакцию (неверная или поврежденная база данных)

Здесь это произошло из-за того, что фактические (неисправные) зеркальные серверы доставляли мусор.

закомментируйте эти стандартные серверы и используйте качественный сервер, например.

ftp://ftp5.gwdg.de/pub/linux/archlinux /сообщество/ОС/x86_64/

Жаль, что /etc/pacman.conf так плохо прокомментирован, как будто намеренно бесполезен и бесполезен, всегда расплывчат и никогда конкретно не полезен. это была последняя ошибка в, казалось бы, бесконечном ряду ошибок от pacman. ключи неуправляемы, серверы в беспорядке, библиотеки вызывают хаос. Мне потребовалось более 1 дня, чтобы пройти через этот ужасный опыт Arch.

person dotbit    schedule 04.11.2018