Эта статья посвящена ошибкам, которые возникают из-за проблем со списком зеркал.
Ошибка pacman «The requested URL returned error: 404»
Для работы менеджера пакетов имеется кэш - в этом кэше собрана информация о существующих пакетах для установки, их версиях и ссылки на скачивание. Чтобы обновить (или скачать впервые) этот кэш, нужно выполнить команду:
sudo pacman -Sy
После этого можно выполнять обновление системы или обновление пакета.
Если кэш устарел и вы пытаетесь установить пакет, версия которого обновилась и для которого в вашем локальном кэше старая ссылка, вы можете получить примерно следующую ошибку:
error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirrors.evowise.com : The requested URL returned error: 404
Для её исправления нужно выполнить приведённую выше команду, а затем повторить установку.
Но аналогичная проблема может возникнуть при запуске обновления системы - это странно, поскольку следующая команда начинает с обновления кэша, следовательно, кэш самый новый и ошибка «файл не найден» не должна возникать:
sudo pacman -Syu
Эта команда привела к ошибке:
error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirrors.evowise.com : The requested URL returned error: 404 error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirror.rackspace.com : The requested URL returned error: 404 error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirror.rackspace.com : The requested URL returned error: 404 error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirror.dkm.cz : The requested URL returned error: 404 error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from mirror.dkm.cz : The requested URL returned error: 404 error: failed retrieving file 'goaccess-1.4.5-1-x86_64.pkg.tar.zst' from europe.mirror.pkgbuild.com : The requested URL returned error: 404 .................................................................... .................................................................... .................................................................... warning: failed to retrieve some files error: failed to commit transaction (failed to retrieve some files) Errors occurred, no packages were upgraded.
Многократное повторение команды ничего не меняет.
Причина в следующем: pacman скачивает кэш с некачественного зеркала, в котором содержится неверная информация. Для исправления, нужно выбрать другое зеркало, или переместить другое зеркало вверх списка, если вы используете несколько зеркал.
Начнём с того, что переключимся на новый список зеркал. Дело в том, что при установке пакета pacman-mirrorlist (в этом пакете содержится список зеркал), новый файл /etc/pacman.d/mirrorlist не заменяет существующий, а сохраняется с именем /etc/pacman.d/mirrorlist.pacnew. То есть даже если у вас последняя версия пакета pacman-mirrorlist, это не означает, что у вас актуальная версия файла /etc/pacman.d/mirrorlist. Проверте, существует ли файл /etc/pacman.d/mirrorlist.pacnew:
ls -l /etc/pacman.d/mirrorlist.pacnew
Если файл существует, то выполните следующие две команды (в противном случае пропустите их):
sudo mv /etc/pacman.d/mirrorlist /etc/pacman.d/mirrorlist.back sudo mv /etc/pacman.d/mirrorlist.pacnew /etc/pacman.d/mirrorlist
Это не всё - дело в том, что в файле /etc/pacman.d/mirrorlist по умолчанию все зеркала закомментированы, то есть отключены. Чтобы это исправить, откройте данный файл:
sudo gedit /etc/pacman.d/mirrorlist
и раскомментируйте, то есть удалите символ # в начале строки. Выберите те зеркала и страны, которые ближе к вам.
В моём случае проблемным зеркалом, вызвавшим описанную выше ошибку, стало следующее (не используйте его):
#Server = http://mirrors.evowise.com/archlinux/$repo/os/$arch
Arch Linux перестал обновляться
Если вы запускаете команду «sudo pacman -Syu» каждый день, то вы могли заметить, то в редкий день не бывает обновлений. Если вдруг для вашей системы на протяжении нескольких дней перестали приходить обновления, это может означать, что кэш пакетов скачивается с некачественного зеркала.
Для исправления - выполните точно такие же действия, как описаны для предыдущей ошибки. То есть нужно переключиться на другое зеркало.
ошибка: не удалось обновить core (не настроены сервера для репозитория)
Ещё одна возможная ошибка после того, как вы выполнили какие-либо работы со списком зеркал установочных пакетов:
:: Обновление баз данных пакетов... ошибка: не удалось обновить core (не настроены сервера для репозитория) ошибка: не удалось обновить extra (не настроены сервера для репозитория) ошибка: не удалось обновить community (не настроены сервера для репозитория) ошибка: не удалось обновить multilib (не настроены сервера для репозитория) ошибка: failed to synchronize all databases
Её причина в том, что в файле /etc/pacman.d/mirrorlist закомментированы все строки. Откройте этот файл:
sudo gedit /etc/pacman.d/mirrorlist
и раскомментируйте, то есть удалите символ # в начале строки для тех зеркал и стран, которые ближе к вам.
Близкие статьи
- Как найти самые быстрые зеркала Arch Linux и BlackArch (95.6%)
- Аналог опции --force в pacman (57%)
- Ошибка «ruby-bundler: /usr/share/man/man5/gemfile.5.gz exists in filesystem (owned by ruby)» (РЕШЕНО) (57%)
- Ошибка «не удалось разрешить зависимость lib32 (32-битной библиотеки)» (РЕШЕНО) (57%)
- Ошибка «не удалось завершить транзакцию (неверный или поврежденный пакет)» (РЕШЕНО) (57%)
- PHP Warning: PHP Startup: imap: Unable to initialize module (РЕШЕНО). Как установить imap модуль для PHP в Arch Linux (RANDOM - 50%)