สับสนเกี่ยวกับการสร้างแพ็คเกจ OpenStack ไหม?


19

ฉันพบงานสร้าง OpenStack บนไซต์ QA ของ Ubuntu แต่ฉันสับสนเล็กน้อยเกี่ยวกับขั้นตอนการสร้าง

นี่คือลิงค์สำหรับขั้นตอนการสร้าง: https://jenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/precise_grizzly_keystone_stable/275/consoleText

จากบันทึกการสร้าง jenkins ฉันรู้ขั้นตอนวิธีที่ Ubuntu สร้างแพ็คเกจ Openstack:

  1. รับรหัส openstack จาก gitHub ใช้ git clone
  2. สร้างopenstack tar.gzไฟล์โดยใช้python setup.py sdist
  3. ใช้bzrเพื่อรับไฟล์ควบคุม debian ซึ่งเป็นการบำรุงรักษาตามมาตรฐาน
  4. ใช้dchคำสั่งเพื่อสร้างรุ่นบิลด์ใหม่
  5. ใช้bzr builddeb -S -- -sa -us -ucเพื่อสร้างแพ็กเกจซอร์สและไฟล์ควบคุมที่เกี่ยวข้องเช่นdsc
  6. ลงนามในแพคเกจ
  7. ใช้mk-build-depsเพื่อติดตั้งการพึ่งพา
  8. ใช้sbuildเพื่อสร้างแพ็คเกจ deb จริง
  9. อัปโหลดไปยัง repos ทดสอบ

คำถามของฉันคือ:

  1. ในขั้นตอนที่ 5 เราสามารถสร้างแพ็กเกจ deb ได้โดยไม่ต้อง-Sแต่ทำไมเราใช้sbuildเพื่อสร้างมันขึ้นมา? นี่เป็นเพียงลายเซ็นต์เท่านั้น
  2. ความแตกต่างระหว่างbzr builddebและsbuildคืออะไร
  3. ฉันพบสคริปต์สร้างที่เจนกินส์ใช้อยู่ที่นี่: ~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 ERROR 404 ปัญหาในการเข้าถึง / ดู / Openstack_Testing / ดู / Grizzly / งาน / precision_grizzly_keystone_stable / 275 / consoleText เหตุผล: ไม่พบขับเคลื่อนโดย Jetty: //
Cristiana Nicolae

1
ลิงก์ที่คล้ายกันที่เขาให้ไว้คือjenkins.qa.ubuntu.com/view/Openstack_Testing/view/Grizzly/job/…
ashubuntu

คำตอบ:


1

sbuildschrootสร้างแพคเกจในสภาพแวดล้อมบางแห่งใช้ ในสภาพแวดล้อมนี้ติดตั้งเฉพาะการอ้างอิงสร้างที่ประกาศโดยแพ็คเกจต้นทางและไม่มีอะไรอื่น สิ่งนี้ช่วยให้มั่นใจได้ว่าการสร้างไม่ได้รับอิทธิพลจากนักพัฒนาหรือสภาพแวดล้อม CI ที่ถูกเรียกใช้ ตัวอย่างเช่นหากไม่มี sbuild การมีอยู่ของแพ็กเกจในสภาพแวดล้อม CI อาจทำให้ปรากฏว่าการสร้างสำเร็จเมื่อจริง ๆ แล้วมันเป็นการพึ่งพาการสร้างที่ไม่ได้ประกาศและล้มเหลวในทุกที่อื่น สำหรับเหตุผลในการทำซ้ำและความมั่นคงจะดีกว่าที่จะใช้ sbuild

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.