translator
11,127
edits
(Created page with "Если ошибка не исчезла, то рекомендуется '''Change to a Different Download Server|переход на другой сервер загру...") |
(Created page with "sudo pacman-key --populate archlinux manjaro") |
||
Line 1: | Line 1: | ||
<languages/> | <languages/> | ||
__TOC__ | __TOC__ | ||
= | = Установка программ = | ||
Здесь рассматриваются различные вопросы, связанные с загрузкой и установкой программных пакетов из репозиториев Manjaro. | |||
== " | == Ошибка "Нераспознанный формат архива" == | ||
Это происходило неоднократно, обновление выдает эти сообщения в, казалось бы, бесконечном потоке. | |||
[https://forum.manjaro.org/t/pacman-could-not-open-file-sync-files/20046 Pacman | [https://forum.manjaro.org/t/pacman-could-not-open-file-sync-files/20046 Pacman не смог открыть файл: синхронизировать файлы]. | ||
error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format | error: could not open file /var/lib/pacman/sync/core.db: Unrecognized archive format | ||
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 | ||
Ошибка связана с несоответствием информации, содержащейся в файлах db в указанном месте и файлах db на первом зеркале в вашем списке зеркал. Pacman проверяет пакет в базе данных и смотрит, совпадает ли файл сигнатуры с файлом в базе данных. Если нет, то pacman сообщит, что пакет поврежден. | |||
Хотя иногда проблему можно решить, просто удалив файлы и запустив обновление pacman, это возможно далеко не каждый раз. | |||
=== | === Один рецепт для исправления этого === | ||
Обязательно нужно убедиться, что связки ключей актуальны. Убедившись, что ключи в актуальном состоянии, а затем заново загрузив базы данных, мы восстановим связь между ключами и пакетами. | |||
''' | '''Вам придется найти правильные имена, посмотрев'''. | ||
Просмотрите [https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay] для текущего manjaro-keyring | |||
и | |||
Просмотрите [https://mirror.netzspielplatz.de/manjaro/packages/pool/sync https://mirror.netzspielplatz.de/manjaro/packages/pool/sync] для текущего archlinux-keyring | |||
''' | '''Замените yyyymmdd и x на информацию, найденную по вышеуказанным ссылкам'''. | ||
sudo pacman -U https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay/manjaro-keyring-yyyymmdd-x-any.pkg.tar.xz | sudo pacman -U https://mirror.netzspielplatz.de/manjaro/packages/pool/overlay/manjaro-keyring-yyyymmdd-x-any.pkg.tar.xz | ||
sudo pacman -U https://mirror.netzspielplatz.de/manjaro/packages/pool/sync/archlinux-keyring-yyyymmdd-x-any.pkg.tar.xz | sudo pacman -U https://mirror.netzspielplatz.de/manjaro/packages/pool/sync/archlinux-keyring-yyyymmdd-x-any.pkg.tar.xz | ||
''' | '''Удалите неисправные базы данных''' | ||
sudo rm -f /var/lib/pacman/sync/* | sudo rm -f /var/lib/pacman/sync/* | ||
''' | '''Загрузите базы данных и обновите систему''' | ||
sudo pacman -Syyu | sudo pacman -Syyu | ||
== " | == Ошибка "Невозможно заблокировать базу данных" == | ||
При загрузке и установке программного обеспечения из репозиториев создается специальный файл блокировки базы данных, чтобы убедиться, что текущий процесс установки является единственным, запущенным в данный момент. В противном случае попытка одновременной установки нескольких файлов из нескольких источников может привести к повреждению загруженных файлов, конфликтам файлов или, что еще хуже, к повреждению системы. После завершения установки файл блокировки будет автоматически удален. Таким образом, эта ошибка может возникнуть по двум возможным причинам: | |||
* | * Другая установка все еще выполняется и еще не завершена, или | ||
* | * Предыдущая попытка установки не завершилась должным образом (например, была прервана раньше времени). | ||
Поэтому целесообразно сначала убедиться, что в момент возникновения ошибки не выполняется (или не выполнялась) другая установка. Убедившись что это не так, можно вручную удалить файл блокировки базы данных. Для этого откройте терминал и введите следующую команду: | |||
sudo rm /var/lib/pacman/db.lck | sudo rm /var/lib/pacman/db.lck | ||
После этого вы сможете успешно повторить попытку установки. | |||
== | == Ошибки ключей == | ||
У каждого из нас есть свои уникальные подписи, используемые для подтверждения подлинности нашей личности и предотвращения мошеннических или даже вредоносных действий со стороны других людей. То же самое происходит и с программными пакетами, доступными в репозиториях программного обеспечения. Все они содержат зашифрованные коды (ключи подписи), уникальные для их разработчиков, что гарантирует их подлинность и отсутствие вредоносного характера. | |||
В процессе установки, после загрузки любых пакетов программного обеспечения, система сначала проверит их ключи подписи, чтобы убедиться в их подлинности, прежде чем приступить к установке. Если по какой-либо причине ключ подписи не может быть проверен, процесс установки будет прерван. Эта проблема обычно возникает по следующим причинам: | |||
* | * один или несколько ключей подписи, содержащихся в базе данных вашей системы, отозваны, изменены, повреждены или устарели | ||
* | * один или несколько пакетов программного обеспечения не были должным образом подписаны при размещении в репозитории | ||
Если пакет не был подписан должным образом перед помещением в репозиторий, ответственность за исправление лежит на разработчике(-ах). Однако, поскольку эта проблема, скорее всего, связана с проблемой проверки ключа подписи в вашей системе, ее можно решить в три простых шага. Требуется рабочее подключение к сети. После того как вы открыли свой терминал: | |||
{{Warning| | {{Warning|Следующие команды работают только тогда, когда ваше системное время установлено правильно!}} | ||
<s>'''1. | <s>'''1. Удалите старые (и, возможно, сломанные) ключи''', введя эту команду: | ||
sudo rm -r /etc/pacman.d/gnupg | sudo rm -r /etc/pacman.d/gnupg | ||
'''2. | '''2. Переустановите связки ключей, включая последние ключи''': | ||
sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring | sudo pacman -Sy gnupg archlinux-keyring manjaro-keyring | ||
''' | '''3. Инициализируйте связку ключей pacman''': | ||
sudo pacman-key --init | sudo pacman-key --init | ||
'''4. | '''4. Загрузите ключи подписи''': | ||
sudo pacman-key --populate archlinux manjaro | sudo pacman-key --populate archlinux manjaro | ||
'''5. | '''5. Обновите и актуализируйте ключи подписей''': | ||
sudo pacman-key --refresh-keys | sudo pacman-key --refresh-keys | ||
'''6. | '''6. Очистите пакеты программ, загруженные во время прерванной установки''' (необязательно): | ||
sudo pacman -Sc</s> | sudo pacman -Sc</s> | ||
{{BoxInfo|Info| | {{BoxInfo|Info|Добавлена улучшенная версия, так как выше она не работает. Пакеты подписаны, и поскольку '''/etc/pacman.d/gnupg''' был удален, он не может быть установлен из-за проверки. Вместо редактирования '''/etc/pacman.conf''' и понижения SigLevel, было бы лучше установить ключи без проверки вручную, чтобы решить эту проблему.}} | ||
'''1. | '''1. Удалите старые (и, возможно, сломанные) ключи''', введя эту команду: | ||
sudo rm -r /etc/pacman.d/gnupg | sudo rm -r /etc/pacman.d/gnupg | ||
'''2. | '''2. Инициализируйте связку ключей pacman''': | ||
sudo pacman-key --init | sudo pacman-key --init | ||
'''3. | '''3. Скачайте пакеты:''' | ||
{{BoxInfo|Info| GPG | {{BoxInfo|Info| Ошибки проверки GPG можно игнорировать, так как загружаются только пакеты связок ключей.}} | ||
mkdir -pv $HOME/.cache/pkg/ && sudo pacman -Syw archlinux-keyring manjaro-keyring --cachedir $HOME/.cache/pkg/ | mkdir -pv $HOME/.cache/pkg/ && sudo pacman -Syw archlinux-keyring manjaro-keyring --cachedir $HOME/.cache/pkg/ | ||
'''4. | '''4. Удалите подписи:''' | ||
{{BoxInfo|Info| | {{BoxInfo|Info| Подписи должны быть удалены во избежание автоматической проверки пакетов.}} | ||
rm -f $HOME/.cache/pkg/*.sig | rm -f $HOME/.cache/pkg/*.sig | ||
'''5. | '''5. Установите загруженные пакеты вручную: | ||
{{ | {{Это также запустит процесс добавления.}} | ||
sudo pacman -U $HOME/.cache/pkg/*.tar.zst | sudo pacman -U $HOME/.cache/pkg/*.tar.zst | ||
'''6. | '''6. Очистите пакеты программ, загруженные во время прерванной установки''' (необязательно): | ||
{{warning| | {{warning|Вышеуказанная команда полностью очищает кэш pacman и вы не сможете перейти к предыдущей версии пакета при необходимости. Вместо этого пакеты, вызывающие ошибки подписи, могут быть удалены по отдельности при обновлении}}. | ||
sudo pacman -Sc | sudo pacman -Sc | ||
'''7. | '''7. Удалите папку пользовательских пакетов:''' (необязательно): | ||
sudo rm -Rf $HOME/.cache/pkg/ | sudo rm -Rf $HOME/.cache/pkg/ | ||
После этого попробуйте запустить '''sudo pacman -Syu''' и посмотреть, были ли устранены ошибки. | |||
== | == Конфликтующие файлы - ''FILENAME'' exists in filesystem == | ||
''' | ''' Если вы не можете установить или обновить пакет из-за ошибки, подобной этой:''' | ||
error: could not prepare transaction | error: could not prepare transaction | ||
Line 135: | Line 135: | ||
Errors occurred, no packages were upgraded. | Errors occurred, no packages were upgraded. | ||
Затем менеджер пакетов pacman обнаружил неожиданный файл, который уже существует на диске. | |||
'' | ''Почему это происходит?''' | ||
По своей конструкции pacman '''не'' перезаписывает существующие файлы. Это особенность разработки, а не недостаток - менеджеры пакетов предназначены для отслеживания установленных файлов. | |||
Обычно эта проблема возникает, когда вы вручную добавляете, копируете или создаете файл. Это также может произойти, если вы устанавливаете программное обеспечение с помощью загруженного исполняемого файла, выполняете make install или используете пакетную систему сторонних производителей, например conda. Это также происходит при установке пакета AUR, устанавливающий файлы, конфликтующие с пакетом из репозитория. | |||
При использовании сторонней программы установки всегда указывайте альтернативное место установки, например, в вашем домашнем каталоге или в каталоге /opt или /usr/local/. Никогда не устанавливайте непосредственно в / или /usr. | |||
''' | '''Как мне это исправить?''' | ||
Первый шаг - определить, какой пакет, если таковой имеется, владеет файлом. Это можно легко сделать с помощью: | |||
pacman -Qo / | pacman -Qo /путь/к/файлу | ||
Если при этом обнаружится конфликтующий пакет, то вы можете решить удалить его с помощью команды pacman -R. Если пакет не обнаружен, вы можете удалить файл (или переместить его в резервное место). | |||
''' | '''Где можно прочитать больше?''' | ||
Этот пост был вдохновлен (и адаптирован из): | |||
https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error | https://wiki.archlinux.org/title/Pacman#%22Failed_to_commit_transaction_(conflicting_files)%22_error | ||
В приведенном выше сообщении также есть ссылки на дальнейшее чтение. | |||
== " | == Ошибка "Файл конфигурации...не распознан" == | ||
Manjaro | Менеджер пакетов Manjaro - '''[[pacman]]'''' - использует файл под названием ''mirrorlist'', сообщающий ему интернет-адреса серверов Manjaro для загрузки с них обновлений и программ. Эта ошибка возникает, если один или несколько адресов серверов, содержащихся в файле mirrorlist, не были указаны правильно, в результате чего pacman не может подключиться к ним. Еще одним признаком является то, что эта проблема также возникнет сразу после: | ||
* | * Установки Manjaro и редактирования файла mirrorlist во время установки, или | ||
* | * Редактирования файла mirrorlist позднее. | ||
Смотрите руководство [[Change to a Different Download Server|Переход на другой сервер загрузки]] для более подробной информации о том, как правильно выбрать и включить другой сервер Manjaro для загрузки. | |||
== "GPGME error: No data" | == Ошибка "GPGME error: No data" == | ||
Наиболее вероятная причина этой проблемы заключается в том, что ''pacman'' обнаружил ошибку или повреждение в одном или нескольких загружаемых пакетах программного обеспечения. Подписи и контрольные суммы пакетов используются для проверки достоверности загружаемого программного обеспечения, и если они не работают, попытка установки будет прервана для защиты вашей системы, пока проблема не будет решена. | |||
=== | === Вариант 1: Базовое разрешение === | ||
Чтобы решить эту проблему, сначала выполните основную процедуру, приведенную ниже. Если это не сработает, можно воспользоваться более комплексной процедурой. | |||
1. | 1. Загрузите базы данных пакетов и обновите систему: | ||
sudo pacman -Syyu | sudo pacman -Syyu | ||
2. | 2. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду: | ||
sudo pacman -Sc | sudo pacman -Sc | ||
3. | 3. Повторите попытку прерванной загрузки. | ||
=== | === Вариант 2: Комплексное решение === | ||
Если основная процедура не приведет к решению вопроса, можно предпринять дальнейшие шаги: | |||
1. | 1. Выполните повторную синхронизацию с серверами Manjaro, чтобы убедиться, что все данные обновлены, введя команду: | ||
sudo pacman -Syy | sudo pacman -Syy | ||
2. | 2. Обновите ключи подписей, введя команду: | ||
sudo pacman-key --refresh-keys | sudo pacman-key --refresh-keys | ||
3. | 3. Перезагрузите ключи подписей, введя команду: | ||
sudo pacman-key --populate archlinux manjaro | sudo pacman-key --populate archlinux manjaro | ||
4. | 4. Очистите пакеты программного обеспечения, загруженные во время прерванной установки, введя команду: | ||
sudo pacman -Sc | sudo pacman -Sc | ||
5. | 5. Повторите попытку прерванной загрузки. | ||
Line 225: | Line 225: | ||
= | = Смотрите также = | ||
* '''[[Change to a Different Download Server|Переход на другой сервер загрузки]]''' | * '''[[Change to a Different Download Server|Переход на другой сервер загрузки]]''' |