Difference between revisions of "Pacman troubleshooting/ru"
Views
Actions
Namespaces
Variants
Tools
Tags: Mobile web edit Mobile edit |
(Updating to match new version of source page) Tags: Mobile web edit Mobile edit |
||
Line 15: | Line 15: | ||
error: could not open file /var/lib/pacman/sync/multilib.db: Unrecognized archive format | error: could not open file /var/lib/pacman/sync/multilib.db: Unrecognized archive format | ||
<div class="mw-translate-fuzzy"> | |||
Ошибка связана с несоответствием информации, содержащейся в файлах db в указанном месте и файлах db на первом зеркале в вашем списке зеркал. Pacman проверяет пакет в базе данных и смотрит, совпадает ли файл сигнатуры с файлом в базе данных. Если нет, то pacman сообщит, что пакет поврежден. | Ошибка связана с несоответствием информации, содержащейся в файлах db в указанном месте и файлах db на первом зеркале в вашем списке зеркал. Pacman проверяет пакет в базе данных и смотрит, совпадает ли файл сигнатуры с файлом в базе данных. Если нет, то pacman сообщит, что пакет поврежден. | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
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. | |||
</div> | |||
=== | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
'''Run pacman-mirrors to refresh your mirrorlist''' | |||
{{UserCmd|command=sudo pacman-mirrors -c Global}} | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
'''Download the databases and update the system''' | |||
''' | |||
{{UserCmd|command=sudo pacman -Syyu}} | {{UserCmd|command=sudo pacman -Syyu}} | ||
</div> | |||
== Ошибка "Невозможно заблокировать базу данных" == | == Ошибка "Невозможно заблокировать базу данных" == | ||
Line 64: | Line 58: | ||
{{Warning|Следующие команды работают только тогда, когда ваше системное время установлено правильно!}} | {{Warning|Следующие команды работают только тогда, когда ваше системное время установлено правильно!}} | ||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
{{BoxInfo|Info|Retrieving the latest keyring packages can be done by browsing a current mirrors pool folder. E.g. from '''https://mirror.easyname.at/manjaro/pool''' - using the '''overlay''' for Manjaro keyring and '''sync''' for Arch keyring and downloading them to your system. Do not download '''.sig''' files.}} | |||
</div> | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
{{BoxInfo|Info|Those running ARM can find the '''archlinuxarm-keyring''' and '''manjaro-arm-keyring''' in the '''sync-arm''' and '''overlay-arm''' folders respectively.}} | |||
</div> | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
{{UserCmd|command= | '''Download the new keyring packages''' | ||
Before you download ensure no keyring packages is in the current folder. | |||
{{UserCmd|command=rm manjaro-keyring* archlinux-keyring*}} | |||
</div> | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
Use either your browser or curl to download. Using curl assumes you know the correct package name as located with the mirror. Replace '''YYYYMMDD-R''' as available from the mirror. | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
{{UserCmd|command= | {{UserCmd|command=curl -O <nowiki>https://mirror.easyname.at/manjaro/pool/overlay/manjaro-keyring-YYYYMMDD-R-any.pkg.tar.xz</nowiki>}} | ||
{{UserCmd|command=curl -O <nowiki>https://mirror.easyname.at/manjaro/pool/sync/archlinux-keyring-YYYYMMDD-R-any.pkg.tar.zst</nowiki>}} | |||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
'''Remove the dysfunctional keyrings''' by entering this command: | |||
{{UserCmd|command=sudo rm -r /etc/pacman.d/gnupg}} | {{UserCmd|command=sudo rm -r /etc/pacman.d/gnupg}} | ||
</div> | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
'''Initialize the pacman keyring''': | |||
{{UserCmd|command=sudo pacman-key --init}} | {{UserCmd|command=sudo pacman-key --init}} | ||
</div> | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
'''Install the downloaded packages''' | |||
Assuming the files is the current folder and using wildcard so you don't have to deal with dates and versions - remove the packages after successful installation | |||
{{UserCmd|command=sudo pacman -U manjaro-keyring*.pkg.tar.xz archlinux-keyring*.pkg.tar.zst}} | |||
</div> | |||
{{UserCmd|command= | |||
''' | <div lang="en" dir="ltr" class="mw-content-ltr"> | ||
'''Populate the keyrings''' - (optional as the install process will do that) | |||
{{UserCmd|command= | {{UserCmd|command=sudo pacman-key --populate manjaro archlinux}} | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
'''Clear out the software packages downloaded during the aborted installation''' (optional): | |||
{{warning|The 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.}} | |||
''' | |||
{{warning| | |||
{{UserCmd|command=sudo pacman -Sc}} | {{UserCmd|command=sudo pacman -Sc}} | ||
</div> | |||
<div lang="en" dir="ltr" class="mw-content-ltr"> | |||
After that try running '''sudo pacman -Syyu''' to see if the errors were resolved. | |||
</div> | |||
== Конфликтующие файлы - ''FILENAME'' exists in filesystem == | == Конфликтующие файлы - ''FILENAME'' exists in filesystem == |
Revision as of 13:41, 4 July 2023
Установка программ
Здесь рассматриваются различные вопросы, связанные с загрузкой и установкой программных пакетов из репозиториев 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 сообщит, что пакет поврежден.
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.
Run pacman-mirrors to refresh your mirrorlist
Download the databases and update the system
Ошибка "Невозможно заблокировать базу данных"
При загрузке и установке программного обеспечения из репозиториев создается специальный файл блокировки базы данных, чтобы убедиться, что текущий процесс установки является единственным, запущенным в данный момент. В противном случае попытка одновременной установки нескольких файлов из нескольких источников может привести к повреждению загруженных файлов, конфликтам файлов или, что еще хуже, к повреждению системы. После завершения установки файл блокировки будет автоматически удален. Таким образом, эта ошибка может возникнуть по двум возможным причинам:
- Другая установка все еще выполняется и еще не завершена, или
- Предыдущая попытка установки не завершилась должным образом (например, была прервана раньше времени).
Поэтому целесообразно сначала убедиться, что в момент возникновения ошибки не выполняется (или не выполнялась) другая установка. Убедившись в этом необходимо вручную удалить файл блокировки базы данных. Для этого откройте терминал и введите следующую команду:
После этого вы сможете успешно повторить попытку установки.
Ошибки ключей
У каждого из нас есть свои уникальные подписи, используемые для подтверждения подлинности нашей личности и предотвращения мошеннических или даже вредоносных действий со стороны других людей. То же самое происходит и с программными пакетами, доступными в репозиториях программного обеспечения. Все они содержат зашифрованные коды (ключи подписи), уникальные для их разработчиков, что гарантирует их подлинность и отсутствие вредоносного характера.
В процессе установки, после загрузки любых пакетов программного обеспечения, система сначала проверит их ключи подписи, чтобы убедиться в их подлинности, прежде чем приступить к установке. Если по какой-либо причине ключ подписи не может быть проверен, процесс установки будет прерван. Эта проблема обычно возникает по следующим причинам:
- один или несколько ключей подписи, содержащихся в базе данных вашей системы, отозваны, изменены, повреждены или устарели
- один или несколько пакетов программного обеспечения не были должным образом подписаны при размещении в репозитории
Если пакет не был подписан должным образом перед помещением в репозиторий, ответственность за исправление лежит на разработчике(-ах). Однако, поскольку эта проблема, скорее всего, связана с проблемой проверки ключа подписи в вашей системе, ее можно решить в три простых шага. Требуется рабочее подключение к сети. После того как вы открыли свой терминал:
Download the new keyring packages Before you download ensure no keyring packages is in the current folder.
Use either your browser or curl to download. Using curl assumes you know the correct package name as located with the mirror. Replace YYYYMMDD-R as available from the mirror.
Remove the dysfunctional keyrings by entering this command:
Initialize the pacman keyring:
Install the downloaded packages Assuming the files is the current folder and using wildcard so you don't have to deal with dates and versions - remove the packages after successful installation
Populate the keyrings - (optional as the install process will do that)
Clear out the software packages downloaded during the aborted installation (optional):
After that try running sudo pacman -Syyu to see if the errors were resolved.
Конфликтующие файлы - 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.
Как мне это исправить?
Первый шаг - определить, какой пакет, если таковой имеется, владеет файлом. Это можно легко сделать с помощью:
Если при этом обнаружится конфликтующий пакет, то вы можете решить удалить его с помощью команды pacman -R. Если пакет не обнаружен, вы можете удалить файл (или переместить его в резервное место).
Где можно прочитать больше?
Этот пост был вдохновлен (и адаптирован из):
В приведенном выше сообщении также есть ссылки на дальнейшее чтение.
Ошибка "Файл конфигурации...не распознан"
Менеджер пакетов Manjaro - pacman - использует файл под названием mirrorlist, сообщающий ему интернет-адреса серверов Manjaro для загрузки с них обновлений и программ. Эта ошибка возникает, если один или несколько адресов серверов, содержащихся в файле mirrorlist, не были указаны правильно, в результате чего pacman не может подключиться к ним. Еще одним признаком является то, что эта проблема также возникнет сразу после:
- Установки Manjaro и редактирования файла mirrorlist во время установки, или
- Редактирования файла mirrorlist позднее.
Смотрите руководство Переход на другой сервер загрузки для более подробной информации о том, как правильно выбрать и включить другой сервер Manjaro для загрузки.
Ошибка "GPGME error: No data"
Наиболее вероятная причина этой проблемы заключается в том, что pacman обнаружил ошибку или повреждение в одном или нескольких загружаемых пакетах программного обеспечения. Подписи и контрольные суммы пакетов используются для проверки достоверности загружаемого программного обеспечения, и если они не работают, попытка установки будет прервана для защиты вашей системы, пока проблема не будет решена.
Вариант 1: Базовое разрешение
Чтобы решить эту проблему, сначала выполните основную процедуру, приведенную ниже. Если это не сработает, можно воспользоваться более комплексной процедурой.
1. Загрузите базы данных пакетов и обновите систему:
2. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду:
3. Повторите попытку прерванной загрузки.
Вариант 2: Комплексное решение
Если основная процедура не приведет к решению вопроса, можно предпринять дальнейшие шаги:
1. Выполните повторную синхронизацию с серверами Manjaro, чтобы убедиться, что все данные обновлены, введя команду:
2. Обновите ключи подписей, введя команду:
3. Перезагрузите ключи подписей, введя команду:
4. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду:
5. Повторите попытку прерванной загрузки.
Если ошибка не исчезла, то рекомендуется переход на другой сервер загрузки'.
Ошибка "keyserver refresh failed: No dirmngr"
Попробуйте выполнить следующую команду: