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
openstack tar.gz
파일을 사용하여 빌드python setup.py sdist
bzr
정식으로 유지 관리되는 데비안 제어 파일을 얻는 데 사용- 사용하는
dch
새로운 빌드 릴리스를 생성하는 명령을 지역에 투입 bzr builddeb -S -- -sa -us -uc
소스 패키지 및 관련 제어 파일을 생성 하는 데 사용dsc
- 패키지에 서명
- 사용
mk-build-deps
종속 관계를 설치하는 sbuild
실제 deb 패키지를 생성하는 데 사용- 테스트 저장소에 업로드
내 질문은 :
- 5 단계에서을 사용하지 않고 deb 패키지를 이미 생성 할 수
-S
있지만 최종적으로sbuild
이를 생성하는 데 사용 하는 이유는 무엇입니까? 서명 전용인가요? - 차이 무엇
bzr builddeb
과sbuild
? -
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를 사용하는 것이 좋습니다.