RedHat: เป็นไปได้หรือไม่ที่จะติดตั้งแพ็คเกจในสภาพแวดล้อมจำลองเพื่อสร้าง RPM


10

มีเครื่องมือที่อนุญาตให้ติดตั้งการพึ่งพาของ RPM .spec ในสภาพแวดล้อมที่แยกได้หรือไม่? ฉันจะไม่ติดตั้งการพึ่งพาดังกล่าวทั่วโลกบนระบบและฉันไม่สามารถทำได้เนื่องจากไม่มีสิทธิ์รูต

เหตุผล

ฉันต้องการสร้างแพ็คเกจAซึ่งขึ้นอยู่กับเวอร์ชันใหม่กว่าของB (ซึ่งไม่สามารถติดตั้งได้ทั่วโลกบนระบบ)

ผมชอบที่จะสร้างรุ่นใหม่ของBและปล่อยให้สร้างเครื่องมือติดตั้งB 's -develลงในสภาพแวดล้อมที่แยกเพื่อให้ไฟล์ที่จำเป็นทั้งหมดสำหรับการสร้างของ

โซลูชั่น

  • มีเครื่องมือในการทำเช่นนี้หรือไม่?
  • ถ้าไม่ฉันควรดูแลเมื่อพยายามทำสิ่งนี้ด้วยคำพูดchroot?
  • นี่จะเป็นการปฏิบัติที่ไม่ดีหรือไม่?

คำตอบ:


8

ใช่เครื่องมือนี้ถูกเรียกใช้mockและอยู่ใน EPEL

การใช้งานทั่วไป:

rpmbuild -bs mypackage.spec
mock -r epel-6-x86_64 mypackage-0.1-1.src.rpm

นี่เป็นวิธีที่ต้องการในการสร้าง RPMs อย่างแม่นยำเพราะมันแยกกระบวนการออกจากระบบเพื่อไม่ให้มีการพึ่งพาที่ไม่คาดคิด

คุณสามารถปรับเปลี่ยนไฟล์/etc/mockเพื่อให้มันดึงในแพ็คเกจของคุณ, repo ส่วนตัว ฯลฯ หรือตรวจสอบเอกสารเพื่อดูข้อมูลเกี่ยวกับวิธีการเพิ่มแพ็กเกจในmockสภาพแวดล้อม chroot ด้วยตนเอง

ทราบว่าผู้ใช้ควรจะเพิ่มให้กับกลุ่มที่จะได้รับอนุญาตให้ใช้งานmockmock

ไม่ใช่บังเอิญkojiเซิร์ฟเวอร์บิลด์ที่ Red Hat ใช้การเรียกmockเพื่อสร้างแต่ละแพ็คเกจ หากคุณต้องสร้างแพ็คเกจจำนวนมากตลอดเวลามันอาจคุ้มค่าที่จะดูการตั้งค่าkojiเซิร์ฟเวอร์บิลด์


ขอบคุณไมเคิล ฟังดูดีมากและฉันดีใจที่คำถามของฉันไม่ได้โง่อย่างที่ฉันคิด ;)
ลองจับได้ในที่สุด

3

ฉันคิดว่าการพยายามสร้างแพ็คเกจบนโฮสต์ที่ใช้งานจริงนั้นเป็นวิธีที่ไม่ดีและการพยายามทำโดยไม่มีสิทธิ์รูทนั้นซับซ้อนกว่าการสร้างเครื่องสร้างของคุณเอง สิ่งที่ฉันทำตามปกติคือ

  1. ติดตั้ง VirtualBox หรือเครื่องมือที่คล้ายกันบนเดสก์ท็อป / แล็ปท็อปของคุณ
  2. สร้าง VM 32/64 ของระบบปฏิบัติการที่คุณใช้ในการผลิต
  3. ติดตั้งเครื่องมือจำลองทั่วไป rpmbuild ฯลฯ
  4. สร้าง RPMs สำหรับแพ็คเกจและเพิ่มเพิ่มเติมสำหรับ archs ทั้งสองบน VMs ของคุณ
  5. หลังจากการทดสอบผลัก RPMs เข้าไปใน repo ภายในของคุณเพื่อแจกจ่ายไปยังเซิร์ฟเวอร์ของคุณ
  6. ทดสอบอีกครั้งเพื่อให้แน่ใจว่ามีการดึงการอ้างอิงที่เหมาะสม
  7. ปล่อยผ่านการจัดการการกำหนดค่าของคุณ

สิ่งนี้จะได้ผล จะดีกว่าการใช้จำลองอย่างไร ฉันคิดว่าการเยาะเย้ยนั้นจะง่ายกว่า แต่ฉันคิดว่ามันน่าจะเกิดขึ้นได้เหมือนกัน
emory

ฉันไม่ได้มีปัญหากับการเยาะเย้ยและฉันเชื่อว่าเกือบทั้งหมด "วิธีการทำรอบต่อนาที" มีเอกสารให้คุณติดตั้ง อย่างไรก็ตามหากไม่มีการเข้าถึงรูทฉันไม่แน่ใจว่า OP จะเพิ่มบัญชีของตนลงในกลุ่มจำลองติดตั้งจำลองได้อย่างไรและอื่น ๆ นอกจากนี้การมี clean build VMs ช่วยหลีกเลี่ยงการพึ่งพาคี่จากการเพิ่มลงในแพ็คเกจโดยไม่ได้ตั้งใจ
Ramin

จุดที่ดีเยี่ยม ฉันไม่สามารถพิจารณาได้ โดยที่ในใจฉันคิดว่านี่เป็นคำตอบที่ถูกต้อง
emory

@emory ตามความคิดเห็นของคุณฉันชี้แจงว่าทำไมฉันคิดว่าการสร้าง VM เป็นโซลูชั่นที่ดีกว่าโดยรวมซึ่งฉันคิดว่าจะทำให้คำตอบที่ดีขึ้น ขอบคุณสำหรับ prodding ฉัน :-)
Ramin

@Ramin ในสถานการณ์ของฉัน (ที่ทำงาน) ฉันเป็นเพียงผู้ใช้ ระบบนี้เป็นระบบบิลด์เฉพาะและดีถ้านักพัฒนาทั้งหมดในโฮสต์นั้นมีสิทธิ์ใช้งานรูทบ็อกซ์นั้นจะไม่สามารถบู๊ตได้หลังจาก 1 สัปดาห์ ;) ดังนั้นการใช้เครื่องมืออย่าง Mock จึงเป็นสิ่งที่ถูกต้องที่จะใช้! การตั้งค่า VMs ก็เป็นความคิดที่ดีเช่นกันหากสามารถใช้งานได้อัตโนมัติ ฉันคิดว่าVagrant (ฉันยังไม่ได้ทดสอบ) เป็นเครื่องมือที่เหมาะสมสำหรับสิ่งนั้น
ลองจับได้ในที่สุด

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