Как можно исправить ошибку с кодом выхода 2, возникающую при выполнении подпроцесса сборки в файле debian/rules в Debian?

Здравствуйте! У меня возникла ошибка при сборке пакета из исходных файлов с использованием команды dpkg-buildpackage. Я собираю пакет с помощью команды "dpkg-buildpackage -rfakeroot -uc -b". Ошибки, которые я получаю в результате, выглядят следующим образом:

make[4]: Leaving directory '/tmp/pulseaudio-11.1/src'
Makefile:4951: recipe for target 'all' failed
make[3]: *** [all] Error 2
make[3]: Leaving directory '/tmp/pulseaudio-11.1/src'
Makefile:812: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/tmp/pulseaudio-11.1'
Makefile:627: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/tmp/pulseaudio-11.1'
dh_auto_build: make -j4 returned exit code 2
debian/rules:34: recipe for target 'build' failed
make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build subprocess returned exit status 2

Я проверил установку необходимых утилит и библиотек, таких как git, autoconf, pkg-config, libssl-dev, libpam0g-dev, libx11-dev, libxfixes-dev, libxrandr-dev, nasm, xsltproc, flex, bison, libxml2-dev, dpkg-dev и libcap-dev, и они все установлены на моей системе Ubuntu 18.04.

Может быть, кто-нибудь сможет предложить решение проблемы?
  • 24 сентября 2023 г. 4:47
Ответы на вопрос 3
Ошибка с кодом выхода 2 указывает на то, что процесс сборки завершился с ошибкой. Для исправления этой ошибки вы можете попробовать следующие решения:

1. Проверьте логи сборки: Проверьте файлы логов, сгенерированные процессом сборки, чтобы найти более подробную информацию об ошибках. Обычно логи размещаются в директории `debian/build`, `debian/tmp`, `debian/temp` или `debian/logs`. Используйте команду `cat` или `less`, чтобы просмотреть содержимое файлов логов.

2. Убедитесь, что все зависимости установлены: Убедитесь, что все необходимые зависимости пакета установлены на вашей системе. Проверьте файл `debian/control` в вашем проекте, чтобы убедиться, что все зависимости указаны правильно. Попробуйте установить все зависимости вручную, используя команду `sudo apt-get install <имя_зависимости>`.

3. Обновите исходный код пакета: Попробуйте обновить исходный код пакета до последней версии. Иногда проблемы сборки могут быть исправлены в новых версиях.

4. Измените параметры сборки: Измените параметры сборки, передаваемые команде `dpkg-buildpackage`. Например, вы можете попробовать добавить флаги `-j1` или `-j3` для изменения количества одновременно выполняемых процессов.

5. Исключите определенные действия сборки: Используйте параметр `--exclude` с командой `dpkg-buildpackage`, чтобы исключить определенные действия сборки, которые вызывают ошибку. Например, вы можете попробовать `dpkg-buildpackage -rfakeroot -uc -b --exclude=<название_действия>`.

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

Не забывайте сохранять резервные копии перед внесением изменений и быть осторожными при внесении изменений в файлы debian/rules и другие файлы сборки.
2 
 Для того чтобы разобраться в ошибке "файл не найден", необходимо изучить логи сборки ранее, а не только обратить внимание на ее последствия.
Похожие вопросы