Vous ne savez pas comment créer des packages OpenStack?

19

J'ai trouvé la tâche de génération OpenStack sur le site Ubuntu QA, mais je suis un peu confus quant aux étapes de construction.

Voici le lien pour les étapes de construction: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

Depuis le journal de construction de jenkins, je connais les étapes de la façon dont Ubuntu construit un paquet Openstack:

  1. obtenir le code openstack de github, utilisez git clone
  2. openstack tar.gzfichier de génération à l'aidepython setup.py sdist
  3. utiliser bzrpour obtenir les fichiers de contrôle debian qui sont maintenus par canonique
  4. utiliser la dchcommande pour générer une nouvelle version de build et la valider en local
  5. utiliser bzr builddeb -S -- -sa -us -ucpour générer le package source et le fichier de contrôle associé, tels quedsc
  6. signer le colis
  7. utiliser mk-build-depspour installer la dépendance
  8. utiliser sbuildpour générer les vrais packages deb
  9. télécharger vers les dépôts de test

Mes questions sont:

  1. À l'étape 5, nous pouvons déjà générer les paquets deb sans -S, mais pourquoi avons-nous finalement utilisé sbuildpour le générer? Est-ce uniquement pour la signature?
  2. Quelle est la différence entre bzr builddebet sbuild?
  3. J'ai trouvé les scripts de construction utilisés par jenkins ici ~openstack-ubuntu-testing/openstack-ubuntu-testing, mais quand j'essaye d'exécuter des commandes sous bin, j'obtiens toujours:

    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
    

J'ai essayé d'utiliser pip pour installer schroot, mais il semble qu'ils n'aient pas d'exécuteur.

Veuillez aider.

Ray Sun
la source
1
J'ai ouvert le lien que vous avez fourni et j'ai ce texte d'erreur: HTTP ERROR 404 Problème d'accès / vue / Openstack_Testing / vue / Grizzly / job / precise_grizzly_keystone_stable / 275 / consoleText. Raison: Introuvable Propulsé par Jetty: //
Cristiana Nicolae
1
un lien similaire à celui qu'il a fourni est jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

Réponses:

1

sbuildconstruit un package dans un environnement isolé en utilisant schroot. Dans cet environnement, seules les dépendances de génération déclarées par le package source sont installées, et rien d'autre. Cela permet de garantir que la génération n'est pas influencée par le développeur ou l'environnement CI à partir duquel elle est exécutée. Par exemple, sans sbuild, la présence d'un package dans l'environnement CI peut faire croire que la génération réussit alors qu'en fait il s'agissait d'une dépendance de génération non déclarée et échoue donc partout ailleurs. Pour des raisons de reproductibilité et de stabilité, il est préférable d'utiliser sbuild.

Robie Basak
la source