Encontrei a tarefa de compilação do OpenStack no site de controle de qualidade do Ubuntu, mas estou um pouco confuso sobre as etapas de compilação.
Aqui está o link para as etapas de compilação: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText
No log de compilação do jenkins, conheço as etapas de como o Ubuntu constrói um pacote Openstack:
- obtenha o código openstack no github, use
git clone
- construir
openstack tar.gz
arquivo usandopython setup.py sdist
- use
bzr
para obter os arquivos de controle debian, que é a manutenção por canonical - use o
dch
comando para gerar uma nova versão de compilação e comprometê-la com o local - use
bzr builddeb -S -- -sa -us -uc
para gerar pacote de origem e arquivo de controle relacionado, comodsc
- assine o pacote
- use
mk-build-deps
para instalar dependência - use
sbuild
para gerar os pacotes deb reais - fazer upload para repositórios de teste
Minhas perguntas são:
- Na etapa 5, já podemos gerar os pacotes deb sem
-S
, mas por que finalmente usamossbuild
para gerá-los? Isso é apenas para assinatura? - Qual é a diferença entre
bzr builddeb
esbuild
? Encontrei os scripts de construção que o jenkins usou estão localizados aqui:,
~openstack-ubuntu-testing/openstack-ubuntu-testing
mas quando tento executar qualquer comando abaixobin
, sempre recebo: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
Tentei usar o pip para instalar o schroot, mas parece que eles não têm um executor.
Por favor ajude.
package-management
packaging
openstack
Ray Sun
fonte
fonte
Respostas:
sbuild
cria um pacote em um ambiente isolado usandoschroot
. Nesse ambiente, apenas as dependências de compilação declaradas pelo pacote de origem são instaladas e nada mais. Isso ajuda a garantir que a construção não seja influenciada pelo desenvolvedor ou pelo ambiente de IC do qual é executada. Por exemplo, sem sbuild, a presença de um pacote no ambiente de IC pode parecer que a compilação é bem-sucedida quando na verdade era uma dependência de compilação não declarada e, portanto, falha em qualquer outro lugar. Por motivos de reprodutibilidade e estabilidade, é melhor usar o sbuild.fonte