Ошибка при обновлении pacman

Здесь рассматриваются различные вопросы, связанные с загрузкой и установкой программных пакетов из репозиториев Manjaro.

Ошибка «Нераспознанный формат архива»

Это происходило неоднократно, обновление выдает эти сообщения в, казалось бы, бесконечном потоке.
Pacman не смог открыть файл: синхронизировать файлы.

error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/extra.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/community.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/multilib.db: Unrecognized archive format

Ошибка связана с несоответствием информации, содержащейся в файлах db в указанном месте и файлах db на первом зеркале в вашем списке зеркал. Pacman проверяет пакет в базе данных и смотрит, совпадает ли файл сигнатуры с файлом в базе данных. Если нет, то pacman сообщит, что пакет поврежден.

Хотя иногда проблему можно решить, просто удалив файлы и запустив обновление pacman, это возможно далеко не каждый раз.

Один рецепт для исправления этого

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

Вы должны будете найти правильные имена, посмотрев на.

https://mirror.easyname.at/manjaro/pool/overlay/ для текущего manjaro-keyring

и

https://mirror.easyname.at/manjaro/pool/sync для текущего archlinux-keyring

Замените yyyymmdd и x на информацию, найденную по вышеуказанным ссылкам.

user $ sudo pacman -U https://mirror.easyname.at/manjaro/pool/overlay/manjaro-keyring-yyyymmdd-x-any.pkg.tar.xz COPY TO CLIPBOARD

user $ sudo pacman -U https://mirror.easyname.at/manjaro/pool/sync/archlinux-keyring-yyyymmdd-x-any.pkg.tar.xz COPY TO CLIPBOARD

Удалите неисправные базы данных

