ฉันสามารถมีแพ็กเกจเดียวกันสองเวอร์ชั่นในที่เก็บ apt ได้หรือไม่?


19

ฉันใช้ Ubuntu 10.04 ในทุกสภาพแวดล้อม เพื่อให้การปรับใช้รหัสง่ายขึ้นเรากำลังใช้พื้นที่เก็บข้อมูล apt ส่วนตัวที่เราสามารถปรับใช้การสร้างรหัสของเรา

หนึ่งในข้อกำหนดของที่เก็บนี้คือแผนก QA ของเราจะสามารถติดตั้งแอปพลิเคชันของเราได้ทุกเมื่อ

ฉันสามารถจัดเก็บแพกเกจเดียวกันได้หลายเวอร์ชันใน apt-repository (โดยเฉพาะอย่างยิ่งในการแจกจ่ายเดียวกัน)? หากไม่เป็นเช่นนั้นฉันสามารถใช้วิธีการอื่นเพื่อแก้ไขพฤติกรรมที่อธิบายไว้ข้างต้นได้อย่างไร

คำตอบ:


19

ใช่คุณทำได้และคุณไม่จำเป็นต้องทำอะไรเป็นพิเศษ ในความเป็นจริงที่เก็บ Debian และ Ubuntu ปกติจะมีหลายเวอร์ชั่นของแต่ละแพ็คเกจ (จากรุ่นเก่า / เสถียร / การทดสอบ / ไม่เสถียรหรือ dapper / hardy / lucid / maverick / natty) การแจกแจงมีแพ็คเกจเดียวในไฟล์ดัชนีของแต่ละเวอร์ชัน ( Packagesไฟล์) แต่คุณไม่จำเป็นต้องทำตาม

แน่นอนว่าapt-get install myappจะติดตั้งเฉพาะรุ่นล่าสุดเท่านั้น (เว้นแต่จะมีการกำหนดค่าไว้เป็นอย่างอื่น) คุณสามารถรันapt-get install myapp=1.42เพื่อบังคับการติดตั้งเวอร์ชัน 1.42

Caveat: หากทุกเวอร์ชันมีชื่อแพ็คเกจเดียวกันคุณจะไม่สามารถติดตั้งได้มากกว่าหนึ่งรายการในเวลาเดียวกัน ถ้าเรื่องนี้เป็นสิ่งที่สำคัญให้แต่ละรุ่นชื่อแพคเกจที่แตกต่างกันmyapp-1.42, myapp-1.43ฯลฯ Debian และ Ubuntu ทำเช่นนี้สำหรับรุ่นที่สำคัญของห้องสมุดที่คุณอาจต้องมากกว่าหนึ่งถ้าคุณมี executables เชื่อมโยงกับห้องสมุดที่แตกต่างกัน (เช่นlibcap1และlibcap2) เช่นเดียว สำหรับแพ็คเกจอื่น ๆ เช่นเคอร์เนล


1
ขอบคุณสำหรับคำอธิบายที่ยอดเยี่ยม จากการติดตามถ้าฉันไปตามเส้นทางการต่อท้ายหมายเลขเวอร์ชั่นไปยังแพ็คเกจของฉันนั่นจะเป็นการแบ่ง "apt-get upgrade" หรือไม่? ดูเหมือนว่าฉันทุกครั้งที่ฉันอัปเกรดแอปของฉันมันจะถือว่าเป็นการติดตั้งใหม่และฉันจะสูญเสียการตั้งค่าของฉัน ฉันสามารถแก้ไขสิ่งนี้ได้ แต่ฉันต้องการเข้าใจว่าข้อ จำกัด คืออะไรก่อนที่ฉันจะทำการตัดสินใจไม่ทางใดก็ทางหนึ่ง ขอบคุณ
GregB

2
วิธีการปกติในกรณีนี้คือการมีmyapp-1.42และอื่น ๆ รวมทั้งแพคเกจmyappที่เพิ่งขึ้นอยู่กับปัจจุบันmyapp-VERSION(หรือแม้กระทั่งmyapp-stable, myapp-betaและอื่น ๆ )
Gilles 'หยุดความชั่วร้าย'

1
แค่ข้อแม้: อย่าลืมว่า-mเมื่อdpkg-scanpackagesคุณสร้างดัชนีพื้นที่เก็บข้อมูลของคุณ มิฉะนั้นคุณจะไม่ได้รับPackagesไฟล์แพ็คเกจหลายเวอร์ชัน
bruno nery
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.