OpenStack 패키지 구축에 대해 혼란 스러우십니까? 대해 약간 혼란

Ubuntu QA 사이트에서 OpenStack 빌드 작업을 찾았지만 빌드 단계에 대해 약간 혼란 스럽습니다.

빌드 단계에 대한 링크는 다음과 같습니다. https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

jenkins 빌드 로그에서 Ubuntu가 Openstack 패키지를 빌드하는 단계를 알고 있습니다.

  1. github에서 openstack 코드를 가져옵니다. git clone
  2. openstack tar.gz파일을 사용하여 빌드python setup.py sdist
  3. bzr정식으로 유지 관리되는 데비안 제어 파일을 얻는 데 사용
  4. 사용하는 dch새로운 빌드 릴리스를 생성하는 명령을 지역에 투입
  5. bzr builddeb -S -- -sa -us -uc소스 패키지 및 관련 제어 파일을 생성 하는 데 사용dsc
  6. 패키지에 서명
  7. 사용 mk-build-deps종속 관계를 설치하는
  8. sbuild실제 deb 패키지를 생성하는 데 사용
  9. 테스트 저장소에 업로드

내 질문은 :

  1. 5 단계에서을 사용하지 않고 deb 패키지를 이미 생성 할 수 -S있지만 최종적으로 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를 설치하려고했지만 실행 파일이없는 것 같습니다.

도와주세요.



답변

sbuild를 사용하여 격리 된 환경에서 패키지를 빌드합니다 schroot. 이 환경에서는 소스 패키지에 의해 선언 된 빌드 종속성 만 설치되며 다른 것은 없습니다. 이를 통해 빌드가 실행되는 개발자 또는 CI 환경의 영향을받지 않도록 할 수 있습니다. 예를 들어, sbuild가 없으면 CI 환경에 패키지가 있으면 실제로 선언되지 않은 빌드 종속성 일 때 빌드가 성공하고 다른 곳에서는 실패한 것처럼 보일 수 있습니다. 재현성과 안정성을 위해 sbuild를 사용하는 것이 좋습니다.