user $ sudo rm -f /var/lib/pacman/sync/* COPY TO CLIPBOARD

Загрузите базы данных и обновите систему

user $ sudo pacman -Syyu COPY TO CLIPBOARD

Ошибка «Невозможно заблокировать базу данных»

При загрузке и установке программного обеспечения из репозиториев создается специальный файл блокировки базы данных, чтобы убедиться, что текущий процесс установки является единственным, запущенным в данный момент. В противном случае попытка одновременной установки нескольких файлов из нескольких источников может привести к повреждению загруженных файлов, конфликтам файлов или, что еще хуже, к повреждению системы. После завершения установки файл блокировки будет автоматически удален. Таким образом, эта ошибка может возникнуть по двум возможным причинам:

  • Другая установка все еще выполняется и еще не завершена, или
  • Предыдущая попытка установки не завершилась должным образом (например, была прервана раньше времени).

Поэтому целесообразно сначала убедиться, что в момент возникновения ошибки не выполняется (или не выполнялась) другая установка. Убедившись в этом необходимо вручную удалить файл блокировки базы данных. Для этого откройте терминал и введите следующую команду:

user $ sudo rm /var/lib/pacman/db.lck COPY TO CLIPBOARD

После этого вы сможете успешно повторить попытку установки.

Ошибки ключей

У каждого из нас есть свои уникальные подписи, используемые для подтверждения подлинности нашей личности и предотвращения мошеннических или даже вредоносных действий со стороны других людей. То же самое происходит и с программными пакетами, доступными в репозиториях программного обеспечения. Все они содержат зашифрованные коды (ключи подписи), уникальные для их разработчиков, что гарантирует их подлинность и отсутствие вредоносного характера.

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

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

Если пакет не был подписан должным образом перед помещением в репозиторий, ответственность за исправление лежит на разработчике(-ах). Однако, поскольку эта проблема, скорее всего, связана с проблемой проверки ключа подписи в вашей системе, ее можно решить в три простых шага. Требуется рабочее подключение к сети. После того как вы открыли свой терминал:

Warning


Следующие команды работают только тогда, когда ваше системное время установлено правильно!

1. Удалите старые (и, возможно, сломанные) ключи, введя эту команду:

user $ sudo rm -r /etc/pacman.d/gnupg COPY TO CLIPBOARD

2. Переустановите связки ключей, включая последние ключи:

user $ sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring COPY TO CLIPBOARD

3. Инициализируйте связку ключей pacman:

user $ sudo pacman-key —init COPY TO CLIPBOARD

4. Загрузите ключи подписи:

user $ sudo pacman-key —populate archlinux manjaro COPY TO CLIPBOARD

5. Обновите и актуализируйте ключи подписей(это может занять достаточно много времени):

user $ sudo pacman-key —refresh-keys COPY TO CLIPBOARD

6. Очистите пакеты программ, загруженные во время прерванной установки (необязательно):

user $ sudo pacman -Sc COPY TO CLIPBOARD

Info


Добавлена улучшенная версия, так как выше она не работает. Пакеты подписаны, и поскольку /etc/pacman.d/gnupg был удален, он не может быть установлен из-за проверки. Вместо редактирования /etc/pacman.conf и понижения SigLevel, было бы лучше установить ключи без проверки вручную, чтобы решить эту проблему.

1. Удалите старые (и, возможно, сломанные) ключи, введя эту команду:

user $ sudo rm -r /etc/pacman.d/gnupg COPY TO CLIPBOARD

2. Инициализируйте связку ключей pacman:

user $ sudo pacman-key —init COPY TO CLIPBOARD

3. Скачайте пакеты:

Информация


Ошибки проверки GPG можно игнорировать, так как загружаются только пакеты связок ключей.

Тем, кто работает на ARM, возможно, также потребуется загрузить archlinuxarm-keyring и manjaro-arm-keyring.

user $ mkdir -pv $HOME/.cache/pkg/ && sudo pacman -Syw archlinux-keyring manjaro-keyring —cachedir $HOME/.cache/pkg/ COPY TO CLIPBOARD

4. Удалите подписи:

Info


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

user $ rm -f $HOME/.cache/pkg/*.sig COPY TO CLIPBOARD

5. Установите загруженные пакеты вручную:

Информация


Это также запустит процесс заполнения.

user $ sudo pacman -U $HOME/.cache/pkg/*.tar.zst COPY TO CLIPBOARD

user $ sudo pacman -U $HOME/.cache/pkg/*.tar.xz COPY TO CLIPBOARD

6. Очистите пакеты программ, загруженные во время прерванной установки (необязательно):

Warning


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

.

user $ sudo pacman -Sc COPY TO CLIPBOARD

7. Удалите каталог пользовательских пакетов: (необязательно):

user $ sudo rm -Rf $HOME/.cache/pkg/ COPY TO CLIPBOARD

После этого попробуйте запустить sudo pacman -Syu и посмотреть, были ли устранены ошибки.

Конфликтующие файлы — FILENAME exists in filesystem

Если вы не можете установить или обновить пакет из-за ошибки, подобной этой:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
libname: /insert/file/name/here exists in filesystem
Errors occurred, no packages were upgraded.

Затем менеджер пакетов pacman обнаружил неожиданный файл, который уже существует на диске.

Почему это происходит?

По своей конструкции pacman не перезаписывает существующие файлы. Это особенность разработки, а не недостаток — менеджеры пакетов предназначены для отслеживания установленных файлов.

Обычно эта проблема возникает, когда вы вручную добавляете, копируете или создаете файл. Это также может произойти, если вы устанавливаете программное обеспечение с помощью загруженного исполняемого файла, выполняете make install или используете пакетную систему сторонних производителей, например conda. Это также происходит при установке пакета AUR, устанавливающий файлы, конфликтующие с пакетом из репозитория.

При использовании сторонней программы установки всегда указывайте альтернативное место установки, например, в вашем домашнем каталоге или в каталоге /opt или /usr/local/. Никогда не устанавливайте непосредственно в / или /usr.

Как мне это исправить?

Первый шаг — определить, какой пакет, если таковой имеется, владеет файлом. Это можно легко сделать с помощью:

user $ pacman -Qo /путь/к/файлу COPY TO CLIPBOARD

Если при этом обнаружится конфликтующий пакет, то вы можете решить удалить его с помощью команды pacman -R. Если пакет не обнаружен, вы можете удалить файл (или переместить его в резервное место).

Где можно прочитать больше?

Этот пост был вдохновлен (и адаптирован из):

Pacman — Решение проблем

В приведенном выше сообщении также есть ссылки на дальнейшее чтение.

Ошибка «Файл конфигурации…не распознан»

Менеджер пакетов Manjaro — pacman — использует файл под названием mirrorlist, сообщающий ему интернет-адреса серверов Manjaro для загрузки с них обновлений и программ. Эта ошибка возникает, если один или несколько адресов серверов, содержащихся в файле mirrorlist, не были указаны правильно, в результате чего pacman не может подключиться к ним. Еще одним признаком является то, что эта проблема также возникнет сразу после:

  • Установки Manjaro и редактирования файла mirrorlist во время установки, или
  • Редактирования файла mirrorlist позднее.

Смотрите руководство Переход на другой сервер загрузки для более подробной информации о том, как правильно выбрать и включить другой сервер Manjaro для загрузки.

Ошибка «GPGME error: No data»

Наиболее вероятная причина этой проблемы заключается в том, что pacman обнаружил ошибку или повреждение в одном или нескольких загружаемых пакетах программного обеспечения. Подписи и контрольные суммы пакетов используются для проверки достоверности загружаемого программного обеспечения, и если они не работают, попытка установки будет прервана для защиты вашей системы, пока проблема не будет решена.

Вариант 1: Базовое разрешение

Чтобы решить эту проблему, сначала выполните основную процедуру, приведенную ниже. Если это не сработает, можно воспользоваться более комплексной процедурой.

1. Загрузите базы данных пакетов и обновите систему:

user $ sudo pacman -Syyu COPY TO CLIPBOARD

2. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду:

user $ sudo pacman -Sc COPY TO CLIPBOARD

3. Повторите попытку прерванной загрузки.

Вариант 2: Комплексное решение

Если основная процедура не приведет к решению вопроса, можно предпринять дальнейшие шаги:

1. Выполните повторную синхронизацию с серверами Manjaro, чтобы убедиться, что все данные обновлены, введя команду:

user $ sudo pacman -Syy COPY TO CLIPBOARD

2. Обновите ключи подписей, введя команду:

user $ sudo pacman-key —refresh-keys COPY TO CLIPBOARD

3. Перезагрузите ключи подписей, введя команду:

user $ sudo pacman-key —populate archlinux manjaro COPY TO CLIPBOARD

4. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду:

user $ sudo pacman -Sc COPY TO CLIPBOARD

5. Повторите попытку прерванной загрузки.

Если ошибка не исчезла, то рекомендуется переход на другой сервер загрузки’.

Ошибка «keyserver refresh failed: No dirmngr»

Попробуйте выполнить следующую команду:

user $ sudo dirmngr </dev/null COPY TO CLIPBOARD

#
5 лет, 2 месяца назад

(отредактировано

5 лет, 2 месяца назад)

Темы:

9

Сообщения:

17

Участник с: 19 марта 2018

Всем привет, такая проблема при обновлении.

[[email protected] ~]$ sudo pacman -Suy
:: Обновление баз данных пакетов...
 core не устарел
 extra                                                               1604,1 KiB   218K/s 00:07 [########################################################] 100%
 community                                                              4,2 MiB   260K/s 00:17 [########################################################] 100%
 archlinuxfr не устарел
:: Запускается полное обновление системы...
разрешение зависимостей...
проверка конфликтов...

Пакеты (14) e2fsprogs-1.44.1-1  firefox-59.0.2-1  git-2.16.3-1  imlib2-1.5.1-1  libsystemd-238.51-1  libutil-linux-2.32-2  libwacom-0.29-1  linux-4.15.13-1
            python2-dateutil-2.7.2-1  systemd-238.51-1  systemd-sysvcompat-238.51-1  tzdata-2018d-1  util-linux-2.32-2  xfce4-pulseaudio-plugin-0.4.0-1

Будет установлено:  330,54 MiB
Изменение размера:    1,03 MiB

:: Приступить к установке? [Y/n] y
(14/14) проверка ключей                                                                        [########################################################] 100%
(14/14) проверяется целостность пакета                                                         [########################################################] 100%
(14/14) загрузка файлов пакетов                                                                [########################################################] 100%
(14/14) проверка конфликтов файлов                                                             [########################################################] 100%
ошибка: не удалось завершить транзакцию (конфликтующие файлы)
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/__init__.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/__init__.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/__init__.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_common.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_common.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_common.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_version.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_version.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/_version.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/easter.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/easter.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/easter.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/__init__.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/__init__.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/__init__.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/_parser.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/_parser.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/_parser.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/isoparser.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/isoparser.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/parser/isoparser.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/relativedelta.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/relativedelta.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/rrule.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/rrule.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/rrule.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/__init__.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/__init__.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/__init__.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_common.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_common.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_common.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_factories.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_factories.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/_factories.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/tz.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/tz.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/tz.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/win.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/win.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tz/win.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tzwin.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tzwin.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/tzwin.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/utils.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/utils.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/utils.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/__init__.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/__init__.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/__init__.pyo' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/dateutil-zoneinfo.tar.gz' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.py' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.pyc' существует в файловой системе
python2-dateutil: '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.pyo' существует в файловой системе
python2-dateutil: '/usr/share/licenses/python2-dateutil/LICENSE' существует в файловой системе
Обнаружены ошибки, пакеты не обновлены.

[[email protected] ~]$ pacman -Qo /usr/bin/python2.7
/usr/bin/python2.7 принадлежит python2 2.7.14-2

vs220

#
5 лет, 2 месяца назад

Участник с: 16 августа 2009

pacman -Qo /usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.pyc
Смотрите кому принадлежит

Funk2256

#
5 лет, 2 месяца назад

Темы:

9

Сообщения:

17

Участник с: 19 марта 2018

[[email protected] Загрузки]$ pacman -Qo /usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.pyc
ошибка: Ни один пакет не содержит '/usr/lib/python2.7/site-packages/dateutil/zoneinfo/rebuild.pyc'

Aivar

#
5 лет, 2 месяца назад

Темы:

4

Участник с: 17 февраля 2011

Тыц.

vs220

#
5 лет, 2 месяца назад

(отредактировано

5 лет, 2 месяца назад)

Участник с: 16 августа 2009

Проверьте ещё на всякий случай пару остальных. Если никому не принадлежит удаляйте или ставьте python2-dateutil с ключом форсе

pacman -Sf python2-dateutil
pacman - Suy 

Поправили:
Вместо -Sf надо

  -S --force   

Funk2256

#
5 лет, 2 месяца назад

Темы:

9

Сообщения:

17

Участник с: 19 марта 2018

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

sudo pacman -S --force python2-dateutil

Aivar

#
5 лет, 2 месяца назад

Темы:

4

Участник с: 17 февраля 2011

https://archlinux.org.ru/forum/post/202792/

vs220

pacman -Sf python2-dateutil
pacman - Suy 

Funk2256

#
5 лет, 2 месяца назад

(отредактировано

5 лет, 2 месяца назад)

Темы:

9

Сообщения:

17

Участник с: 19 марта 2018

Ну вот как так то, в чем причина таких отвалов?

:: Обновление баз данных пакетов...
 core                     130,1 KiB   116K/s 00:01 [######################] 100%
 extra                   1604,7 KiB  34,2K/s 00:47 [######################] 100%
 community                  4,2 MiB  43,3K/s 01:40 [######################] 100%
 archlinuxfr               10,7 KiB  86,7K/s 00:00 [######################] 100%
:: Запускается полное обновление системы...
разрешение зависимостей...
проверка конфликтов...

Пакеты (12) boost-libs-1.66.0-2  firefox-59.0.2-2  harfbuzz-1.7.6-2  icu-61.1-1
            libical-3.0.3-2  libxml2-2.9.8-2
            pycharm-community-edition-2018.1-1  qt5-base-5.10.1-7
            qt5-location-5.10.1-2  qt5-webkit-5.212.0alpha2-14  sdl2-2.0.8-5
            xfce4-terminal-0.8.7.3-1

Будет загружено:  188,08 MiB
Будет установлено:  592,10 MiB
Изменение размера:   57,10 MiB

:: Приступить к установке? [Y/n] y
:: Получение пакетов...
 icu-61.1-1-x86_64          8,4 MiB  38,8K/s 03:43 [######################] 100%
 boost-libs-1.66.0-2...     2,3 MiB  36,2K/s 01:06 [######################] 100%
 libxml2-2.9.8-2-x86_64  1266,5 KiB  28,0K/s 00:45 [######################] 100%
 sdl2-2.0.8-5-x86_64      575,8 KiB  23,6K/s 00:24 [######################] 100%
 harfbuzz-1.7.6-2-x86_64  447,8 KiB  26,5K/s 00:17 [######################] 100%
 firefox-59.0.2-2-x86_64    37,4 MiB  32,5K/s 19:36 [###########################] 100%
 libical-3.0.3-2-x86_64    339,3 KiB  31,3K/s 00:11 [###########################] 100%
 qt5-base-5.10.1-7-x86_64   11,4 MiB  29,9K/s 06:31 [###########################] 100%
 qt5-location-5.10.1-...     2,3 MiB  28,8K/s 01:22 [###########################] 100%
 qt5-webkit-5.212.0al...    12,2 MiB  28,9K/s 07:11 [###########################] 100%
 xfce4-terminal-0.8.7...   314,2 KiB  22,4K/s 00:14 [###########################] 100%
 pycharm-community-ed...   111,2 MiB  32,6K/s 58:14 [###########################] 100%
(12/12) проверка ключей                             [###########################] 100%
(12/12) проверяется целостность пакета              [###########################] 100%
(12/12) загрузка файлов пакетов                     [###########################] 100%
(12/12) проверка конфликтов файлов                  [###########################] 100%
ошибка: не удалось завершить транзакцию (конфликтующие файлы)
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/error_messages_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/locationvaluetypehelper_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/mapitemviewdelegateincubator_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qabstractgeotilecache_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qcache3q_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativecategory_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativecirclemapitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativecontactdetail_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeocodemodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomaneuver_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomap_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapcopyrightsnotice_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapitembase_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapitemgroup_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapitemview_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapitemview_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapparameter_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomapquickitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeomaptype_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeoroute_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeoroutemodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeoroutesegment_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativegeoserviceprovider_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeperiod_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplace_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplaceattribute_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplacecontentmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplaceeditorialmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplaceicon_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplaceimagemodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeplaceuser_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativepolygonmapitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativepolylinemapitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeratings_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativerectanglemapitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativereviewmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativeroutemapitem_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativesearchmodelbase_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativesearchresultmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativesearchsuggestionmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativesupplier_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qdeclarativesupportedcategoriesmodel_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocameracapabilities_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocameradata_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocameratiles_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocodereply_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocodingmanager_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeocodingmanagerengine_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeofiletilecache_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomaneuver_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomap_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomap_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomapitemgeometry_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomapparameter_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomappingmanager_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomappingmanager_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomappingmanagerengine_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomappingmanagerengine_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomaptype_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeomaptype_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoprojection_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoroute_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeorouteparser_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeorouteparser_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeorouteparserosrmv4_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeorouteparserosrmv5_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoroutereply_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeorouterequest_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoroutesegment_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoroutingmanager_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoroutingmanagerengine_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeoserviceprovider_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmap_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmap_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmappingmanagerengine_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmappingmanagerengine_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmapreply_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmapreply_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotiledmapscene_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotilefetcher_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotilefetcher_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotilerequestmanager_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotilespec_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qgeotilespec_p_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qlocationglobal_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplace_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceattribute_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacecategory_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacecontactdetail_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacecontent_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacecontentrequest_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceeditorial_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceicon_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceimage_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacemanagerengine_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceproposedsearchresult_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceratings_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacereply_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceresult_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacereview_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacesearchresult_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplacesupplier_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qplaceuser_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qquickgeomapgesturearea_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/qtlocation-config_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/5.10.1/QtLocation/private/unsupportedreplies_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoCodeReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoCodingManager' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoCodingManagerEngine' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoManeuver' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRoute' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRouteReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRouteRequest' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRouteSegment' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRoutingManager' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoRoutingManagerEngine' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoServiceProvider' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QGeoServiceProviderFactory' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QLocation' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlace' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceAttribute' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceCategory' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceContactDetail' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceContent' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceContentReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceContentRequest' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceDetailsReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceEditorial' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceIcon' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceIdReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceImage' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceManager' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceManagerEngine' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceMatchReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceMatchRequest' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceProposedSearchResult' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceRatings' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceResult' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceReview' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceSearchReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceSearchRequest' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceSearchResult' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceSearchSuggestionReply' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceSupplier' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QPlaceUser' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QtLocation' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QtLocationDepends' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/QtLocationVersion' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/placemacro.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeocodereply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeocodingmanager.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeocodingmanagerengine.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeomaneuver.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoroute.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoroutereply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeorouterequest.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoroutesegment.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoroutingmanager.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoroutingmanagerengine.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoserviceprovider.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qgeoserviceproviderfactory.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qlocation.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qlocationglobal.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplace.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceattribute.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacecategory.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacecontactdetail.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacecontent.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacecontentreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacecontentrequest.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacedetailsreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceeditorial.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceicon.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceidreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceimage.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacemanager.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacemanagerengine.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacematchreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacematchrequest.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceproposedsearchresult.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceratings.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacereply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceresult.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacereview.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacesearchreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacesearchrequest.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacesearchresult.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacesearchsuggestionreply.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplacesupplier.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qplaceuser.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qtlocation-config.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtLocation/qtlocationversion.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qclipperutils_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qdeclarativegeoaddress_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qdeclarativegeolocation_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qdoublematrix4x4_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qdoublevector2d_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qdoublevector3d_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeoaddress_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeocircle_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeocoordinate_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeolocation_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeopath_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeopositioninfo_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeopositioninfosource_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeorectangle_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qgeoshape_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qlocationdata_simulator_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qlocationutils_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qnmeapositioninfosource_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qpositioningglobal_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qtpositioning-config_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/5.10.1/QtPositioning/private/qwebmercator_p.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoAddress' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoAreaMonitorInfo' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoAreaMonitorSource' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoCircle' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoCoordinate' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoLocation' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPath' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPolygon' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPolygonPrivate' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPositionInfo' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPositionInfoSource' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoPositionInfoSourceFactory' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoRectangle' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoSatelliteInfo' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoSatelliteInfoSource' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QGeoShape' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QNmeaPositionInfoSource' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QtPositioning' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QtPositioningDepends' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/QtPositioningVersion' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeoaddress.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeoareamonitorinfo.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeoareamonitorsource.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeocircle.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeocoordinate.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeolocation.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeopath.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeopolygon.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeopositioninfo.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeopositioninfosource.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeopositioninfosourcefactory.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeorectangle.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeosatelliteinfo.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeosatelliteinfosource.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qgeoshape.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qnmeapositioninfosource.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qpositioningglobal.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qtpositioning-config.h' существует в файловой системе
qt5-location: '/usr/include/qt/QtPositioning/qtpositioningversion.h' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5LocationConfig.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5LocationConfigVersion.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_GeoServiceProviderFactoryEsri.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_QGeoServiceProviderFactoryItemsOverlay.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_QGeoServiceProviderFactoryMapbox.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_QGeoServiceProviderFactoryMapboxGL.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_QGeoServiceProviderFactoryNokia.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Location/Qt5Location_QGeoServiceProviderFactoryOsm.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Positioning/Qt5PositioningConfig.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Positioning/Qt5PositioningConfigVersion.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Positioning/Qt5Positioning_QGeoPositionInfoSourceFactoryGeoclue.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Positioning/Qt5Positioning_QGeoPositionInfoSourceFactoryGypsy.cmake' существует в файловой системе
qt5-location: '/usr/lib/cmake/Qt5Positioning/Qt5Positioning_QGeoPositionInfoSourceFactoryPoll.cmake' существует в файловой системе
qt5-location: '/usr/lib/libQt5Location.prl' существует в файловой системе
qt5-location: '/usr/lib/libQt5Location.so' существует в файловой системе
qt5-location: '/usr/lib/libQt5Location.so.5' существует в файловой системе
qt5-location: '/usr/lib/libQt5Location.so.5.10' существует в файловой системе
qt5-location: '/usr/lib/libQt5Location.so.5.10.1' существует в файловой системе
qt5-location: '/usr/lib/libQt5Positioning.prl' существует в файловой системе
qt5-location: '/usr/lib/libQt5Positioning.so' существует в файловой системе
qt5-location: '/usr/lib/libQt5Positioning.so.5' существует в файловой системе
qt5-location: '/usr/lib/libQt5Positioning.so.5.10' существует в файловой системе
qt5-location: '/usr/lib/libQt5Positioning.so.5.10.1' существует в файловой системе
qt5-location: '/usr/lib/pkgconfig/Qt5Location.pc' существует в файловой системе
qt5-location: '/usr/lib/pkgconfig/Qt5Positioning.pc' существует в файловой системе
qt5-location: '/usr/lib/qt/mkspecs/modules/qt_lib_location.pri' существует в файловой системе
qt5-location: '/usr/lib/qt/mkspecs/modules/qt_lib_location_private.pri' существует в файловой системе
qt5-location: '/usr/lib/qt/mkspecs/modules/qt_lib_positioning.pri' существует в файловой системе
qt5-location: '/usr/lib/qt/mkspecs/modules/qt_lib_positioning_private.pri' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_esri.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_itemsoverlay.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_mapbox.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_mapboxgl.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_nokia.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/geoservices/libqtgeoservices_osm.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/position/libqtposition_geoclue.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/position/libqtposition_gypsy.so' существует в файловой системе
qt5-location: '/usr/lib/qt/plugins/position/libqtposition_positionpoll.so' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtLocation/libdeclarative_location.so' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtLocation/plugins.qmltypes' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtLocation/qmldir' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtPositioning/libdeclarative_positioning.so' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtPositioning/plugins.qmltypes' существует в файловой системе
qt5-location: '/usr/lib/qt/qml/QtPositioning/qmldir' существует в файловой системе
qt5-location: '/usr/share/licenses/qt5-location' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qhttpheader_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebdatabase_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebelement_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebhistory_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebplugindatabase_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebscriptworld_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/5.212.0/QtWebKit/private/qwebsecurityorigin_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebDatabase' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebElement' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebElementCollection' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebFullScreenRequest' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebFullScreenVideoHandler' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebHapticFeedbackPlayer' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebHistory' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebHistoryInterface' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebHistoryItem' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebKitPlatformPlugin' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebNotificationData' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebNotificationPresenter' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebPluginFactory' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebSecurityOrigin' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebSelectData' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebSelectMethod' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebSettings' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebSpellChecker' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QWebTouchModifier' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QtWebKit' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QtWebKitDepends' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/QtWebKitVersion' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qtwebkitversion.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebdatabase.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebelement.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebfullscreenrequest.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebhistory.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebhistoryinterface.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebkitglobal.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebkitplatformplugin.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebpluginfactory.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebsecurityorigin.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKit/qwebsettings.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/5.212.0/QtWebKitWidgets/private/qwebframe_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/5.212.0/QtWebKitWidgets/private/qwebinspector_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/5.212.0/QtWebKitWidgets/private/qwebpage_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/5.212.0/QtWebKitWidgets/private/qwebviewaccessible_p.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QGraphicsWebView' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QWebFrame' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QWebHitTestResult' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QWebInspector' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QWebPage' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QWebView' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QtWebKitWidgets' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QtWebKitWidgetsDepends' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/QtWebKitWidgetsVersion' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qgraphicswebview.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qtwebkitwidgetsversion.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qwebframe.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qwebinspector.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qwebpage.h' существует в файловой системе
qt5-webkit: '/usr/include/qt/QtWebKitWidgets/qwebview.h' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKit/Qt5WebKitConfig.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKit/Qt5WebKitConfigVersion.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKit/WebKitTargets-release.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKit/WebKitTargets.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfigVersion.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsTargets-release.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsTargets.cmake' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKit.so' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKit.so.5' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKit.so.5.212.0' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKitWidgets.so' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKitWidgets.so.5' существует в файловой системе
qt5-webkit: '/usr/lib/libQt5WebKitWidgets.so.5.212.0' существует в файловой системе
qt5-webkit: '/usr/lib/pkgconfig/Qt5WebKit.pc' существует в файловой системе
qt5-webkit: '/usr/lib/pkgconfig/Qt5WebKitWidgets.pc' существует в файловой системе
qt5-webkit: '/usr/lib/qt/libexec/QtWebDatabaseProcess' существует в файловой системе
qt5-webkit: '/usr/lib/qt/libexec/QtWebNetworkProcess' существует в файловой системе
qt5-webkit: '/usr/lib/qt/libexec/QtWebPluginProcess' существует в файловой системе
qt5-webkit: '/usr/lib/qt/libexec/QtWebProcess' существует в файловой системе
qt5-webkit: '/usr/lib/qt/mkspecs/modules/qt_lib_webkit.pri' существует в файловой системе
qt5-webkit: '/usr/lib/qt/mkspecs/modules/qt_lib_webkitwidgets.pri' существует в файловой системе
qt5-webkit: '/usr/lib/qt/qml/QtWebKit/experimental/libqmlwebkitexperimentalplugin.so' существует в файловой системе
qt5-webkit: '/usr/lib/qt/qml/QtWebKit/experimental/qmldir' существует в файловой системе
qt5-webkit: '/usr/lib/qt/qml/QtWebKit/libqmlwebkitplugin.so' существует в файловой системе
qt5-webkit: '/usr/lib/qt/qml/QtWebKit/plugins.qmltypes' существует в файловой системе
qt5-webkit: '/usr/lib/qt/qml/QtWebKit/qmldir' существует в файловой системе
qt5-webkit: '/usr/share/licenses/qt5-webkit' существует в файловой системе
Обнаружены ошибки, пакеты не обновлены.

[[email protected] ~]$ pacman -Qo /usr/include/qt/QtLocation/QGeoCodeReply
ошибка: Ни один пакет не содержит '/usr/include/qt/QtLocation/QGeoCodeReply'
[[email protected] ~]$ pacman -Qo /usr/lib/qt/libexec/QtWebNetworkProcess
ошибка: Ни один пакет не содержит '/usr/lib/qt/libexec/QtWebNetworkProcess'
[[email protected] ~]$ pacman -Qo /usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake
ошибка: Ни один пакет не содержит '/usr/lib/cmake/Qt5WebKitWidgets/Qt5WebKitWidgetsConfig.cmake'

Aivar

#
5 лет, 2 месяца назад

Темы:

4

Участник с: 17 февраля 2011

Funk2256
в чем причина

Что-то устанавливали в обход пакетного менеджера, некоректно удаляли и т.д.

sirocco

#
5 лет, 2 месяца назад

(отредактировано

5 лет, 2 месяца назад)

Участник с: 25 июля 2007

Aivar
https://archlinux.org.ru/forum/post/202792/

vs220

pacman -Sf python2-dateutil
pacman - Suy 

Сейчас нужно писать в полном варианте –force
Короткий ключ -f уже несколько лет не работает.

При стандартном обновлении pacman -Syu недавно может выскочить ошибка key “493DE21C824E9541” could not be looked up remotely что-то там. Чтобы этого не возникало в будущем, надо чаще обновлять Arch Linux, желательно — каждый день. Чтобы исправить ошибку, надо дать такую команду от root-а: sudo pacman -U https://archive.archlinux.org/packages/a/archlinux-keyring/archlinux-keyring-20220927-1-any.pkg.tar.zst (если от root-а, то можно без sudo). После чего запустить обновление pacman -Syu еще раз. Всем хорошего дня!

Добрый день,
Только начал пользоваться манжарой, и возникла проблема.
Не могу обновить компоненты через приложение add soft.(snap/aur), да и памак тоже не работает.
Мой максимум возможностей, это устaновить что-то через flatpak.
Если пытаюсь что сделать через пакман, выдает он мне такое:
/// sudo pacman -Syyu

error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data
:: Synchronizing package databases...
 core                               169,2 KiB   685 KiB/s 00:00 [##################################] 100%
 extra                             1854,1 KiB  18,1 MiB/s 00:00 [##################################] 100%
 community                            6,9 MiB  26,4 MiB/s 00:00 [##################################] 100%
 multilib                           182,1 KiB  8,89 MiB/s 00:00 [##################################] 100%
error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data
error: GPGME error: No data
error: failed to synchronize all databases (invalid or corrupted database (PGP signature))

Если через приложение обновлять, то он сначала качает фаил один, а потом уходит в поиск пакетов и начинает жаловаться на PKBUILD, diff, и тд.
Что делать-то?

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.

Various issues relating to the download and installation of software packages from the Manjaro repositories are dealt with here.

«Unrecognized archive format» Error

It has ocurred more than once, an update is issuing these messages in a seemingly never ending stream.
Pacman could not open file: sync files

error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/extra.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/community.db: Unrecognized archive format
error: could not open file /var/lib/pacman/sync/multilib.db: Unrecognized archive format

The error relates to a mismatch in the information contained in the db files at the mentioned location and the db files at the first mirror in your mirrorlist. Pacman checks a package in the database and sees if the signature file matches the one in the database. If it does not, then pacman will say the package is corrupted.

While it sometimes is possible to fix the issue simply by deleting the files and the running a pacman update it far from every time.

One recipe for fixing this

It is mandatory to ensure that the keyrings is current. By ensuring the keyrings are in shape and then redownloading the databases we reestablish the chain of trust between the keyrings and the packages.

You will have to find the correct names by looking at

Browse https://mirror.easyname.at/manjaro/pool/overlay/ for the current manjaro-keyring

and

Browse https://mirror.easyname.at/manjaro/pool/sync for the current archlinux-keyring

Replace yyyymmdd and x with the info found at the above links

user $ sudo pacman -U https://mirror.easyname.at/manjaro/pool/overlay/manjaro-keyring-yyyymmdd-x-any.pkg.tar.xz COPY TO CLIPBOARD

user $ sudo pacman -U https://mirror.easyname.at/manjaro/pool/sync/archlinux-keyring-yyyymmdd-x-any.pkg.tar.xz COPY TO CLIPBOARD

Remove your faulty databases

user $ sudo rm -f /var/lib/pacman/sync/* COPY TO CLIPBOARD

Download the databases and update the system

user $ sudo pacman -Syyu COPY TO CLIPBOARD

«Unable to lock database» Error

When downloading and installing software from the repositories, a special database lock file will be created in order to ensure that the current installation process is the only one running at that time. Otherwise, attempting to install multiple files from multiple sources simultaneously may corrupt the downloaded files, cause file conflicts — or worse still — damage your system. Once the installation has been completed, the lock file will then be automatically deleted. This error may therefore occur due to two possible reasons:

  • Another installation is still taking place and has not yet finished, or
  • A previous installation attempt had not finished properly (e.g. due to being aborted early)

It is therefore wise to first check to ensure that another installation is not (or had not been) in process at the time of the error. When satisfied that this is not the case, then the database lock file can be manually deleted. To do so, open up the terminal and enter the following command:

user $ sudo rm /var/lib/pacman/db.lck COPY TO CLIPBOARD

Once done, you should now be able to successfully re-attempt your intended installation.

Errors about Keys

We all have our own unique signatures which are used to authenticate who we are and to prevent fraudulent or even malicious activities by others. This is also the case with software packages available from the software repositories. They all contain encrypted codes (signature keys) unique to their developers to ensure that they are authentic and not malicious in nature.

During the installation process, once any software packages have been downloaded, your system will first check their signature keys to ensure that they are authentic prior to actually installing them. If a signature key cannot be verified for any reason, then the installation process will be aborted. This problem will usually occur due to:

  • one or more signature keys contained in your system’s database being revoked, changed, corrupted, or out of date
  • one or more software packages not having been signed off properly when placed in a repository

Where a package has not been signed off properly before being placed in a repository, it will be the responsibility of the developer(s) to correct this. However, as this problem will be more than likely due to a problem with your system’s verification of a signiture key, this can be solved in three easy steps. Working net connection is required. Once you have opened your terminal:

Warning


The following commands only work, when your system time is set correctly!

1. Remove old (and possibly broken) keys by entering this command:

user $ sudo rm -r /etc/pacman.d/gnupg COPY TO CLIPBOARD

2. Reinstall keyrings including the latest keys:

user $ sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring COPY TO CLIPBOARD

3. Initialize the pacman keyring:

user $ sudo pacman-key —init COPY TO CLIPBOARD

4. Load the signature keys:

user $ sudo pacman-key —populate archlinux manjaro COPY TO CLIPBOARD

5. Refresh and update the signature keys:

user $ sudo pacman-key —refresh-keys COPY TO CLIPBOARD

6. Clear out the software packages downloaded during the aborted installation (optional):

user $ sudo pacman -Sc COPY TO CLIPBOARD

Info


Improved version added, since it doesn’t work that way above. The packages are signed and since /etc/pacman.d/gnupg has been removed, it cannot be installed due the check. Instead editing the /etc/pacman.conf and lowering the SigLevel, it would be better installing the keyrings without a check manually to overcome this problem.

1. Remove old (and possibly broken) keys by entering this command:

user $ sudo rm -r /etc/pacman.d/gnupg COPY TO CLIPBOARD

2. Initialize the pacman keyring:

user $ sudo pacman-key —init COPY TO CLIPBOARD

3. Download the packages:

Info


GPG check errors can be ignored, since it only downloads the keyring packages.

Those running ARM may also need to download archlinuxarm-keyring and manjaro-arm-keyring.

user $ mkdir -pv $HOME/.cache/pkg/ && sudo pacman -Syw archlinux-keyring manjaro-keyring —cachedir $HOME/.cache/pkg/ COPY TO CLIPBOARD

4. Remove the signatures:

Info


Signatures must be removed to avoid the automatic check of the packages.

user $ rm -f $HOME/.cache/pkg/*.sig COPY TO CLIPBOARD

5. Install the downloaded packages manually:

Info


This will also trigger the populate process.

user $ sudo pacman -U $HOME/.cache/pkg/*.tar.zst COPY TO CLIPBOARD

user $ sudo pacman -U $HOME/.cache/pkg/*.tar.xz COPY TO CLIPBOARD

6. Clear out the software packages downloaded during the aborted installation (optional):

Warning


The above command clears the pacman cache completely, and one will not be able to downgrade to a previous version of a package if required. Instead packages that are causing signing errors can be removed individually when upgrading.

user $ sudo pacman -Sc COPY TO CLIPBOARD

7. Remove the custom package folder: (optional):

user $ sudo rm -Rf $HOME/.cache/pkg/ COPY TO CLIPBOARD

After that try running sudo pacman -Syu to see if the errors were resolved.

Conflicting files — FILENAME exists in filesystem

If you cant can’t install or update a package because of an error like this:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
libname: /insert/file/name/here exists in filesystem
Errors occurred, no packages were upgraded.

Then the package manager, pacman, has detected an unexpected file that already exists on the disk.

Why is this happening?

By design pacman will not overwrite files that already exist. This is a design feature, not a flaw — package managers are designed to keep track of installed files.

This issue normally happens because you’ve manually added, copied, or created a file. It can also happen when you install software using a downloaded executable, run a make install, or use a third-party package system such as conda. It also occurs when you install an AUR package which installs files that conflict with a repo package.

When using a third-party installer you should always specify an alternative installation location, such as under your home directory, or under /opt or /usr/local/. Never install directly under / or /usr.

How can I fix this?

The first step is to identify which, if any, package owns the file. This can be easily done with:

user $ pacman -Qo /path/to/file COPY TO CLIPBOARD

If this identifies a conflicting package you can decide to remove it with pacman -R. If no package is identified you can delete the file (or move it to a backup location).

Where can I read more?

This post was inspired by (and adapted from):

https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error

The above post also has links to further reading.

«Configuration file…not recognized» Error

Manjaro’s package manager — pacman — uses a file called mirrorlist to tell it the internet addresses of the Manjaro servers in order to download updates and software applications from them. This error will therefore occur if one or more server addresses contained in the mirrorlist file have not been listed properly, resulting in pacman being unable to connect to them. Another tell-tale sign is that this problem will also be encountered immediately after:

  • Installing Manjaro and editing the mirrorlist file during installation, or
  • Editing the mirrorlist file at a later time.

See the Change to a Different Download Server guide for more detailed information on how to correctly select and enable another Manjaro server for downloading.

«GPGME error: No data» Error

The most likely cause of this issue is that an error or corruption has been detected by pacman in one or more software packages being downloaded. Package signatures and checksums are used to verify the validity of downloaded software, and should they fail, the installation attempt will be aborted to protect your system until the matter is resolved.

Option 1: Basic Resolution

To resolve this issue, first follow the basic procedure provided below. If this does not work, then there is a more comprehensive procedure available.

1. Download the package databases and update your system:

user $ sudo pacman -Syyu COPY TO CLIPBOARD

2. Clear out the software packages downloaded during the aborted installation by entering the command:

user $ sudo pacman -Sc COPY TO CLIPBOARD

3. Re-attempt the aborted download.

Option 2: Comprehensive Resolution

If the basic proceedure still does not resolve the matter, further steps are available:

1. Resynchronise with the Manjaro servers to ensure that everything is up to date by entering the command:

user $ sudo pacman -Syy COPY TO CLIPBOARD

2. Refresh and update the signature keys by entering the command:

user $ sudo pacman-key —refresh-keys COPY TO CLIPBOARD

3. Reload the signature keys by entering the command:

user $ sudo pacman-key —populate archlinux manjaro COPY TO CLIPBOARD

4. Clear out the software packages downloaded during the aborted installation by entering the command:

user $ sudo pacman -Sc COPY TO CLIPBOARD

5. Re-attempt the aborted download.

If the error still persists, then it is recommended to Change to a Different Download Server.

«keyserver refresh failed: No dirmngr» Error

Try running the following command:

user $ sudo dirmngr </dev/null COPY TO CLIPBOARD

Состояние перевода: На этой странице представлен перевод статьи pacman/Package signing. Дата последней синхронизации: 12 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Для определения подлинности пакетов pacman использует ключи GnuPG и сеть доверия. Действующие мастер-ключи Arch Linux можно найти здесь. Ключи разработчиков и доверенных пользователей, которыми они подписывают свои пакеты, должны быть подписаны минимум тремя мастер-ключами. У каждого пользователя также есть свой уникальный PGP-ключ, сгенерированный при настройке утилиты pacman-key. Сеть доверия связывает ключи пользователей и мастер-ключи.

Примеры сетей доверия:

  • Пользовательские пакеты: обычный пользователь создаёт пакет и подписывает его своим локальным ключом.
  • Неофициальные пакеты: разработчик создаёт пакет и подписывает его ключом разработчика; обычный пользователь подписывает ключ разработчика локальным ключом.
  • Официальные пакеты: разработчик создаёт пакет и подписывает его ключом разработчика, подписанным мастер-ключами Arch Linux; обычный пользователь подписывает локальным ключом мастер-ключ и доверяет последнему поручиться за разработчика.

Примечание: Протокол HKP использует TCP-порт 11371. Утилите pacman-key нужен этот порт для скачивания подписанных ключей с серверов.

Настройка

Настройка pacman

Опция SigLevel в файле /etc/pacman.conf определяет необходимый для установки пакета уровень доверия. Подробную информацию о SigLevel можно найти в руководстве pacman.conf(5) § PACKAGE AND DATABASE SIGNATURE CHECKING и в комментариях в самом файле. Можно настроить проверку подписи как глобально, так для каждого репозитория в отдельности. Если задать SigLevel глобально в разделе [options], то абсолютно все пакеты должны быть подписаны. Пакеты, которые вы собрали сами, необходимо подписывать с помощью утилиты makepkg.

Примечание: В настоящее время все официальные пакеты подписаны, но подписывание баз данных на ноябрь 2018 не завершено. Если в параметре SigLevel задано значение Required, необходимо также указать и DatabaseOptional.

Настройка по умолчанию позволяет устанавливать только те пакеты, которые подписаны доверенными ключами:

/etc/pacman.conf
SigLevel = Required DatabaseOptional

Параметр TrustedOnly используется в pacman по умолчанию, то есть настройка ниже аналогична предыдущей:

SigLevel = Required DatabaseOptional TrustedOnly

То же самое можно задать и для отдельного репозитория далее в файле конфигурации:

[core]
SigLevel = PackageRequired
Include = /etc/pacman.d/mirrorlist

Здесь явно задаётся проверка подписи для пакетов из этого репозитория, но подпись базы данных не проверяется. Если задать здесь значение Optional, то для этого репозитория глобальное значение Required станет недействительно.

Важно: SigLevel TrustAll даёт системе указание считать все ключи доверенными. Эта значение используется только для целей отладки. Для официальных репозиториев необходимо использовать значение TrustedOnly.

Инициализация связки ключей

Для инициализации связки ключей pacman выполните:

# pacman-key --init

Для инициализации необходима энтропия. Чтобы сгенерировать больше энтропии, активно двигайте мышью, нажимайте случайные клавиши или выполняейте действия, связанные с диском (например, запустите в другой консоли ls -R /, find / -name foo или dd if=/dev/sda8 of=/dev/tty7). Если энтропия системы недостаточна, этот этап может занять часы; активная генерация энтропии ускорит процесс.

Генерируемая последовательность случайных чисел используется для создания связки ключей (/etc/pacman.d/gnupg) и GPG-ключа вашей системы.

Примечание: Если вы запускаете pacman-key --init на компьютере, который не генерирует много энтропии (например, на удалённом сервере), создание ключа может занять очень много времени. Для выработки псевдоэнтропии установите утилиты haveged или rng-tools и запустите соответствующую службу перед командой pacman-key --init.

Управление связкой ключей

Проверка мастер-ключей

Первоначальная настройка ключей выполняется командой:

# pacman-key --populate archlinux

При появлении запроса необходимо проверить подлинность мастер-ключей, поскольку они используются для подписи всех пакетов совместно с ключами разработчиков.

PGP-ключи довольно велики (2048 бит или больше), что делает их неудобными для восприятия людьми. Поэтому на основе ключа вычисляется 40-разрядная шестнадцатеричная хэш-сумма, по которой можно проверить его подлинность. Также нужно помнить, что последние восемь цифр хэш-суммы часто используют как имя или (короткий) ID ключа, а последние шестнадцать — как длинный ID ключа.

Добавление ключей разработчика

Ключи официальных разработчиков и доверенных пользователей подписываются мастер-ключами, так что вам не нужно использовать pacman-key, чтобы подписывать их самостоятельно. Когда pacman встречает в подписи пакета ключ, который не удаётся распознать, то предлагает скачать его с сервера ключей, указанного в параметре keyserver в файле /etc/pacman.d/gnupg/gpg.conf или в опции --keyserver командной строки. Перечень серверов ключей можно найти в Википедии.

Ключ разработчика нужно скачать всего единожды, после этого он будет использоваться для проверки любого пакета от этого разработчика.

Примечание: Пакет archlinux-keyring, являющийся зависимостью для pacman, содержит самые свежие на момент последнего обновления ключи. При необходимости ключи можно также обновить вручную командой pacman-key --refresh-keys с правами root. При выполнении этой команды pacman-key попытается найти на сервере ключей также и ваш локальный ключ, после чего выдаст сообщение, что ключ не найден — это нормально.

Добавление неофициальных ключей

Этим способом можно добавить в связку ключей pacman свой ключ или включить подписанный неофициальный репозиторий.

В первую очередь получите у владельца ключа его ID (keyid). Добавьте полученный ключ в связку:

  1. Если ключ находится на сервере ключей, импортируйте его командой:
    # pacman-key --recv-keys keyid
  2. Если у вас есть ссылка на файл ключа, скачайте его и выполните:
    # pacman-key --add /путь/к/скачанному/файлу/ключа

Всегда старайтесь проверять отпечаток — как мастер-ключей, так любых других ключей, которые вы собираетесь подписать:

# pacman-key --finger keyid

Наконец, подпишите импортированный ключ локально:

# pacman-key --lsign-key keyid

Теперь этот ключ будет считаться доверенным.

Отладка при помощи gpg

При отладке доступ к связке ключей pacman можно получить напрямую с помощью gpg, например:

# gpg -- homedir /etc/pacman.d/gnupg --list-keys

Решение проблем

error: signature from xxx is invalid

Важно: Работа pacman-key зависит от настроек системного времени. Если системные часы неверны, при обновлении вы получите следующую ошибку:

error: PackageName: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occured, no packages were upgraded.

Эта ошибка связана с gpg. Она означает, что пакет на диске не сооветствует пакету, который был подписан его сопроводителем. Выяснить причину может быть непросто, но в большинстве случаев удаление файла и скачивание его заново решает проблему. И в любом случае, такое сообщение об ошибке свидетельствует о проблеме с gpg и ключами, которые используются для подписывания пакетов.

Ниже приведены три возможных решения. Если вы не уверены, что выбрать, попросите о помощи на форуме.

Удаление старых версий пакетов

Если постоянно возникает проблема с одним и тем же пакетом и вы уверены, что дело не в pacman-key, попробуйте удалить плохой пакет из кэша командой rm /var/cache/pacman/pkg/плохой_пакет* и скачайте его заново.

Удаление пакета из кэша может помочь при ошибке error: linux: signature from "<Some.Person@example.com>" is invalid, произошедшей при обновлении. Такое сообщение не обязательно является свидетельством атаки «человек-посередине» — возможно, пакет просто был повреждён при скачивании.

Сброс ключей

Для сброса всех установленных в системе ключей необходимо удалить каталог /etc/pacman.d/gnupg. После этого выполните команды pacman-key --init и pacman-key --populate archlinux, чтобы добавить базовый набор ключей заново.

Отключение проверки подписи

Важно: Используйте с осторожностью. Отключение проверки подписи приведёт к тому, что pacman будет без возражений устанавливать любые пакеты, в том числе и недоверенные.

Если подписи пакетов вас не интересуют, можно полностью отключить их проверку. Отредактируйте файл /etc/pacman.conf, раскомментировав следующую строку в разделе [options]:

SigLevel = Never

Также необходимо закомментировать все параметры SigLevel в настройках репозиториев, потому что они имеют приоритет над глобальными настройками. В результате подпись пакетов проверяться не будет, как это было в pacman до четвертой версии. В этом случае устанавливать связку ключей при помощи pacman-key не нужно. Позже при необходимости можно будет включить проверку подписи пакетов обратно.

Не удаётся импортировать ключи

Возможные причины:

  • Устаревший пакет archlinux-keyring;
  • Неправильные настройки даты и времени;
  • Интернет-провайдер блокирует порт, используемый для импорта PGP-ключей;
  • Кэш pacman содержит неподписанные пакеты, оставшиеся с предыдущих попыток;
  • Демон dirmngr не был правильно настроен;
  • Вы давно не обновлялись и gpg/pacman не справились с обновлением.

Давно не обновлявшийся пакет archlinux-keyring может привести к проблемам при синхронизации обновлений.

Ниже приведено несколько возможных решений.

Обновление системы

Прежде всего попробуйте обновить систему.

Смена сервера ключей

Если вы предполагаете, что проблема связана с сервером ключей, то можно попробовать переключиться на сервер ключей Ubuntu. Отредактируйте файл /etc/pacman.d/gnupg/gpg.conf, изменив значение keyserver:

keyserver hkp://keyserver.ubuntu.com

Удаление кэшированных пакетов

Возможно, кэш pacman в каталоге /var/cache/pacman/pkg/ содержит неподписанные пакеты. Очистите кеш вручную:

# pacman -Sc

что удалит все пакеты в кэше, которые не были установлены.

Не удаётся опознать подпись пакета

Иногда при выполнении pacman -Syu вы можете столкнуться со следующей ошибкой:

error: название_пакета: signature from "создатель_пакета" is unknown trust

Такое происходит, когда ключ создателя пакета отсутствует в локальной базе данных pacman-key или не является доверенным. Pacman не всегда имеет возможность проверить, был ли ключ скачан и является ли он доверенным, перед тем как продолжить обновление. Также возможно, что срок действия ключа истёк.

Возможные решения:

  • обновить ключи командой pacman-key --refresh-keys;
  • вручную подписать недоверенный ключ локально;
  • сбросить ключи;
  • временно установить параметр SigLevel в значение TrustAll (не рекомендуется).

Обновление ключей через прокси

Чтобы можно было обновлять ключи через прокси-сервер, задайте параметр honor-http-proxy в файлах /etc/gnupg/dirmngr.conf и /etc/pacman.d/gnupg/dirmngr.conf. Подробнее смотрите GnuPG#Use a keyserver.

Примечание: Если pacman-key был запущен без опции honor-http-proxy и все равно завершился с ошибкой, попробуйте перезагрузиться.

Смотрите также

  • DeveloperWiki:Package Signing Proposal for Pacman
  • Pacman Package Signing – 1: Makepkg and Repo-add
  • Pacman Package Signing – 2: Pacman-key
  • Pacman Package Signing – 3: Pacman
  • Pacman Package Signing – 4: Arch Linux

This brief guide describes how to fix invalid or corrupted package (PGP signature) error in Arch Linux and its variants like EndeavourOS and Manjaro Linux.

Introduction

The other day I encountered with the following error when I tried to upgrade my Arch Linux system using command sudo pacman -Syu:

[...]
:: File /var/cache/pacman/pkg/libpsl-0.16.1-1-x86_64.pkg.tar.xz is corrupted (invalid or corrupted package (PGP signature)).
Do you want to delete it? [Y/n] y
error: failed to commit transaction (invalid or corrupted package)
Errors occurred, no packages were upgraded.

Then, I ran 'sudo pacman -Syyu' command, but still no luck. I kept getting the same error every time.

After a bit of search on Google and Arch Linux forums, I found that there are new keys in the archlinux-keyring package.

Fix «invalid or corrupted package (PGP signature)» error in Arch Linux

To solve «invalid or corrupted package (PGP signature)» error in Arch Linux, we need to update the archlinux-keyring package.

To do so, run:

$ sudo pacman -S archlinux-keyring

Sample output:

resolving dependencies...
looking for conflicting packages...

Packages (1) archlinux-keyring-20170104-1

Total Installed Size: 0.81 MiB
Net Upgrade Size: 0.04 MiB

:: Proceed with installation? [Y/n] y
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(1/1) checking available disk space [######################] 100%
:: Processing package changes...
(1/1) upgrading archlinux-keyring [######################] 100%
==> Appending keys from archlinux.gpg...
gpg: marginals needed: 3 completes needed: 1 trust model: PGP
gpg: depth: 0 valid: 1 signed: 6 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: depth: 1 valid: 6 signed: 69 trust: 0-, 0q, 0n, 6m, 0f, 0u
gpg: depth: 2 valid: 69 signed: 7 trust: 69-, 0q, 0n, 0m, 0f, 0u
gpg: next trustdb check due at 2017-09-07
==> Locally signing trusted keys in keyring...
 -> Locally signing key 0E8B644079F599DFC1DDC3973348882F6AC6A4C2...
 -> Locally signing key 684148BB25B49E986A4944C55184252D824B18E8...
 -> Locally signing key 91FFE0700E80619CEB73235CA88E23E377514E00...
 -> Locally signing key 44D4A033AC140143927397D47EFD567D4C7EA887...
 -> Locally signing key 27FFC4769E19F096D41D9265A04F9397CDFD6BB0...
 -> Locally signing key AB19265E5D7D20687D303246BA1DFB64FFF979E7...
==> Importing owner trust values...
==> Disabling revoked keys in keyring...
 -> Disabling key F5A361A3A13554B85E57DDDAAF7EF7873CFD4BB6...
 -> Disabling key 7FA647CD89891DEDC060287BB9113D1ED21E1A55...
 -> Disabling key D4DE5ABDE2A7287644EAC7E36D1A9E70E19DAA50...
 -> Disabling key BC1FBE4D2826A0B51E47ED62E2539214C6C11350...
 -> Disabling key 9515D8A8EAB88E49BB65EDBCE6B456CAF15447D5...
 -> Disabling key 4A8B17E20B88ACA61860009B5CED81B7C2E5C0D2...
 -> Disabling key 63F395DE2D6398BBE458F281F2DBB4931985A992...
 -> Disabling key 0B20CA1931F5DA3A70D0F8D2EA6836E1AB441196...
 -> Disabling key 8F76BEEA0289F9E1D3E229C05F946DED983D4366...
 -> Disabling key 66BD74A036D522F51DD70A3C7F2A16726521E06D...
 -> Disabling key 81D7F8241DB38BC759C80FCE3A726C6170E80477...
 -> Disabling key E7210A59715F6940CF9A4E36A001876699AD6E84...
==> Updating trust database...
gpg: next trustdb check due at 2017-09-07

The above command will update the new keys and disable the revoked keys in your Arch Linux system.

Again, I tried to upgrade my Arch Linux using command:

$ sudo pacman -Syu

This time the upgrade process went well without any issues.

22 comments

ph9214
November 12, 2017 — 9:03 pm

How do I add new ones like for mono-addins


Reply

AVL
September 29, 2018 — 8:58 pm

often problems- no key.
sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring fast, important
sudo pacman -Syu big download/install
[clear is deleting operation !]
pacman-key –refresh-keys fast, important, impact


Reply

Manuel
December 9, 2018 — 12:19 am

Worked like a charm! Thank you very much.


Reply

keith sanby
January 7, 2019 — 11:17 pm

Worked for me THANKS


Reply

cereberus
February 15, 2019 — 4:01 am

I got this error out of the blue, your solution helped me to resolve it. Thank you!


Reply

Aaron Geoffrey Blomgren
March 1, 2019 — 11:34 am

OMG Thank you


Reply

sk
March 1, 2019 — 12:36 pm

You’re welcome.


Reply

Mike
April 9, 2019 — 12:02 pm

Thank you!


Reply

at
June 4, 2019 — 2:21 am

thanks x 100000


Reply

Peter
June 21, 2019 — 10:38 pm

Thanks!


Reply

elig0n
July 6, 2019 — 10:18 pm


Reply

Anonymous
July 31, 2019 — 9:22 am

Thanks Man…


Reply

longhairhippy
August 15, 2019 — 10:58 am

Seriously helpful! Thank you!


Reply

B
March 9, 2022 — 3:31 am

THANK YOU. My Arch system was doing this for TWO MONTHS and I just finally fixed it with this! 😀


Reply

Janko
April 29, 2022 — 2:22 pm

Working in 2022 for EndeavourOS as well, thank you a lot!


Reply

Teagan
May 30, 2022 — 11:46 pm

I couldn’t update it because of the missingcorrupted key


Reply

Doria
July 24, 2022 — 12:12 pm

After 1 hour trying different solutions for this problem I found this one and it worked! Updating the keyring did the trick for me.
Thanks a lot!


Reply

sk
July 24, 2022 — 1:20 pm

Glad it worked out for you. Happy to help.


Reply

Kgb
August 5, 2022 — 1:13 am

Thanks


Reply

kapil
October 28, 2022 — 8:43 pm

Thank you very much


Reply

eisGeist
December 22, 2022 — 12:51 pm

Dear SK, thank you so much!
I’m a Arch Linux newbee and your post solved the issue keeping me from successfully update my linux box.
Cheers!


Reply

Urias
December 23, 2022 — 4:35 am

You saved my day. I was having troubles installing python-docutils before I could compile a Wps Office package.


Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Ссылки по теме

  • Создание пакетов
  • Откат пакетов
  • pacman (Русский)/Подпись пакетов
  • pacman (Русский)/Pacnew и Pacsave
  • pacman (Русский)/Восстановление локальной базы данных
  • pacman/Rosetta
  • pacman (Русский)/Советы и приёмы
  • ЧаВо#Управление пакетами
  • Обслуживание системы
  • Система сборки Arch
  • Официальные репозитории
  • Пользовательский репозиторий Arch

Состояние перевода: На этой странице представлен перевод статьи pacman. Дата последней синхронизации: 2 февраля 2020. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

[Система управления пакетами](https://en.wikipedia.org/wiki/ru:%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BF%D0%B0%D0%BA%D0%B5%D1%82%D0%B0%D0%BC%D0%B8 и пакеты в двоичном формате. Цель pacman — организация удобного управления пакетами вне зависимости от того, взяты они из официальных репозиториев или же собраны самостоятельно.

pacman поддерживает систему в актуальном состоянии, синхронизируя пакеты с сервером. Эта клиент-серверная модель позволяет пользователю скачивать/устанавливать пакеты со всеми требуемыми зависимостями всего одной командой.

pacman написан на языке Си и использует формат пакетов .pkg.tar.xz.

Совет: Официальный пакет pacman также содержит такие утилиты, как makepkg и vercmp(8). В пакет pacman-contrib вошли другие полезные программы, например, pactree и checkupdates, которые раньше были частью pacman. Команда pacman -Ql pacman pacman-contrib | grep -E 'bin/.+' выведет полный список доступных утилит.

Contents

  • 1 Использование
    • 1.1 Установка пакетов
      • 1.1.1 Установка отдельных пакетов
      • 1.1.2 Установка группы пакетов
    • 1.2 Удаление пакетов
    • 1.3 Обновление пакетов
    • 1.4 Запросы к базам данных пакетов
      • 1.4.1 Pactree
      • 1.4.2 Структура базы данных
    • 1.5 Очистка кэша пакетов
    • 1.6 Дополнительные команды
    • 1.7 Причина установки
    • 1.8 Поиск пакета по названию файла
  • 2 Настройка
    • 2.1 Глобальные параметры
      • 2.1.1 Сравнение версий пакетов перед обновлением
      • 2.1.2 Запрет на обновление отдельных пакетов
      • 2.1.3 Запрет на обновление группы пакетов
      • 2.1.4 Запрет на обновление файлов
      • 2.1.5 Запрет на установку файлов
      • 2.1.6 Работа с несколькими файлами настроек
      • 2.1.7 Хуки
    • 2.2 Репозитории и зеркала
      • 2.2.1 Безопасность пакетов
  • 3 Решение проблем
    • 3.1 Failed to commit transaction (conflicting files)
    • 3.2 Failed to commit transaction (invalid or corrupted package)
    • 3.3 Failed to init transaction (unable to lock database)
    • 3.4 Не удаётся найти пакет для установки
    • 3.5 Pacman падает при обновлении
    • 3.6 Переустановка pacman вручную
    • 3.7 Ошибка «Unable to find root device» после перезагрузки
    • 3.8 Signature from «User email@example.org» is unknown trust, installation failed
    • 3.9 Требование импортировать ключи PGP
    • 3.10 Error: key «0123456789ABCDEF» could not be looked up remotely
    • 3.11 Signature from «User email@archlinux.org» is invalid, installation failed
    • 3.12 Warning: current locale is invalid; using default «C» locale
    • 3.13 Pacman игнорирует настройки прокси
    • 3.14 Как переустановить все пакеты, сохранив информацию о том, какие из них установлены вручную, а какие — в качестве зависимостей?
    • 3.15 Cannot open shared object file
    • 3.16 Проблемы с загрузкой пакетов
    • 3.17 Failed retrieving file ‘core.db’ from mirror
  • 4 Пояснения
    • 4.1 Процесс установки/обновления/удаления пакета
  • 5 Смотрите также

Использование

В этом разделе приведена небольшая подборка доступных возможностей pacman. Больше примеров можно найти в руководстве pacman(8).

Совет: Если раньше вы использовали другой дистрибутив Linux, то будет полезно ознакомиться со статьёй Pacman Rosetta.

Установка пакетов

Примечание:

  • Часто у пакетов есть опциональные зависимости, которые не являются обязательными, но предоставляют дополнительную функциональность. Во время установки pacman выведет список опциональных зависимостей, но в файле pacman.log упоминаний о них не будет. Чтобы получить информацию об опциональных зависимостях пакета, используйте #Запросы к базам данных пакетов.
  • При установке пакета, который нужен только в качестве зависимости для другого пакета, в том числе опциональной, и который не будет использоваться напрямую, рекомендуется использовать параметр --asdeps. Подробнее смотрите раздел #Причина установки.

Важно: При установке пакетов старайтесь не синхронизировать базу данных пакетов без последующего обновления системы (например, на случай, если пакета уже нет в официальных репозиториях). В частности, не используйте команду pacman -Sy *название_пакета* вместо pacman -Sy**u** *название_пакета*, потому что это может привести к проблемам с зависимостями. Подробнее смотрите статью System maintenance#Частичные обновления не поддерживаются и ветку форума BBS#89328.

Установка отдельных пакетов

Для установки одного пакета или списка пакетов (включая зависимости) используйте следующую команду:

# pacman -S *название_пакета1* *название_пакета2* ...

Для установки списка пакетов при помощи поиска по регулярному выражению (смотрите эту ветку форума) выполните:

# pacman -S $(pacman -Ssq *регулярное_выражение*)

Если пакет имеет несколько версий в разных репозиториях (например, в extra и testing), можно указать, откуда именно следует установить пакет:

# pacman -S extra/*имя_пакета*

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

# pacman -S plasma-{desktop,mediacenter,nm}

Можно использовать несколько уровней вложенных фигурных скобок:

# pacman -S plasma-{workspace{,-wallpapers},pa}

Установка группы пакетов

Некоторые пакеты объединены в группы и могут устанавливаться одной командой. Например, после команды

вам будет предложено выбрать пакеты из группы gnome, которые вы хотели бы установить.

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

Enter a selection (default=all): 1-10 15

— будут выбраны все пакеты в диапазоне с 1 по 10, а также 15;

Enter a selection (default=all): ^5-8 ^2

— будут выбраны все пакеты, кроме входящих в диапазон с 5 по 8, а также 2.

Чтобы увидеть список пакетов, принадлежащих к группе gnome, выполните:

Перечень групп можно найти на странице https://www.archlinux.org/groups/.

Примечание: Установлены будут все пакеты из списка, в том числе и те, которые уже были установлены в систему ранее — даже если они последней версии и не нуждаются в обновлении. Чтобы не устанавливать такие пакеты заново, укажите параметр --needed.

Удаление пакетов

Удалить пакет, не удаляя его зависимости:

# pacman -R *название_пакета*

Удалить пакет и те его зависимости, которые не нужны никаким другим пакетам:

# pacman -Rs *название_пакета*

Удалить пакет, его зависимости, а также все пакеты, для которых он сам является зависимостью:

Важно: Эта операция рекурсивна. Используйте её с осторожностью — есть риск удалить нужные пакеты.

# pacman -Rsc *название_пакета*

Удалить пакет, который требуется другому пакету, без удаления зависимостей:

Важно: Этой операции следует избегать, так как она может нанести тяжелый вред системе. Подробнее смотрите статью System maintenance#Избегайте определенных команд pacman.

# pacman -Rdd *название_пакета*

pacman создает резервные копии конфигурационных файлов удаляемых приложений и добавляет к ним расширение .pacsave. Если вы хотите удалить и эти файлы, используйте ключ -n:

# pacman -Rn *название_пакета*

Примечание: pacman не удаляет файлы настроек, которые созданы самими приложениями — например, скрытые файлы (имя которых начинается с точки) в домашнем каталоге).

Обновление пакетов

Важно:

  • Обновление системы следует выполнять регулярно, следуя рекомендациям в статье System maintenance#Обновление системы. При этом пользователь должен понимать смысл выполняемых действий, а не слепо повторять предложенные команды.
  • Arch поддерживает только полные обновления системы. Смотрите статьи System maintenance#Частичные обновления не поддерживаются и #Установка пакетов.

pacman полностью обновляет систему всего одной командой. Если система давно не обновлялась, процесс может занять довольно длительное время. Приведённая ниже команда одновременно синхронизирует базы данных репозиториев и выполняет обновление системы — при этом пакеты, которых нет в подключённых репозиториях, обновлены не будут:

Запросы к базам данных пакетов

Для взаимодействия с базами данных в pacman предусмотрены флаги -Q (база данных пакетов), -S (база данных синхронизации) и -F (база данных файлов). Команды pacman -Q --help, pacman -S --help и pacman -F --help выведут список возможных опций для этих флагов.

pacman может выполнять поиск в базе данных как среди названий пакетов, так и по их описаниям:

$ pacman -Ss *условие1* *условие2* ...

Иногда поиск с параметром -s выдаёт много ненужных результатов, поэтому имеет смысл ограничить поиск только названиями пакетов, отключив поиск по описаниям и другим полям. Для этого можно использовать регулярные выражения:

Искать среди установленных пакетов:

$ pacman -Qs *условие1* *условие2* ...

Искать пакет в репозиториях по названию файла:

$ pacman -F *условие1* *условие2* ...

Показать подробную информацию о пакете в репозитории:

$ pacman -Si *название_пакета*

То же самое — для установленного пакета:

$ pacman -Qi *название_пакета*

Если указать сразу два флага -i, то будет также выведен список резервных копий файлов и их состояние (модифицирован/нет):

$ pacman -Qii *название_пакета*

Вывести список файлов установленного пакета:

$ pacman -Ql *название_пакета*

Вывести список файлов пакета в репозитории:

$ pacman -Fl *название_пакета*

Проверить наличие файлов установленного пакета:

$ pacman -Qk *название_пакета*

С двумя флагами -k проверка будет более тщательной.

Узнать, какому пакету принадлежит файл:

$ pacman -Qo */путь/к/файлу/имя_файла*

