สร้างพื้นที่เก็บข้อมูล deb กับแพคเกจเดียวกันหลายรุ่น


16

ฉันต้องการสร้างที่เก็บ deb ของตัวเองเพื่อจัดเก็บบางแพ็คเกจ ฉันได้ลอง reprepro และใช้งานได้ดียกเว้นคุณสมบัติพื้นฐานหนึ่งอย่าง Reprepro ไม่สามารถจัดเก็บแพคเกจเดียวกันหลายรุ่นในที่เก็บ

ความสามารถในการจัดเก็บแพ็คเกจเดียวกันหลายรุ่นเป็นสิ่งสำคัญสำหรับฉันดังนั้นฉันจึงถามว่าซอฟต์แวร์ใดที่สามารถทำได้

นี่คือส่วนหนึ่งของคำถามที่พบบ่อย reprepro ที่แสดงว่าไม่สามารถทำได้:

3.1) Can I have two versions of a package in the same distribution?
-------------------------------------------------------------------
Sorry, this is not possible right now, as reprepro heavily optimizes
at only having one version of a package in a suite-type-component-architecture
quadruple.
You can have different versions in different architectures and/or components
within the same suite. (Even different versions of a architecture all package
in different architectures of the same suite). But within the same
architecture and the same component of a distribution it is not possible.

คำตอบ:


11

เท่าที่ฉันเข้าใจ mini-dinstall ต้องการไฟล์ debian .changes เมื่อทำการเพิ่มแพ็คเกจ เนื่องจากฉันมีไฟล์. deb เท่านั้นฉันพบว่าเหมาะกับการใช้งานหลายเวอร์ชันเช่นกัน

อีกทางเลือกหนึ่งที่มีน้ำหนักเบาคือการขนส่งสินค้าซึ่งเป็นชุดของสคริปต์เชลล์สำหรับการบำรุงรักษาที่เก็บ debian ตอนนี้ฉัน (2017) ใช้การขนส่งสินค้าเป็นเวลาสามปีเพื่อรักษาพื้นที่เก็บข้อมูลขนาดเล็ก แต่ปรับปรุงอย่างแข็งขันด้วยผลลัพธ์ที่ดี คุณสมบัติที่สำคัญอย่างหนึ่งคือความสามารถในการเก็บแพคเกจหลายเวอร์ชัน

แก้ไข: อัปเดตลิงก์ไปที่ repo การขนส่งสินค้าใหม่เนื่องจากก่อนหน้านี้ยังไม่ได้รับการปรับปรุงตั้งแต่ปี 2014


1
Downvoter: สนใจที่จะอธิบายอย่างละเอียดเหรอ?
bohrax

1
โปรดทราบว่าfreightมีการแยกและตอนนี้อยู่ที่github.com/freight-team/freight - เวอร์ชั่นดั้งเดิมยังไม่ได้รับการอัปเดตตั้งแต่ปี 2014
Wolfgang

@ Wolfgang ขอบคุณปรับปรุงลิงค์ในคำตอบ!
bohrax

9

วิธีแก้ไขคือใช้mini-dinstallสำหรับ managin deb repos ไม่ลบเวอร์ชันก่อนหน้าของแพ็กเกจจากที่เก็บ


2
สิ่งนี้ดูเหมือนจะเป็นจริงถ้าตั้ง "keep_old = 1" ใน mini-dinstall.conf ค่าเริ่มต้น (ตามหน้า man & ประสบการณ์ล่าสุด) คือการลบเวอร์ชันเก่าออก ทดสอบกับรุ่น 0.6.29ubuntu1
กระทำผิด

2

ฉันได้ยินสิ่งดีๆเกี่ยวกับทางเลือกการขนส่งสินค้า:

https://github.com/rcrowley/freight

HTH หมอก


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

ฉันไม่ได้เป็นนักลงคะแนนเสียง แต่อาจเป็นเพราะค่าระวางถูกเอ่ยถึงในคำตอบของฉันเมื่อปีที่แล้ว อย่างไรก็ตามฉันสามารถรับรองว่าเป็นตัวเลือกที่ทำงานได้ ฉันใช้มันมานานกว่าหนึ่งปีสำหรับพื้นที่เก็บข้อมูลขนาดเล็ก แต่ปรับปรุงอย่างแข็งขัน เราถูกกัดโดยปัญหานี้แม้ว่า: github.com/rcrowley/freight/pull/65
bohrax

1
@bohrax: ดูเหมือนว่าfreightจะถูกแยกออกและตอนนี้ได้รับการดูแลที่github.com/freight-team/freightแทน
Wolfgang

-1

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

apt-get install packagename=version

คุณสามารถรับข้อมูลทั้งหมดที่คุณต้องการเพื่อเขียนแพ็คเกจนี้ด้วย

dpkg-deb --info package.deb

และ

md5sum package.deb

การอัพเกรด apt-get จะเลือกหมายเลขเวอร์ชันสูงสุด (อย่างน้อยในการทดสอบที่ จำกัด ของฉัน)


ขอบคุณสำหรับคำตอบ แต่ฉันชอบที่จะใช้ระบบบางอย่างที่จะสร้างไฟล์แพคเกจ
bessarabov

สิ่งนี้ไม่ตอบคำถามเกี่ยวกับการสร้างที่เก็บแพ็กเกจด้วยแพ็คเกจเดียวกันหลายเวอร์ชัน มันเป็นคำตอบสำหรับคำถามอื่น
gertvdijk

-2

อย่างที่ซอฟต์แวร์บอกคุณคนเก่าจะถูกลบทิ้งเมื่อมีสิ่งใหม่เข้ามาโดยปกติจะทำด้วย repos หลาย ๆ อัน เช่นเดียวกับ Ubuntu และ Debian มี repos หลายตัวสำหรับเสถียรและไม่เสถียรหรือ Natty, Oneiric, …, คุณจะต้องมี repos หลายอัน

โดยปกติตัวจัดการแพคเกจจะเลือกแพ็คเกจเวอร์ชันใหม่ล่าสุดดังนั้นจึงเป็นเรื่องยากสำหรับผู้ใช้ในการเลือกเช่นกัน


1
การสร้าง repos หลายรายการไม่สามารถแก้ปัญหาของฉันได้ ฉันต้องการแพ็คเกจเดียวกันหลายรุ่นเพื่อให้อยู่ใน repo เดียวกัน สำหรับผู้ที่มีความสนใจจะทำทำไมฉันต้องนี้ที่นี่เป็นหัวข้อที่มีคำอธิบายของฉัน: answers.launchpad.net/launchpad/+question/171452
bessarabov

ฉันกลัวว่าคุณจะต้องมองปัญหาของคุณจากมุมมองที่แตกต่างกันเนื่องจาก repos Debian ปกติไม่มีการรองรับหลายรุ่น
Martin Ueding

2
คุณไม่ถูกต้อง โปรดดูrepianเดเบียนประจำftp.us.debian.org/debian/pool/main/p/perlและดูว่ามีแพคเกจเดียวกันหลายรุ่นสำหรับรูปภาพเดียวกัน
bessarabov
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.