การต้องการแพ็คเกจล่าสุดเป็นปัญหาที่พบบ่อยในระบบปฏิบัติการใด ๆ วงจรการเปิดตัวของเดเบียนได้เฉลี่ย 2 ปีในช่วงไม่กี่ปีที่ผ่านมาดังนั้นเมื่อสิ้นสุดรอบนี้มันอาจเป็นปัญหาเร่งด่วนมากกว่า วิธีหนึ่งในการบรรเทาปัญหานี้คือการย้ายไปยังการทดสอบไปยังจุดสิ้นสุดของรอบการปล่อยที่เสถียรเมื่อเวอร์ชันถัดไปเกือบจะมีเสถียรภาพ มันไม่ชัดเจนจากคำถามว่าจะพูดถึงความมั่นคงโดยทั่วไปเกี่ยวกับการทดสอบและ / หรือไม่แน่นอนเช่นกัน ไม่ว่าการมีเวอร์ชันล่าสุดอาจเป็นปัญหาได้แม้ว่าจะใช้เวอร์ชันที่ไม่เสถียรก็ตามเนื่องจากเวอร์ชันล่าสุดอาจยังไม่ได้ทำแพคเกจ นักพัฒนา / แพ็คเกอร์เดเบียนเป็นอาสาสมัครดังนั้นพวกเขาอาจเบื่อหรือยุ่งกับสิ่งอื่น ๆ ด้วยผลลัพธ์ที่แพ็กเกจละเหี่ยไป
เพื่อความเรียบง่ายและเป็นรูปธรรมฉันคิดว่าในสิ่งต่อไปนี้ว่าแผนคือการ backport แพคเกจเพื่อความมั่นคง แต่มันใช้โดยทั่วไปมากขึ้น ดังนั้นนี่คือสิ่งที่ฉันทำถ้าฉันต้องการซอฟต์แวร์รุ่นใหม่กว่าที่ไม่มีอยู่ในลำดับที่เสถียรโดยประมาณ
มองหาแพคเกจในเด backports บางครั้งคุณสามารถหาแพ็คเกจที่เร็วพอที่จะตอบสนองวัตถุประสงค์ของคุณ อย่างไรก็ตามมันมักจะเป็นกรณีที่แพคเกจเหล่านี้ล้าสมัยเมื่อเทียบกับรุ่นในความไม่แน่นอนหรือการทดลองหรือต้นน้ำ
ลองติดตั้งแพคเกจโดยตรงจากการทดสอบไม่เสถียรหรือทดสอบ หากเสถียรไม่ได้เบี่ยงเบนจากเวอร์ชั่นใด ๆ ที่คุณพยายามจะติดตั้งสิ่งนี้อาจทำงานได้ คุณจะรู้ว่าวิธีการนี้เป็นวิธีที่ไม่ดีหากระบบเริ่มพยายามติดตั้งหรืออัพเกรดแพ็คเกจพื้นฐานจากรุ่นที่ใหม่กว่า สมมติว่าคุณกำลังพยายามติดตั้งจากที่ไม่เสถียรแล้ว
apt-get install packagename/unstable
เป็นสิ่งแรกที่ต้องลอง ด้วยเวอร์ชันของ apt ที่เสถียรซึ่งมักจะล้มเหลวเนื่องจากต้องใช้แพ็กเกจอื่น ๆ ที่ไม่เสถียรและคาถานี้จะเพิ่มความพึงพอใจpackagename
ให้สูงพอที่จะติดตั้งในที่ไม่เสถียร man
apt_preferences
ถ้าคุณไม่เข้าใจในสิ่งที่หมายถึงนี้หายไปและอ่าน ดำเนินการเพิ่มการพึ่งพาจากความไม่แน่นอนตรวจสอบให้แน่ใจว่าไม่ได้พยายามอัพเกรดแพ็คเกจพื้นฐาน ตัวอย่างเช่นหากมันเริ่มพยายามอัพเกรด libc6 หรือ X หรือ KDE หรือ Gnome ให้ยกเลิกทันที โดยปกติแล้วจะเป็นเรื่องปกติหากพยายามอัพเกรดแพ็คเกจอื่นจากแพ็คเกจต้นทางเดียวกัน หากต้องการดูแพ็คเกจซอร์สโค้ดใดที่ต้องทำ
apt-cache showsrc packagename
เนื่องจากสิ่งต่าง ๆ มากมายขึ้นอยู่กับไลบรารี GNU C (libc6) สิ่งนี้เคยเป็นปัญหา เมื่อไม่นานมานี้ดูเหมือนว่า API จะมีความเสถียรดังนั้นจึงเป็นไปได้ที่จะหลีกเลี่ยงได้โดยไม่ต้องอัพเกรด หากแพ็กเกจเป็นไปตามการพึ่งพารันไทม์บนความเสถียร แต่ก็ยังทำงานไม่ถูกต้องให้ยื่นข้อบกพร่อง หากผู้บรรจุบอกว่าไม่ใช่ข้อผิดพลาดพวกเขาคิดผิด :-)
ย้อนกลับแพคเกจด้วยตัวคุณเองจากการทดสอบไม่เสถียรหรือทดลอง
ดังที่กล่าวไว้ข้างต้น backport เป็นตัวเลือกหนึ่ง แต่บ่อยครั้งที่แพ็คเกจเหล่านี้ล้าสมัยเมื่อเทียบกับเวอร์ชันในเวอร์ชันที่ไม่เสถียรหรือทดสอบหรืออัปสตรีม
นี้มักจะต้องมีสิ่งที่ประเภทพึ่งพาสร้างซ้ำพึ่งพาซ้ำ ก่อนอื่นคุณต้องได้รับการอ้างอิงการสร้างด้วย
apt-get build-dep packagename
หากสิ่งนี้ล้มเหลวเนื่องจากการอ้างอิงอย่างใดอย่างหนึ่งไม่เร็วพอคุณจะต้อง backport การพึ่งพานั้นก่อน สิ่งนี้สามารถ spriral ออกจากการควบคุม ฉันมักจะยอมแพ้ถ้าฉันต้องรับมือกับการเรียกซ้ำมากกว่า 2 ระดับ อย่างไรก็ตามโปรดทราบว่าการอ้างอิงจริงไม่จำเป็นต้องเข้มงวดเท่าที่ระบุไว้เช่น รุ่นที่เก่ากว่าอาจทำงานได้ ผู้ทำหีบห่อมักจะไม่พยายามค้นหาการพึ่งพารุ่นที่เก่าแก่ที่สุด (หรือจริง ๆ แล้วรันไทม์) ที่จะใช้งานได้
ตรวจสอบความพร้อมใช้งานของแพคเกจจากต้นน้ำที่เกี่ยวข้อง โดยหลักการแล้วสิ่งเหล่านี้จะตรงกับรุ่นการแจกจ่ายของคุณ แต่คุณอาจสร้างใหม่ได้หากจำเป็น
สร้างแพ็คเกจสำหรับเวอร์ชันของซอฟต์แวร์ล่าสุดกว่าแพ็คเกจล่าสุดในการทดสอบ / ไม่เสถียร / ทดสอบ สิ่งนี้ค่อนข้างท้าทาย แต่บางครั้งก็ยังสามารถทำได้ สิ่งแรกที่ควรทราบคือหากคุณพยายามทำแพ็คเกจรุ่นล่าสุดที่มีอยู่ใน Debian อยู่แล้วคุณกำลังเริ่มต้นด้วยข้อได้เปรียบที่ยิ่งใหญ่กล่าวคือคุณมีบรรจุภัณฑ์ที่ใช้งานได้แล้ว แค่ทำ
apt-get source packagename
และapt-get
จะดาวน์โหลดแพ็กเกจซอร์สที่เกี่ยวข้องรวมถึงไดเร็กทอรีย่อย debian ที่แพ็กเกจใช้งานอยู่ หมายเหตุนอกจากว่าวันนี้บรรจุภัณฑ์นี้มักจะอาศัยอยู่ภายในบางพื้นที่เก็บข้อมูลการควบคุม verson (คอมไพล์ดูเหมือนเป็นที่นิยมกับ Debian) และมีเสถียรภาพฉลาด (ปัจจุบัน0.8.10.3 )
apt-get source
เป็นประโยชน์บอกคุณที่นี้คือเมื่อคุณเรียก คุณควรดูที่เรื่องนี้เนื่องจากผู้ทำแพ็กเกจอาจมีบรรจุภัณฑ์เวอร์ชันล่าสุดมากกว่าที่สอดคล้องกับแพคเกจที่วางจำหน่ายแล้ว เช่น.
$ apt-get source mercurial
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'mercurial' packaging is maintained in the 'Svn' version control system at:
svn://svn.debian.org/python-apps/packages/mercurial/trunk
หรือคุณสามารถใช้
apt-cache showsrc mercurial | grep Vcs
เพื่อแสดงรายการที่เก็บ
หากแพ็กเกจล้าสมัยคุณอาจต้องทำการแก้ไข
แพ็กเกจรีเฟรชแพ็ตช์ที่ใช้ แต่โดยปกติจะยังคงเป็น
จุดเริ่มต้นที่ดี Debian ดูเหมือนจะอยู่ในกระบวนการปรับมาตรฐานการจัดการแพ็กเกจบน
quilt ตามรูปแบบdpkg-source 3.0 (quilt)เพื่อช่วยในการรีเฟรชแพทช์
ฉันจะลงเอยด้วยการเป็นตัวอย่างชีวิตจริงของวิธีการที่ฉัน backported แพคเกจ Debianของ
PGF pgf รุ่นสุดท้ายที่ได้รับการบรรจุคือ 2.00 ในปี 2008 และตั้งแต่นั้นมา 2.10 ได้เปิดตัว ดูการอภิปรายในการปรับปรุงโปรดให้เป็นรุ่นใหม่ล่าสุดของเสถียรภาพ PGF (2.10)และข้อผิดพลาดการติดตามของฉันกับแพทช์, PGF: แพทช์ 2.0 กับบรรจุภัณฑ์ เมื่อมันปรากฏออกมาบรรจุภัณฑ์ Debian ของ pgf นั้นง่ายมากและฉันต้องเปลี่ยนหนึ่งบรรทัดในบรรจุภัณฑ์ 2.10 เพื่อให้ทำงานได้ ฉันลงเอยระงับข้อร้องเรียนทั้งหมดเกี่ยวกับ
ภาษาลินเตียนเช่นกัน แต่นั่นก็เป็นทางเลือกอย่างเคร่งครัด