Узнать, какому пакету в репозиториях принадлежит файл:

$ pacman -F */путь/к/файлу/имя_файла*

Вывести список пакетов, которые больше не требуются как зависимости («пакеты-сироты»):

Совет: Последнюю команду имеет смысл сделать пост-транзакционным хуком pacman, чтобы получить уведомление, если какое-то действие привело к появлению пакета-сироты. Это может быть полезно, например, если пакет был удалён из репозитория, вследствие чего на локальной системе он будет считаться сиротой (кроме случая, когда пакет был установлен явно). Чтобы не получать ошибку «failed to execute command» в случае отсутствия пакетов-сирот, укажите следующую команду в параметре Exec в описании хука: /usr/bin/bash -c "/usr/bin/pacman -Qtd || /usr/bin/echo '=> None found.'"

Вывести список пакетов, установленных явно (explicitly) и не являющихся зависимостями для других пакетов:

Другие полезные команды можно найти в статье pacman/Советы и приёмы.

Pactree

Примечание: pactree(8) больше не является частью пакета pacman. Теперь он входит в состав pacman-contrib.

Дерево зависимостей пакета можно узнать командой

$ pactree *название_пакета*

Чтобы увидеть «обратное» дерево зависимостей, т.е. список пакетов, которые сами зависят от указанного, используйте флаг pactree -r или утилиту whoneeds из пакета pkgtools.

