У меня есть исходный пакет debian (ну технически ubuntu), то есть .dsc, .tar.gz и т. Д., Я хочу его создать. В dpkg-buildpackage
не работает, так как у меня нет всех зависимостей сборки.
Обычно я бы использовал apt-get build-dep
, но этого пакета нет в apt.
Есть ли «чистый», «правильный» способ установки всех зависимостей сборки, учитывая исходный пакет. Я знаю, что могу просто открыть файл debian / control, но мне любопытно, есть ли «правильный» способ.
Я установил build-essential
, и имеет все обычные компиляторы и т. д., этот пакет требует дополнительного программного обеспечения.
Использовать mk-build-deps
который является частью devscripts
.
Вот пример рабочего процесса с использованием предложения ptman.
Предполагая, что вы загрузили .dsc
файл, .orig.*z
файл и, возможно, также .debian.*z
файл, затем распакуйте исходный пакет с помощью:
dpkg-source -x [package_name]_[package_version].dsc
Перейдите в извлеченную исходную папку и запустите:
sudo mk-build-deps -i
Это создаст файл [package_name]-build-deps_[version].deb
и установите его, а также установите все предлагаемые зависимости.
Теперь вы сможете собрать свой пакет из исходного кода:
debuild
Когда вы закончите, вы можете легко удалить зависимости, которые были втянуты, удалив build-deps
пакет, который вы создали:
sudo apt-get purge --auto-remove [package_name]-build-deps
На самом деле я могу использовать dpkg-checkbuilddeps
который показывает зависимости сборки. Это дает мне 99% того, что мне нужно
Я обычно использую debuild
из devscripts
для сборки пакетов, и, если они есть, выводит строку с отсутствующими сборками.
"Правильный" способ - использовать pbuilder
или что-то подобное, что позволит собрать пакет за минимальную chroot
и просто установите любые дополнительные сборки, указанные в пакете, это также устранит множество других потенциальных проблем (например, локальные установки неупакованных библиотек).
В файле debian / control перечислены все пакеты, которые должны быть установлены как зависимости сборки. Если (по какой-либо причине) вы установили какое-то необходимое программное обеспечение без системы apt, просто удалите соответствующие строки из файла debian / control, чтобы dpkg-buildpackage не узнал об этих пакетах и не проверял их.
Другой трюк заключается в прямом выполнении инструкций сборки, что также позволяет обойти любые дополнительные проверки с помощью dpkg-buildpackage и не выполняет очистку файлов сборки (помогает с добавочными локальными исправлениями) путем выполнения fakeroot ./debian/rules binary
вместо dpkg-buildpackage.
Пытаться:
apt-get install build-essential