Что использовать для сборки пакетов Ubuntu/ Debian?
В последнее время я изучал различные руководства и инструкции по сборке пакетов. И, кажется, есть много способов сделать это. Так что я немного озадачен тем, что именно использовать. То есть я пытаюсь увидеть всю картину. Какие инструменты существуют? Каковы отношения между ними? Какие обертки для чего? Какие лучше подходят для чего? Подобно, apt-get source
вероятно, в основном нацелен на пользователей, а не разработчиков. Лучшая альтернатива должна быть dget
, Какие альтернативы для чего? Чтобы назвать несколько есть pbuilder
, pdebuild
, pbuilder-dist
, cowbuilder
, sbuild
, debuild
, dpkg-buildpackage
, fakeroot
, И должно быть еще много чего я даже не знаю. Каковы наиболее распространенные рабочие процессы?
2 ответа
Что мне удалось выяснить. Во-первых, это краткое описание, о котором я чаще всего спрашиваю.
В основе системы сборки лежит dpkg-buildpackages
, который использует fakeroot
который в свою очередь работает debian/rules
(который является make-файлом) для создания пакета. И этого может быть достаточно, если вы собираетесь создать пакет для внутреннего использования для выпуска, в котором вы его запускаете.
Если, с другой стороны, вы стремитесь к debian
/ubuntu
, ты будешь использовать по крайней мере debuild
, который работает lintian
и подписывает файлы.
Если вы хотите нацеливаться на разные debian
/ubuntu
релизы, вы собираетесь использовать pbuilder
который, помимо прочего, создает пакеты в чистой среде, не засоренной уже установленными пакетами, чтобы увидеть фактические зависимости. Можно рассмотреть возможность использования pbuilder-dist
чтобы упростить дела еще больше.
Там в pdebuild
который, как говорят, является "способом построения debuild". Я не вижу, как это работает lintian
, но это может не соответствовать pbuilder
путь.
Тогда есть также cowbuilder
, если вы хотите ускорить сборку пакетов (обертка вокруг pbuilder
?). Есть также инструменты для сборки из git
хранилища, я не копался.
UPD мне сказали на #debian-mentors
тот "sbuild
ведет себя так же, как buildd
меньше сюрпризов "та"pbuilder
Поддержка экспериментальных просто неверна ", что" ОТОХ sbuild
до сих пор не хватает чего-то, чтобы отнять сеть от процесса сборки ", и что pbuilder
не поддерживается. Удаление сети необходимо, поскольку сборка пакетов не должна зависеть от ее наличия, они не должны ничего скачивать.
schroot
Из экспериментальных якобы способен изолировать (не поделиться) сеть.
Вы не говорите много о своей исходной среде.
Если это открытый исходный код и только один проект (один файл управления под debian/
каталог), то https://launchpad.net/ это действительно хорошее решение. Более или менее, вы должны правильно составить файлы, а они позаботятся обо всем остальном.
Правильное получение файлов - это немного волшебства для меня, даже сейчас, но есть множество документации о том, как создать пакет. Вы можете начать с очень простого примера, который работает, а затем потратить время на добавление других опций / функций по мере продвижения вперед. Таким образом, вам не нужно изучать все входы и выходы сразу.