Структура базы данных

Базы данных pacman обычно размещаются в каталоге /var/lib/pacman/sync. Для каждого подключённого в файле /etc/pacman.conf репозитория в этом каталоге находится соответствующий файл базы данных. Сам файл представляет собой gzip-сжатый tar-архив (с расширением .db), содержащий по одному каталогу для каждого пакета. Например, для пакета which содержимое каталога имеет вид:

$ tree which-2.21-5

В файле desc хранятся мета-данные пакета — описание, список зависимостей, размер, хэш-сумма MD5 и т.д.

Очистка кэша пакетов

Скачиваемые пакеты pacman сохраняет в каталог (/var/cache/pacman/pkg/). Устаревшие версии пакетов, как и версии пакетов удалённых, автоматически не удаляются. Такой подход обладает следующими преимуществами:

  1. Можно выполнить откат пакета без необходимости искать где-то (например, в архиве Arch Linux) его старую версию;
  2. Удалённый по ошибке пакет можно заново установить из кэша, не скачивая из репозитория.

Тем не менее, это означает, что время от времени необходимо чистить этот каталог самостоятельно, чтобы предотвратить его разрастание.

Скрипт paccache(8) из пакета pacman-contrib удаляет из кэша старые версии пакетов, как установленных в системе, так и уже удалённых, по умолчанию оставляя только 3 самые свежие:

