Я нашел задачу сборки OpenStack на сайте Ubuntu QA, но меня немного смущают этапы сборки.
Вот ссылка на этапы сборки: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText
Из журнала сборки jenkins я знаю шаги, как Ubuntu собирает пакеты Openstack:
- получить код openstack из github, используйте
git clone
- создать
openstack tar.gz
файл с помощьюpython setup.py sdist
- используйте
bzr
для получения контрольных файлов Debian, которые поддерживаются каноническим - используйте
dch
команду, чтобы сгенерировать новый выпуск сборки и зафиксировать его в локальном - использовать
bzr builddeb -S -- -sa -us -uc
для создания исходного пакета и связанного управляющего файла, такого какdsc
- подписать пакет
- использовать
mk-build-deps
для установки зависимости - использовать
sbuild
для генерации реальных пакетов deb - загрузить в тестовые репозитории
Мои вопросы:
- На шаге 5 мы уже можем генерировать пакеты 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
Я пытался использовать pip для установки schroot, но, похоже, в нем нет исполнителя.
Пожалуйста помоги.
package-management
packaging
openstack
Рэй Сан
источник
источник
Ответы:
sbuild
создает пакет в изолированной среде, используяschroot
. В этой среде устанавливаются только зависимости сборки, объявленные исходным пакетом, и ничего больше. Это помогает гарантировать, что сборка не подвержена влиянию разработчика или среды CI, из которой она запускается. Например, без sbuild присутствие пакета в среде CI может создать впечатление, что сборка завершается успешно, хотя на самом деле это была необъявленная зависимость сборки, и поэтому происходит сбой повсюду. Из соображений воспроизводимости и стабильности лучше использовать sbuild.источник