Masz wątpliwości co do tworzenia pakietów OpenStack?

19

Znalazłem zadanie kompilacji OpenStack na stronie QA Ubuntu, ale jestem trochę zdezorientowany co do kroków kompilacji.

Oto link do kroków kompilacji: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

Z dziennika kompilacji Jenkins wiem, w jaki sposób Ubuntu buduje pakiety Openstack:

  1. pobierz kod openstack z github, użyj git clone
  2. skompiluj openstack tar.gzplik za pomocąpython setup.py sdist
  3. służy bzrdo pobierania plików kontrolnych Debiana, które są obsługiwane przez kanoniczny
  4. użyj dchpolecenia, aby wygenerować nową wersję kompilacji i zatwierdzić ją lokalnie
  5. służy bzr builddeb -S -- -sa -us -ucdo generowania pakietu źródłowego i powiązanego pliku kontrolnego, takiego jakdsc
  6. podpisać paczkę
  7. służy mk-build-depsdo instalowania zależności
  8. służy sbuilddo generowania prawdziwych pakietów deb
  9. przesłać do repozytoriów testowych

Moje pytania to:

  1. W kroku 5 możemy już wygenerować pakiety deb bez -S, ale dlaczego w końcu go używamy sbuild? Czy to tylko do podpisu?
  2. Jaka jest różnica między bzr builddebi sbuild?
  3. Znalazłem skrypty kompilacji, których używał Jenkins: tutaj ~openstack-ubuntu-testing/openstack-ubuntu-testing, ale kiedy próbuję uruchomić dowolne polecenia bin, zawsze otrzymuję:

    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
    

Próbowałem użyć pipa, aby zainstalować schroota, ale wygląda na to, że nie ma w nim executora.

Proszę pomóż.

Ray Sun
źródło
1
Otworzyłem podany przez Ciebie link i otrzymałem następujący tekst błędu: BŁĄD HTTP 404 Problem z dostępem / widokiem / Testowaniem Openstack / widokiem / Grizzly / job / precision_grizzly_keystone_stable / 275 / consoleText. Powód: Nie znaleziono Powered by Jetty: //
Cristiana Nicolae
1
podobny link, jaki podał, to jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

Odpowiedzi:

1

sbuildbuduje pakiet w izolowanym środowisku przy użyciu schroot. W tym środowisku instalowane są tylko zależności kompilacji zadeklarowane przez pakiet źródłowy i nic więcej. Pomaga to upewnić się, że środowisko programistyczne lub środowisko CI, z którego jest uruchamiany, nie ma wpływu na kompilację. Na przykład bez sbuild obecność pakietu w środowisku CI może sprawiać wrażenie, że kompilacja się powiedzie, podczas gdy w rzeczywistości była to niezadeklarowana zależność kompilacji, a więc zawodzi wszędzie indziej. Ze względu na odtwarzalność i stabilność lepiej jest użyć sbuild.

Robie Basak
źródło