Включите и запустите paccache.timer, чтобы очистка кэша выполнялась каждую неделю автоматически.

Совет: Также можно создать хук, чтобы очистка запускалась после каждого действия pacman. Подробнее смотрите примеры на форуме и пакет pacman-cleanup-hook.

При необходимости можно задать количество последних версий, которые нужно оставить. Команда для удаления всех версий, кроме последней:

# paccache --remove --keep 1

Флаг -u/--uninstalled позволяет ограничить действие paccache только версиями пакетов, которых в системе уже нет. Например, команда удаления всех кэшированных версий удалённых пакетов:

# paccache --remove --uninstalled --keep 0

Список возможных опций выводится командой paccache --help.

В pacman есть встроеный функционал очистки кэша и удаления баз данных репозиториев, которые были заблокированы в файле /etc/pacman.conf. Однако pacman гораздо менее гибок по сравнению с paccache и не даёт возможности сохранить некоторое количество последних версий, просто очищая каталог кэша.

Чтобы удалить все кэшированные версии удалённых пакетов и неиспользуемые базы данных, выполните:

Чтобы удалить вообще все файлы из кэша, укажите флаг очистки дважды:

Важно: Следует избегать полной очистки кэша, кроме случая, когда вам очень нужно освободить дисковое пространство. Очистка сделает невозможным откат пакетов или их переустановку без повторного скачивания.

