对于构建OpenStack软件包感到困惑吗?

我在Ubuntu QA网站上找到了OpenStack构建任务,但是对构建步骤有些困惑。
这是构建步骤的链接:https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText 从jenkins的构建日志中,我知道了Ubuntu构建Openstack软件包的步骤:
从GitHub获取OpenStack代码,使用git clone命令。 使用python setup.py sdist命令构建OpenStack tar.gz文件。 使用bzr命令获取由Canonical维护的Debian控制文件。 使用dch命令生成新的构建版本并提交到本地。 使用bzr builddeb -S -- -sa -us -uc命令生成源代码包和相关的控制文件,例如dsc文件。 对软件包进行签名。 使用mk-build-deps命令安装依赖项。 使用sbuild命令生成真正的deb软件包。 上传到测试存储库。
我的问题是:
  1. 在第5步,我们已经可以生成没有-S的deb包,但为什么最终要使用sbuild来生成呢?这只是为了签名吗?
  2. bzr builddebsbuild有什么区别?
  3. 我发现jenkins使用的构建脚本位于这里:~openstack-ubuntu-testing/openstack-ubuntu-testing,但当我尝试在bin下运行任何命令时,总是得到以下错误:

    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
    
我尝试使用pip安装schroot,但似乎它们没有其中的执行程序。
请帮忙。

1我打开了您提供的链接,得到了这个错误信息:HTTP错误404访问/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText时出现问题。原因:未找到由Jetty://提供支持 - Cristiana Nicolae
1他提供的一个类似的链接是https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/284/consoleText - ashubuntu
1个回答

sbuild在使用schroot的隔离环境中构建软件包。在这个环境中,只安装源软件包声明的构建依赖项,而不安装其他任何东西。这有助于确保构建过程不受开发者或CI环境的影响。例如,如果没有sbuild,在CI环境中存在一个软件包可能会导致构建成功,但实际上它是一个未声明的构建依赖项,因此在其他地方会失败。为了可重复性和稳定性的原因,最好使用sbuild。