Я нашел задачу сборки OpenStack на Ubuntu сайтом QA, но я немного смущен шагами сборки.
Вот ссылка для шагов сборки: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText
От журнала сборки jenkins я знаю шаги как сборка Ubuntu OpenStack пакеты:
git clone
openstack tar.gz
использование файла python setup.py sdist
bzr
для получения debian управляют файлами, который является обслуживанием каноническимdch
команда, чтобы генерировать новый выпуск сборки и фиксировать его локальномуbzr builddeb -S -- -sa -us -uc
генерировать исходный пакет и связанный файл управления, такой как dsc
mk-build-deps
устанавливать зависимостьsbuild
генерировать реальные deb пакетыМои вопросы:
-S
, но почему мы наконец используем sbuild
генерировать его? Это только для подписи?bzr builddeb
и sbuild
?Я нашел сценарии сборки, какой используемый jenkins расположен здесь: ~openstack-ubuntu-testing/openstack-ubuntu-testing
, но когда я пытаюсь выполнить любые команды под bin
, Я всегда добираюсь:
root@demo:~/openstack-ubuntu-testing/bin# ./build-package
Traceback (most recent call last):
File "./build-package", line 14, in <module>
from openstack_ubuntu_testing.build.component_build import ComponentBuild
File "/home/sysadmin/openstack-ubuntu-testing/bin/openstack_ubuntu_testing/build/component_build.py", line 11, in <module>
from schroot.executor import SchrootExecutor
ImportError: No module named schroot.executor
Я пытался использовать зернышко для установки schroot, но кажется, что у них нет исполнителя в нем.
Помогите.
sbuild
создает пакет в изолированной среде, используя schroot
. В этой среде устанавливаются только зависимости сборки, объявленные исходным пакетом, и ничего больше. Это помогает гарантировать, что сборка не подвержена влиянию разработчика или среды CI, из которой она запускается. Например, без sbuild присутствие пакета в среде CI может создать впечатление, что сборка завершается успешно, хотя на самом деле это была необъявленная зависимость сборки, и поэтому происходит сбой повсюду. Из соображений воспроизводимости и стабильности лучше использовать sbuild.