pkgcacheclean и pacleaner — две альтернативные программы для очистки кэша.

Дополнительные команды

Скачать пакет без установки:

# pacman -Sw *название_пакета*

Установить пакет не из удалённого репозитория, а хранящийся локально (например, предварительно скачанный из AUR):

# pacman -U */путь/к/пакету/имя_пакета-версия.pkg.tar.xz*

Сохранить копию локально устанавливаемого пакета в кэше pacman:

# pacman -U file:*///путь/к/пакету/имя_пакета-версия.pkg.tar.xz*

Скачать и установить пакет из удаленного источника (но и не из репозиториев, перечисленных в конфигурационном файле pacman):

# pacman -U http:*//www.example.com/repo/example.pkg.tar.xz*

Флаг -p можно использовать для подавления стандартных действий -S, -U и -R.

Pacman всегда выводит список пакетов, которые будут установлены или удалены, и спрашивает разрешение пользователя перед выполнением действия.

Причина установки

Для pacman с точки зрения причины установки пакеты делятся на две категории:

  • установлен вручную (explicitly-installed): установлен пользователем командами pacman -S или pacman -U;
  • зависимость (dependency): установлен автоматически в процессе установки другого пакета, поскольку являлся его зависимостью.

При установке пакета можно принудительно изменить причину установки на зависимость:

