เป็นไปได้ไหมที่จะตั้งข้อกำหนดของรุ่นที่เชื่อถือได้เช่นนี้
Required: somepackage >= 0.5.0 AND somepackage < 0.6.0
ดังนั้นบางแพคเกจ 0.5.xจะถูกติดตั้งโดยอัตโนมัติ
เป็นไปได้ไหมที่จะตั้งข้อกำหนดของรุ่นที่เชื่อถือได้เช่นนี้
Required: somepackage >= 0.5.0 AND somepackage < 0.6.0
ดังนั้นบางแพคเกจ 0.5.xจะถูกติดตั้งโดยอัตโนมัติ
คำตอบ:
ใช่ง่ายมากที่จะทำ
แค่เขียน:
Requires: somepackage >= 0.5.0, somepackage < 0.6.0
ลงใน.spec
ไฟล์ของคุณ
การเพิ่มข้อกำหนดของเวอร์ชัน
เมื่อแพ็คเกจมีความต้องการที่เข้มงวดมากขึ้นเป็นไปได้ที่จะต้องใช้แพคเกจบางเวอร์ชัน สิ่งที่จำเป็นทั้งหมดคือการเพิ่มหมายเลขรุ่นที่ต้องการนำหน้าด้วยหนึ่งในตัวดำเนินการเปรียบเทียบต่อไปนี้:
ต้องใช้แพคเกจที่มีรุ่นน้อยกว่ารุ่นที่ระบุ
ต้องการแพ็คเกจที่มีเวอร์ชันน้อยกว่าหรือเท่ากับเวอร์ชั่นที่ระบุ
ต้องใช้แพคเกจที่มีรุ่นเท่ากับรุ่นที่ระบุ
ต้องการแพ็คเกจที่มีเวอร์ชันเท่ากับหรือมากกว่ารุ่นที่ระบุ
ต้องใช้แพคเกจที่มีรุ่นมากกว่ารุ่นที่ระบุ
ต่อจากตัวอย่างของเราสมมติว่าเวอร์ชั่นแพคเกจที่ต้องการต้องมีอย่างน้อย 2.7 และแพคเกจ baz ต้องเป็นเวอร์ชั่น 2.1 - ไม่มีเวอร์ชั่นอื่นที่จะทำ นี่คือสิ่งที่บรรทัดแท็กต้องการจะมีลักษณะ: ต้องการ: บาร์> = 2.7, baz = 2.1
ที่มา: http://rpm.org/user_doc/more_dependencies.html
ระบบที่อธิบายไว้ข้างต้นใช้งานได้กับแพ็คเกจส่วนใหญ่ อย่างไรก็ตามหากแพ็กเกจที่คุณต้องการมีให้เป็น [ความสามารถเสมือนจริง] [1] หรือมีการจัดไว้เป็นอย่างอื่น (เช่นคำหลัก "นำเสนอ:") โดยแพ็คเกจที่มีชื่อแตกต่างกัน (ซึ่งไม่ขัดแย้งกัน) อาจจบลงด้วยการติดตั้งแพ็กเกจที่แตกต่างกันสองแพคเกจแต่ละแพคเกจที่ตรงตามความต้องการ ตัวอย่างเช่นหากไฟล์ spec ของคุณมี:
Requires: postgresql-server >= 8.4, postgresql-server < 9.0
อาจส่งผลให้ (ถ้าคุณมีแพคเกจเหล่านี้พร้อมให้ยำ) การติดตั้ง:
แต่จะไม่ติดตั้ง postgresql84-server ซึ่งอาจเป็นแพ็คเกจที่คุณคาดว่าจะติดตั้ง
(ในกรณีนี้การแก้ปัญหาจะต้องใช้เซิร์ฟเวอร์ postgresql84 อย่างไรก็ตามมีตัวอย่างอื่น ๆ ที่ไม่มีวิธีแก้ปัญหาที่ง่าย)
ไม่ชัดเจนสำหรับฉันถ้าคุณพยายามสร้างแพ็คเกจหรือติดตั้งแพ็คเกจและ "จำกัด " การขึ้นต่อกันของมัน
ฉันไม่เห็นวิธีสร้างเคสที่สองโดยไม่ต้องสร้างแพ็กเกจใหม่
คุณสามารถดึง SRPM และแก้ไขไฟล์ข้อมูลจำเพาะและเพื่อเพิ่ม / แก้ไขรายการที่ต้องการ (คุณต้องการ somepackage 0.5.x ใช่ไหม?) กลับไปที่สิ่งนี้:
Requires: somepackage = 0.5.0
แล้วสร้างใหม่ด้วย
rpmbuild -bb -v yourpackage.spec
หากคุณไม่เคยทำมาก่อนดูเหมือนจะเป็นการข่มขู่ แต่จะช่วยแก้ปัญหาของคุณได้ โปรดทราบว่าหากกำลังสร้างแพคเกจสาธารณะสำหรับ distro คุณอาจต้องการอ่านคำแนะนำเนื่องจากตั้งค่าการพึ่งพาวิธีนี้โดยทั่วไปไม่แนะนำ