Sie sind verwirrt über das Erstellen von OpenStack-Paketen?

19

Ich habe die OpenStack-Build-Aufgabe auf der Ubuntu-QA-Site gefunden, bin aber ein wenig verwirrt über die Build-Schritte.

Hier ist der Link für Build-Schritte: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

Aus dem Jenkins-Build-Protokoll kenne ich die Schritte, mit denen Ubuntu Openstack-Pakete erstellt:

  1. Holen Sie sich Openstack-Code von Github, verwenden Sie git clone
  2. Build - openstack tar.gzDateipython setup.py sdist
  3. Verwenden Sie bzrdiese Option, um die Debian-Steuerdateien abzurufen, die von Canonical verwaltet werden
  4. Verwenden Sie den dchBefehl, um ein neues Build-Release zu generieren und es an local zu übergeben
  5. Verwenden Sie bzr builddeb -S -- -sa -us -ucdiese Option, um ein Quellpaket und eine zugehörige Steuerdatei zu generieren, zdsc
  6. unterschreibe das Paket
  7. Verwenden Sie mk-build-deps, um die Abhängigkeit zu installieren
  8. Verwenden Sie sbuilddiese Option, um die echten Deb-Pakete zu generieren
  9. In Test-Repos hochladen

Meine Fragen sind:

  1. In Schritt 5 können wir die Deb-Pakete bereits ohne generieren -S, aber warum verwenden wir sie schließlich sbuild, um sie zu generieren? Ist dies nur zur Unterschrift?
  2. Was ist der Unterschied zwischen bzr builddebund sbuild?
  3. Ich fand die Build-Skripte, die Jenkins verwendete, hier:, ~openstack-ubuntu-testing/openstack-ubuntu-testingaber wenn ich versuche, Befehle unter auszuführen bin, erhalte ich immer:

    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
    

Ich habe versucht, pip zu verwenden, um schroot zu installieren, aber es scheint, dass sie keinen Executor darin haben.

Bitte helfen Sie.

Ray Sun.
quelle
1
Ich habe den angegebenen Link geöffnet und folgenden Fehlertext erhalten: HTTP ERROR 404 Problem beim Zugriff auf / view / Openstack_Testing / view / Grizzly / job / exact_grizzly_keystone_stable / 275 / consoleText. Grund: Nicht gefunden Powered by Jetty: //
Cristiana Nicolae
1
Ein ähnlicher Link, den er bereitgestellt hat, ist jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

Antworten:

1

sbuildErstellt ein Paket in einer isolierten Umgebung mit schroot. In dieser Umgebung werden nur die vom Quellpaket deklarierten Build-Abhängigkeiten installiert, sonst nichts. Auf diese Weise wird sichergestellt, dass der Build nicht von dem Entwickler oder der CI-Umgebung beeinflusst wird, von der aus er ausgeführt wird. Ohne sbuild könnte beispielsweise das Vorhandensein eines Pakets in der CI-Umgebung den Anschein erwecken, dass der Build erfolgreich war, obwohl es sich tatsächlich um eine nicht deklarierte Build-Abhängigkeit handelte und daher überall sonst fehlschlägt. Aus Gründen der Reproduzierbarkeit und Stabilität ist es besser, sbuild zu verwenden.

Robie Basak
quelle