# pacman -S --asdeps *название_пакета*

Совет: При установке опциональных зависимостей вручную стоит всегда указывать флаг --asdeps. Тогда при удалении пакетов-сирот ненужные опциональные зависимости тоже будут удаляться.

При переустановке пакета текущая причина установки не меняется.

Список установленных вручную пакетов выводится командой pacman -Qe, а пакетов-зависимостей — командой pacman -Qd.

Чтобы изменить причину установки уже установленного пакета, выполните:

# pacman -D --asdeps *название_пакета*

Для противоположной операции воспользуйтесь флагом --asexplicit.

Примечание: Не стоить использовать опции --asdeps и --asexplicit в команде обновления системы, например pacman -Syu *название_пакета* --asdeps. Это изменит причину установки не только для устанавливаемого пакета, но и для всех обновляемых.

Поиск пакета по названию файла

Синхронизировать базу данных файлов:

Найти пакет, содержащий определённый файл (например, файл pacman):

$ pacman -Fs pacman
core/pacman 5.0.1-4
    usr/bin/pacman
    usr/share/bash-completion/completions/pacman
extra/xscreensaver 5.36-1
    usr/lib/xscreensaver/pacman

Совет: Вы можете назначить задачу в Cron или таймер systemd для регулярной синхронизации баз данных.

Утилита pkgfile также осуществляет поиск пакетов по файлам, опираясь на свою базу данных; она обладает расширенной функциональностью по сравнению с pacman -F.

Настройка

Настройки pacman находятся в файле /etc/pacman.conf. Подробную информацию о файле настроек можно найти в руководстве pacman.conf(5).

Глобальные параметры

Глобальные настройки pacman указываются в разделе [options]. Помимо руководства pacman.conf(5) некоторая информация о настройках из этого раздела содержится в комментариях самого файла pacman.conf.

Сравнение версий пакетов перед обновлением

Чтобы увидеть сравнение старых и новых версий доступных для обновления пакетов, раскомментируйте строку VerbosePkgLists в файле pacman.conf. Теперь команда pacman -Syu будет выводить примерно следующее:

Package (6)             Old Version  New Version  Net Change  Download Size

extra/libmariadbclient  10.1.9-4     10.1.10-1      0.03 MiB       4.35 MiB
extra/libpng            1.6.19-1     1.6.20-1       0.00 MiB       0.23 MiB
extra/mariadb           10.1.9-4     10.1.10-1      0.26 MiB      13.80 MiB

Запрет на обновление отдельных пакетов

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

Чтобы пропустить пакет во время обновления системы добавьте его название в параметр IgnorePkg:

Если необходимо пропустить обновление для нескольких пакетов, укажите названия, разделив их пробелами, или используйте несколько строк IgnorePkg. Также можно использовать шаблоны поиска. Если нужно пропустить обновление пакета всего один раз, то лучше использовать опцию командной строки --ignore — здесь в качестве разделителя для названий пакетов используется запятая.

При необходимости обновить пакет из списка исключений всё же можно, командой pacman -S *название_пакета*: pacman при этом выведет напоминание, что пакет указан в IgnorePkg.

Запрет на обновление группы пакетов

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

Аналогично запрету на обновление отдельного пакета, можно запретить обновление сразу для целой группы, например:

Запрет на обновление файлов

Файлы, указанные в параметре NoUpgrade, не будут изменяться в процессе установки/обновления; новые версии этих файлов будут сохраняться с расширением .pacnew.

Примечание: Путь к файлу соответствует названию файла в tar-архиве пакета. Следовательно, указывать ведущий слэш не нужно.

Запрет на установку файлов

Чтобы запретить установку файлов в определённые каталоги, перечислите их в параметре NoExtract. Например, запрет установки юнитов systemd:

NoExtract=usr/lib/systemd/system/*

Совет: Pacman выводит предупреждение о недостающих файлах локализаций при обновлении пакетов, локали которых были удалены утилитами вроде localepurge или bleachbit. Чтобы отключить эти сообщения, закомментируйте параметр CheckSpace в файле pacman.conf, но имейте в виду, что это отключит функционал проверки наличия свободного места для всех пакетов.

Работа с несколькими файлами настроек

Если имеется несколько конфигурационных файлов (например, основная конфигурация и дополнительная с подключённым репозиторием testing), то работу с ними можно упростить, если вынести общие пункты настроек в отдельный файл и подключать его с помощью опции Include:

Include = */путь/к/файлу/общих/настроек*

В этом примере общие настройки вынесены в файл */путь/к/файлу/общих/настроек*. Приведённую выше строку нужно добавить в оба файла настроек, основной и дополнительный.

Хуки

Системные пре- и пост-транзакционные хуки хранятся в каталоге /usr/share/libalpm/hooks; pacman может выполнять хуки как из системного каталога, так и из каталогов, подключённых опцией — HookDir в файле pacman.conf (каталог по умолчанию — /etc/pacman.d/hooks). Название файла хука должно заканчиваться на .hook. Хуки pacman неинтерактивны.

В частности, хуки pacman используются в связке с systemd-sysusers и systemd-tmpfiles для автоматического создания пользователей и файлов в процессе установки пакетов. Например, пакет tomcat8 требует наличия пользователя tomcat8 и определённых каталогов, ему принадлежащих. Хуки systemd-sysusers.hook и systemd-tmpfiles.hook вызывают команды systemd-sysusers и systemd-tmpfiles соответственно, когда pacman видит в пакете указания на пользователей и временные файлы.

Хуки alpm подробно описаны в руководстве alpm-hooks(5).

Репозитории и зеркала

Помимо общего раздела [options] в файле pacman.conf также содержатся отдельные разделы для каждого из репозиториев. Репозиторий — набор пакетов, который физически находится на одном или нескольких серверах; эти сервера называются зеркалами репозитория.

Репозитории делятся на официальные и неофициальные. Порядок репозиториев в файле настроек имеет значение: если в разных репозиториях содержатся пакеты с одинаковым названием, то вне зависимости от их версий предпочтение отдаётся тому пакету, репозиторий которого ближе к началу файла. Чтобы подключённый репозиторий можно было использовать, сначала необходимо выполнить полное обновление системы.

Разделы репозиториев в файле pacman.conf содержат информацию о зеркалах. Список зеркал хранится в отдельном файле и подключается параметром Include. Например, зеркала официальных репозиториев подключаются из файла /etc/pacman.d/mirrorlist. Настройка зеркал описана в статье Mirrors.

Безопасность пакетов

Pacman использует цифровые подписи в качестве дополнительного механизма обеспечения безопасности пакетов. Настройки проверки подписей задаются параметром SigLevel. По умолчанию в разделе [options] задано глобальное значение SigLevel = Required DatabaseOptional, что означает проверку подписей всех пакетов без исключения. Можно задать особые правила проверки подписей для отдельных репозиториев, указав параметр SigLevel в соответствующих разделах. Подробнее см. pacman/Package signing.

Решение проблем

Failed to commit transaction (conflicting files)

Следующее сообщение об ошибке [1]:

error: could not prepare transaction
error: failed to commit transaction (conflicting files)
*пакет*: */путь/к/файлу* exists in filesystem
Errors occurred, no packages were upgraded.

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

Проблема решается тривиально. Сначала проверьте, не принадлежит ли файл другому пакету (pacman -Qo */путь/к/файлу*). Если принадлежит, создайте отчет об ошибке. Если проблемный файл не нужен другим пакетам, переименуйте его и перезапустите команду обновления. Если в дальнейшем проблем не возникнет, то старый файл можно удалить.

Если программа была установлена вручную без pacman — например, при помощи команды make install — необходимо удалить программу и все её файлы, а затем выполнить установку при помощи pacman. Смотрите также статью Поиск файлов, не принадлежащих ни одному пакету.

Информация о каждом установленном файле хранится в файле с метаданными пакета /var/lib/pacman/local/*пакет-версия*/files. При повреждении этого файла (он может быть пустым или отсутствовать) во время обновления пакета будет получена ошибка file exists in filesystem («файл существует в файловой системе»). Обычно такие ошибки возникают во время установки или обновления всего лишь одного пакета. Вместо ручного переименования или удаления конфликтующих файлов, принадлежащих данному пакету, лучше выполнить команду pacman -S --overwrite *шаблон* *пакет*, чтобы pacman принудительно перезаписал файлы, название которых совпадает с шаблоном.

