#Что означает ошибка
ERROR: A failure occurred in build(). Aborting...
Сборка AUR-пакета через makepkg или помощник (yay, paru) падает по разным причинам: не хватает зависимостей, сломан PKGBUILD после обновления, не проходит проверка подписей или контрольных сумм, изменились библиотеки системы. Сообщение ==> ERROR: A failure occurred in build() указывает лишь на фазу.
Настоящую причину нужно искать выше в логе сборки.
Не пренебрегайте чтением комментариев к пакету в AUR.
Сборка из AUR может провалиться из-за отсутствия зависимостей, устаревшего PKGBUILD, несовместимости с новыми библиотеками или нехватки памяти. Прочитайте лог ошибки, а не только последнюю строку.
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Не хватает зависимостей | Нет заголовочных файлов. | Установите base-devel и нужные пакеты. |
| Устаревший PKGBUILD | Пакет не обновлялся. | Проверьте комментарии на странице AUR. |
| Несовместимость с новыми библиотеками | Ошибка компиляции. | Поищите патч или бинарную версию. |
| Нехватка памяти или места | Сборка прерывается. | Освободите ресурсы. |
#Пошаговое решение
- Найдите первую ошибку в логеВ системах с systemd откройте терминал и введите
journalctl -b -p err --no-pager -n 60, чтобы посмотреть ошибки текущей загрузки. Для конкретной службы добавьте-u ИМЯ.serviceс реальным именем. Ориентируйтесь на первую ошибку до повторных сообщений о сбое; журнал может содержать частные адреса и пути, поэтому не публикуйте его целиком. - Прочитайте комментарии в AURОткройте страницу нужного пакета на официальном сайте AUR (aur.archlinux.org), посмотрите дату обновления, комментарии и сообщения о текущих сбоях. Прежде чем собирать, скачайте PKGBUILD и прочитайте его команды: это пользовательский сценарий с доступом к вашей системе. Не запускайте скачанный сценарий с правами root; сборку выполняют обычным пользователем, а установку пакета — через pacman.
- Установите base-devel и зависимостиОткройте терминал Arch Linux и проверьте наличие инструментов сборки:
pacman -Q base-devel. Если группа или пакетный набор не установлен, выполнитеsudo pacman -Syu --needed base-develс официальных репозиториев. Дополнительные зависимости берите из проверенного PKGBUILD выбранного пакета в AUR; сначала прочитайте его содержимое. Сборкуmakepkgвыполняйте от обычного пользователя, не от root.Linux · Терминал (Bash)С осторожностьюНужен sudoУстанавливает инструменты сборки из официальных репозиториев Arch, может изменить зависимости и потребовать согласия пользователя; перед запуском нужен полный согласованный набор репозиториев и план транзакции.sudo pacman -S --needed base-develКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- Импортируйте PGP-ключТолько если
makepkgсообщаетunknown public key, выпишите полный отпечаток и найдите его на официальной странице исходного проекта либо в его подписанных указаниях. Сравните отпечатки до импорта. Импорт черезgpg --recv-keysразрешён лишь для проверенного ключа; сервер ключей сам по себе не подтверждает подлинность. После импорта повторитеmakepkgбез--skippgpcheck. Если подпись недействительна, остановитесь и не устанавливайте собранный пакет. - Выполните чистую сборкуДля повторной сборки используйте отдельный каталог с исходниками, после проверки PKGBUILD и зависимостей. Сначала сохраните журнал первой ошибки, затем можно удалить только временные сборочные файлы именно этого проекта через штатные возможности makepkg (см.
man makepkg). Запускайтеmakepkg -siобычным пользователем, не через sudo. Если сборка вновь падает, анализируйте первую содержательную ошибку компилятора; не применяйте случайные патчи.
#Лог и комментарии
Прокрутите вывод вверх до первой ошибки компилятора (error:). Откройте страницу пакета на и прочитайте свежие комментарии: часто проблема известна и есть заплатка. Проверьте, не помечен ли пакет «Out-of-date». Соберите вручную для чистоты эксперимента: git clone https://aur.archlinux.org/пакет.git && cd пакет && makepkg -si.
#Типовые причины
One or more PGP signatures could not be verified — импортируйте ключ: gpg --recv-keys ИДЕНТИФИКАТОР. Validity check failed или FAILED контрольных сумм — источник изменился: обновите PKGBUILD или используйте makepkg -g. Не хватает зависимостей: makepkg -s ставит их, или установите base-devel (sudo pacman -S --needed base-devel git). После обновления системы пересоберите пакет, зависящий от старых версий библиотек.
#Чистая сборка
Очистите кэш помощника (yay -Sc, или удалите ~/.cache/yay/пакет). Выполните makepkg -C -f для чистой сборки. Проверьте свободное место в /tmp и каталоге сборки (df -h), память (сборка Rust/C++ требует гигабайты). Задайте MAKEFLAGS="-j$(nproc)" в /etc/makepkg.conf, но при нехватке памяти уменьшите. Если пакет заброшен, ищите альтернативу в основных репозиториях или Flatpak.
pacman -Q gitpacman -Qg base-devel