Смутно о создании пакетов OpenStack?

19

Я нашел задачу сборки OpenStack на сайте Ubuntu QA, но я немного смущен о шагах сборки.

Вот ссылка на шаги сборки: Ссылка

Из журнала сборки jenkins я знаю, как Ubuntu создает пакеты Openstack:

  1. получить код openstack из github, используйте git clone
  2. построить openstack tar.gz файл, используя python setup.py sdist
  3. используйте bzr , чтобы получить файлы управления debian, поддерживающие канонические
  4. используйте команду dch для создания новой версии сборки и фиксации ее на локальном
  5. используйте bzr builddeb -S -- -sa -us -uc для создания исходного пакета и связанного с ним управляющего файла, например dsc
  6. Подпишите пакет
  7. используйте mk-build-deps для установки зависимости
  8. используйте sbuild для создания реальных пакетов deb
  9. Загрузка в тестовые репозитории

Мои вопросы:

  1. На шаге 5 мы уже можем генерировать пакеты deb без -S , но почему мы, наконец, используем sbuild для его создания? Это только для подписи?
  2. В чем разница между bzr builddeb и sbuild ?
  3. Я нашел скрипты сборки, которые использовали jenkins: ~openstack-ubuntu-testing/openstack-ubuntu-testing , но когда я пытаюсь запустить любые команды в bin , я всегда получаю:

    [email protected]:~/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, но кажется, что в нем нет исполнителя.

Пожалуйста, помогите.

    
задан Ray Sun 04.09.2013 в 09:24
источник

1 ответ

1

sbuild создает пакет в изолированной среде, используя schroot . В этой среде устанавливаются только зависимости сборки, объявленные исходным пакетом, и ничего больше. Это помогает гарантировать, что на сборку не влияет среда разработки или CI, из которой она выполняется. Например, без sbuild наличие пакета в среде CI может заставить его казаться, что сборка преуспевает, когда на самом деле это была незаявленная зависимость сборки и так не выполняется во всем остальном. Для целей воспроизводимости и стабильности лучше использовать sbuild.

    
ответ дан Robie Basak 27.10.2015 в 13:08