Важно: Будьте осторожны при использовании ключа --overwrite. См. System maintenance#Избегайте определенных команд pacman

Failed to commit transaction (invalid or corrupted package)

Удалите все файлы .part (частично скачанные пакеты) из кэша pacman /var/cache/pacman/pkg. Причиной ошибки чаще всего является пользовательская команда в параметре XferCommand файла pacman.conf.

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

Failed to init transaction (unable to lock database)

Когда pacman собирается внести изменения в базу данных пакетов, например, при установке пакета, он создает файл блокировки /var/lib/pacman/db.lck. Благодаря этому другой экземпляр pacman не сможет работать в то же самое время, что позволяет избежать повреждения базы.

Если работа pacman была прервана во время внесения изменений в базу, этот файл блокировки может остаться не удаленным. Если вы уверены, что на вашей машине не запущено других экземпляров pacman, удалите этот файл блокировки:

# rm /var/lib/pacman/db.lck

Не удаётся найти пакет для установки

Эта ошибка проявляется в сообщениях Not found in sync db, Target not found или Failed retrieving file.

Удостоверьтесь, что пакет, который вы пытаетесь установить, действительно существует. Если это так, возможно, список хранящихся в репозиториях пакетов устарел. Выполните pacman -Syu, чтобы получить новый список и обновить систему. Также убедитесь, что выбранные зеркала в рабочем состоянии, а репозитории настроены правильно.

Также есть вероятность того, что в вашей системе не включен репозиторий, содержащий нужный пакет — например, пакет находится в репозитории multilib, но multilib не включен в файле pacman.conf.

См. также FAQ#Почему в репозиториях есть только одна версия каждой библиотеки?

Pacman падает при обновлении

Если при удалении пакетов pacman завершает свою работу с ошибкой «database write» («запись в базу данных»), и после этого все попытки переустановки или обновления пакетов завершаются неудачей, сделайте следующее:

  1. Загрузитесь, используя Arch Live USB. Желательно, чтобы версия pacman в образе была не старше той, что установлена в системе.
  2. Смонтируйте корневую файловую систему, например, командой mount /dev/sdaX /mnt от root, и убедитесь, что в точке монтирования достаточно свободного места (команда df -h).
  3. Смонтируйте файловые системы proc, sys и dev: mount -t proc proc /mnt/proc; mount --rbind /sys /mnt/sys; mount --rbind /dev /mnt/dev
  4. Если в системе используются стандартное расположение баз данных и каталогов, то можно синхронизировать базу данных pacman и обновить систему командой pacman --sysroot /mnt -Syu от root.
  5. После обновления стоит убедиться, что в системе не осталось необновлённых нерабочих пакетов: find /mnt/usr/lib -size 0.
  6. Если такие пакеты всё же есть, их нужно переустановить: pacman --sysroot /mnt -S *package*.

Переустановка pacman вручную

Важно: Есть большая вероятность, что следуя рекомендациям ниже вы добьёте свою систему. Используйте их как последнее средство, если советы из раздела #Pacman падает при обновлении не помогли или нереализуемы.

Даже если pacman не подаёт признаков жизни, всё ещё можно починить его вручную, загрузив последние версии пакетов и распаковав файлы в нужные места. Последовательность действий:

  1. Узнайте зависимости пакета pacman.
  2. Скачайте пакеты с любого рабочего зеркала.
  3. Извлеките каждый пакет в корневой каталог.
  4. Переустановите эти пакеты командами pacman -S --overwrite *название_пакета*, чтобы обновить базу данных.
  5. Выполните полное обновление системы.

Если у вас имеется доступ к другой работоспособной системе с Arch Linux, полный список зависимостей можно узнать командой

$ pacman -Q $(pactree -u pacman)

Возможно, вам необходимо обновить только несколько пакетов, в зависимости от серьёзности проблемы. Пример команды распаковки архива пакета:

# tar -xvpwf *пакет.tar.xz* -C / --exclude .PKGINFO --exclude .INSTALL --exclude .MTREE --exclude .BUILDINFO

Обратите внимание на флаг -w, который включает интерактивный режим. Запускать распаковку неинтерактивно рискованно, потому что можно перезаписать важный файл. Также не забудьте, что пакеты нужно распаковывать в правильном порядке (сначала зависимости). На форуме рассмотрен пример процесса восстановления работоспособности pacman c несколькими неработающими пакетами-зависимостями.

Ошибка «Unable to find root device» после перезагрузки

Вероятно, при обновлении ядра был повреждён образ initramfs (например, при использовании pacman с опцией --overwrite). Для восстановления работоспособности есть два варианта, и первый из них — использовать fallback-образ.

Совет: Если вы удалили этот образ по каким-либо причинам, вы можете нажать клавишу Tab (при использовании Syslinux) или e (при использовании GRUB или systemd-boot), когда на экране появится меню загрузчика, переименовать образ в initramfs-linux-fallback.img и нажать Enter или b (в зависимости от используемого загрузчика), чтобы выполнить загрузку с новыми параметрами.

Когда система запустится, выполните команду пересборки образа initramfs либо из консоли, либо из терминала (для стандартного ядра linux):

Если этот способ не сработает, загрузитесь с Live-USB, смонтируйте корневой и загрузочный разделы, после чего сделайте chroot командой arch-chroot:

# arch-chroot /mnt
# pacman -Syu mkinitcpio systemd linux

Примечание:

  • Если у вас нет текущего релиза, или есть только какой-либо другой «live»-дистрибутив Linux, вы можете выполнить chroot, используя старый способ. Очевидно, при этом вам придется напечатать больше, чем просто arch-chroot для запуска соответствующего скрипта.
  • Если pacman выдает ошибку Could not resolve host, пожалуйста, проверьте ваше интернет-соединение.
  • Если вы не можете войти в окружение arch-chroot или chroot, но нуждаетесь в переустановке пакетов, можете использовать команду pacman --sysroot /mnt -Syu foo bar, чтобы указать pacman ваш корневой раздел.

Переустановка ядра (пакета linux) автоматически пересоздаст образ initramfs при помощи mkinitcpio -p linux. Нет необходимости дополнительно вводить эту команду.

После всего этого рекомендуется выполнить exit, umount /mnt/{boot,} и reboot.

Signature from «User email@example.org» is unknown trust, installation failed

Возможные решения:

  • Обновите существующие ключи командой pacman-key --refresh-keys.
  • Вручную обновите пакет archlinux-keyring командой pacman -Sy archlinux-keyring && pacman -Su.
  • Выполните полный сброс ключей.

Требование импортировать ключи PGP

При установке Arch Linux со старого ISO-образа скорее всего вы получите сообщение о необходимости выполнить импорт PGP-ключей — подтвердите загрузку. Если добавить ключи всё же не получится, синхронизируйте связку ключей или обновите пакет archlinux-keyring (см. выше).

Error: key «0123456789ABCDEF» could not be looked up remotely

Если пакеты подписаны свежими ключами, которые были добавлены к archlinux-keyring совсем недавно, это ключи могут оказаться недоступны в процессе обновления системы (проблема курицы и яйца). Установленный пакет archlinux-keyring должен обновиться, чтобы получить новые ключи. Pacman попытается обойти эту проблему обращением к серверу ключей, но это может оказаться невыполнимо из-за работы прокси или межсетевого экрана и приведёт к ошибке. Обновите пакет archlinux-keyring как описано выше.

Signature from «User email@archlinux.org» is invalid, installation failed

Такая ошибка может появиться, если системное время установлено неверно и подписи ключей кажутся устаревшими:

error: *пакет*: signature from "User <email@archlinux.org>" is invalid
error: failed to commit transaction (invalid or corrupted package (PGP signature))
Errors occured, no packages were upgraded.

Задайте правильное время (например, командой # ntpd -qg) и выполните # hwclock -w, после чего установите нужные пакеты или обновите систему.

Warning: current locale is invalid; using default «C» locale

Как сказано в сообщении ошибки, локаль системы настроена неправильно (см. Locale).

Pacman игнорирует настройки прокси

Удостоверьтесь, что соответствующие переменные окружения ($http_proxy, $ftp_proxy и т.д.) заданы верно. Если вы используете pacman вместе с sudo, необходимо настроить sudo на передачу переменных окружения в pacman. Также убедитесь, что настройки dirmngr в файле /etc/pacman.d/gnupg/dirmngr.conf содержат параметр honor-http-proxy, отвечающий за использование прокси при обновлении ключей.

Как переустановить все пакеты, сохранив информацию о том, какие из них установлены вручную, а какие — в качестве зависимостей?

Чтобы переустановить все пакеты из официальных репозиториев, выполните pacman -S $(pacman -Qnq) (опция -S сохраняет причину установки по умолчанию).

После этого необходимо переустановить все пакеты из неизвестных источников, список которых можно получить командой pacman -Qmq.

Cannot open shared object file

Скорее всего, это означает, что при выполнении предыдущей операции pacman удалил или повредил разделяемые библиотеки, необходимые для него самого.

Чтобы выйти из этой ситуации, нужно вручную распаковать необходимые библиотеки в вашу файловую систему. Сперва определите, в каком пакете содержится требуемая библиотека, а затем найдите этот пакет в кэше pacman (/var/cache/pacman/pkg/). Распакуйте разделяемую библиотеку в файловую систему. Это позволит вам запустить pacman.

Теперь необходимо переустановить испорченный пакет. При этом обязательно используйте ключ --overwrite, поскольку вы лишь распаковали системные файлы, но pacman об этом не знает. pacman корректно заменит ваш файл разделяемой библиотеки на тот, что имеется в пакете.

Вот и все. Обновите оставшуюся часть системы.

Проблемы с загрузкой пакетов

Были сообщения о некоторых сетевых проблемах, которые приводят к невозможности обновления/синхронизации: [2], [3]. При обычной установке Arch Linux эти проблемы не появляются, так как стандартный загрузчик файлов при этом заменяется другим (см. pacman/Tips and tricks#Performance). При установке Arch Linux в VirtualBox эта проблема также появляется, когда вы используете опцию виртуальной машины Host interface вместо NAT.

Failed retrieving file ‘core.db’ from mirror

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

Пояснения

Процесс установки/обновления/удаления пакета

При выполнении операций с пакетами посредством pacman происходит следующее:

  1. pacman получает список пакетов для установки.
  2. pacman выполняет различные проверки на предмет возможности установки пакетов в систему.
  3. Если возможно применить какие-то из существующих пре-транзакционных хуков pacman, то они выполняются.
  4. Пакеты по очереди устанавливаются/обновляются/удаляются.
    1. Если у пакета есть скрипт установки, выполняется функция pre_install (или pre_upgrade/pre_remove в случае обновления или удаления пакета).
    2. pacman удаляет из системы все файлы старой версии пакета (в случае его обновления или удаления). Файлы настроек не удаляются (см. Pacman/Pacnew and Pacsave).
    3. pacman извлекает файлы из архива пакета и размещает их в системе (при установке или обновлении). Файлы, которые остались с прошлой установки, перезаписываются/модифицируются, а новые файлы настроек сохраняются рядом со старыми (см. предыдущий шаг) с добавлением к названию суффикса .pacnew.
    4. Если у пакета есть скрипт установки, выполняется функция post_install (post_upgrade или post_remove при обновлении/удалении).
  5. Если возможно применить какие-то из существующих пост-транзакционных хуков pacman, то они выполняются.

Смотрите также

  • Страница проекта Pacman
  • libalpm(3)
  • pacman(8)
  • pacman.conf(5)
  • repo-add(8)

Понравилась статья? Поделить с друзьями:
  • Ошибка при обновлении microsoft store
  • Ошибка при направлении команды приложению автокад
  • Ошибка при направлении команды приложению word как исправить
  • Ошибка при направлении команды приложению word 2007
  • Ошибка при направлении команды приложению word 2003