จะทำให้ระบบ Debian ของฉันเป็นแพ็คเกจล่าสุดได้อย่างไร


9

"ซอฟต์แวร์" ส่วนใหญ่ที่ฉันติดตั้งบนเซิร์ฟเวอร์ของฉันต้องเป็นรุ่นล่าสุด (Java, Tomcat, MySQL-Cluster) ดังนั้นฉันไม่เคยโชคดีเลยมีแพ็คเกจ Debian ที่สร้างไว้ล่วงหน้าแล้ว ดังนั้นซอฟต์แวร์ทั้งหมดจะถูกดาวน์โหลดจากหน้าเว็บโครงการและสร้างจากแหล่งที่มา

ตอนนี้คำถามของฉันคืออะไรวิธีที่ถูกต้องในการติดตั้งบนระบบ Debian ของฉันคืออะไร

ปัญหาหลักของฉันคือเมื่อติดตั้งพวกเขาโดยตรงจากแหล่งที่มาพวกเขาจะไม่รวมอยู่ในการจัดการแพคเกจ (มีไหวพริบ) Checkinstall ดูเหมือนว่าจะไม่ได้รับการแนะนำให้ใช้จริง ๆ และ equiv ก็มีข้อเสียเช่นกัน เป็นวิธีเดียวที่ถูกต้องในการจัดการสิ่งนี้ด้วยการสร้างแพ็คเกจของตัวเองด้วย dh_make และ dpkg-buildpackage?

คุณกำลังทำอะไรหากคุณต้องการรุ่นล่าสุดเสมอ

คำตอบ:


10

การต้องการแพ็คเกจล่าสุดเป็นปัญหาที่พบบ่อยในระบบปฏิบัติการใด ๆ วงจรการเปิดตัวของเดเบียนได้เฉลี่ย 2 ปีในช่วงไม่กี่ปีที่ผ่านมาดังนั้นเมื่อสิ้นสุดรอบนี้มันอาจเป็นปัญหาเร่งด่วนมากกว่า วิธีหนึ่งในการบรรเทาปัญหานี้คือการย้ายไปยังการทดสอบไปยังจุดสิ้นสุดของรอบการปล่อยที่เสถียรเมื่อเวอร์ชันถัดไปเกือบจะมีเสถียรภาพ มันไม่ชัดเจนจากคำถามว่าจะพูดถึงความมั่นคงโดยทั่วไปเกี่ยวกับการทดสอบและ / หรือไม่แน่นอนเช่นกัน ไม่ว่าการมีเวอร์ชันล่าสุดอาจเป็นปัญหาได้แม้ว่าจะใช้เวอร์ชันที่ไม่เสถียรก็ตามเนื่องจากเวอร์ชันล่าสุดอาจยังไม่ได้ทำแพคเกจ นักพัฒนา / แพ็คเกอร์เดเบียนเป็นอาสาสมัครดังนั้นพวกเขาอาจเบื่อหรือยุ่งกับสิ่งอื่น ๆ ด้วยผลลัพธ์ที่แพ็กเกจละเหี่ยไป

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

  1. มองหาแพคเกจในเด backports บางครั้งคุณสามารถหาแพ็คเกจที่เร็วพอที่จะตอบสนองวัตถุประสงค์ของคุณ อย่างไรก็ตามมันมักจะเป็นกรณีที่แพคเกจเหล่านี้ล้าสมัยเมื่อเทียบกับรุ่นในความไม่แน่นอนหรือการทดลองหรือต้นน้ำ

  2. ลองติดตั้งแพคเกจโดยตรงจากการทดสอบไม่เสถียรหรือทดสอบ หากเสถียรไม่ได้เบี่ยงเบนจากเวอร์ชั่นใด ๆ ที่คุณพยายามจะติดตั้งสิ่งนี้อาจทำงานได้ คุณจะรู้ว่าวิธีการนี้เป็นวิธีที่ไม่ดีหากระบบเริ่มพยายามติดตั้งหรืออัพเกรดแพ็คเกจพื้นฐานจากรุ่นที่ใหม่กว่า สมมติว่าคุณกำลังพยายามติดตั้งจากที่ไม่เสถียรแล้ว

    apt-get install packagename/unstable
    

    เป็นสิ่งแรกที่ต้องลอง ด้วยเวอร์ชันของ apt ที่เสถียรซึ่งมักจะล้มเหลวเนื่องจากต้องใช้แพ็กเกจอื่น ๆ ที่ไม่เสถียรและคาถานี้จะเพิ่มความพึงพอใจpackagenameให้สูงพอที่จะติดตั้งในที่ไม่เสถียร man apt_preferencesถ้าคุณไม่เข้าใจในสิ่งที่หมายถึงนี้หายไปและอ่าน ดำเนินการเพิ่มการพึ่งพาจากความไม่แน่นอนตรวจสอบให้แน่ใจว่าไม่ได้พยายามอัพเกรดแพ็คเกจพื้นฐาน ตัวอย่างเช่นหากมันเริ่มพยายามอัพเกรด libc6 หรือ X หรือ KDE หรือ Gnome ให้ยกเลิกทันที โดยปกติแล้วจะเป็นเรื่องปกติหากพยายามอัพเกรดแพ็คเกจอื่นจากแพ็คเกจต้นทางเดียวกัน หากต้องการดูแพ็คเกจซอร์สโค้ดใดที่ต้องทำ

    apt-cache showsrc packagename
    

    เนื่องจากสิ่งต่าง ๆ มากมายขึ้นอยู่กับไลบรารี GNU C (libc6) สิ่งนี้เคยเป็นปัญหา เมื่อไม่นานมานี้ดูเหมือนว่า API จะมีความเสถียรดังนั้นจึงเป็นไปได้ที่จะหลีกเลี่ยงได้โดยไม่ต้องอัพเกรด หากแพ็กเกจเป็นไปตามการพึ่งพารันไทม์บนความเสถียร แต่ก็ยังทำงานไม่ถูกต้องให้ยื่นข้อบกพร่อง หากผู้บรรจุบอกว่าไม่ใช่ข้อผิดพลาดพวกเขาคิดผิด :-)

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

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

    นี้มักจะต้องมีสิ่งที่ประเภทพึ่งพาสร้างซ้ำพึ่งพาซ้ำ ก่อนอื่นคุณต้องได้รับการอ้างอิงการสร้างด้วย

    apt-get build-dep packagename    
    

    หากสิ่งนี้ล้มเหลวเนื่องจากการอ้างอิงอย่างใดอย่างหนึ่งไม่เร็วพอคุณจะต้อง backport การพึ่งพานั้นก่อน สิ่งนี้สามารถ spriral ออกจากการควบคุม ฉันมักจะยอมแพ้ถ้าฉันต้องรับมือกับการเรียกซ้ำมากกว่า 2 ระดับ อย่างไรก็ตามโปรดทราบว่าการอ้างอิงจริงไม่จำเป็นต้องเข้มงวดเท่าที่ระบุไว้เช่น รุ่นที่เก่ากว่าอาจทำงานได้ ผู้ทำหีบห่อมักจะไม่พยายามค้นหาการพึ่งพารุ่นที่เก่าแก่ที่สุด (หรือจริง ๆ แล้วรันไทม์) ที่จะใช้งานได้

  4. ตรวจสอบความพร้อมใช้งานของแพคเกจจากต้นน้ำที่เกี่ยวข้อง โดยหลักการแล้วสิ่งเหล่านี้จะตรงกับรุ่นการแจกจ่ายของคุณ แต่คุณอาจสร้างใหม่ได้หากจำเป็น

  5. สร้างแพ็คเกจสำหรับเวอร์ชันของซอฟต์แวร์ล่าสุดกว่าแพ็คเกจล่าสุดในการทดสอบ / ไม่เสถียร / ทดสอบ สิ่งนี้ค่อนข้างท้าทาย แต่บางครั้งก็ยังสามารถทำได้ สิ่งแรกที่ควรทราบคือหากคุณพยายามทำแพ็คเกจรุ่นล่าสุดที่มีอยู่ใน 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 เพื่อให้ทำงานได้ ฉันลงเอยระงับข้อร้องเรียนทั้งหมดเกี่ยวกับ ภาษาลินเตียนเช่นกัน แต่นั่นก็เป็นทางเลือกอย่างเคร่งครัด


ประโยคสุดท้ายของวรรคหนึ่งอาจทำให้เข้าใจผิด โปรดระบุว่าปัญหาของคุณเกิดขึ้นในบางครั้งเท่านั้น วิธีที่คุณใส่ทำให้ดูเหมือนว่า DD โดยทั่วไปเป็นเช่นนั้น
tshepang

@Shepang: จุดดี ตกลงหรือไม่
Faheem Mitha

ใช่ดีกว่ามาก
tshepang

5

คุณสามารถสร้างแพ็คเกจของคุณเองได้อย่างแน่นอน อย่างไรก็ตามฉันขอแนะนำให้ใช้backportก่อนหากสิ่งที่คุณต้องการมีให้ที่นั่น

Backport ได้รับการปรับปรุง Debian และคุณจะได้รับการอัปเดตความปลอดภัยสำหรับพวกเขา


3

การสร้างแพ็คเกจของคุณเองเป็นวิธีที่จะไป (IMHO) ขึ้นอยู่กับอายุของแพคเกจเวอร์ชันของ Debian และสิ่งที่มีการเปลี่ยนแปลงสิ่งนี้สามารถทำได้ง่ายเพียงแค่แทนที่ชื่อไฟล์ของ tarball ต้นทางในคำอธิบายแพ็กเกจและในกรณีที่แย่ที่สุดคุณยังสามารถใช้เป็นเทมเพลตสำหรับเวอร์ชันของคุณเอง


1

คุณกำลังทำอะไรหากคุณต้องการรุ่นล่าสุดเสมอ

  1. ตามที่กล่าวไว้แล้วใช้ backport

  2. เพียงส่วนย่อยเล็ก ๆ ของแพคเกจ Debian จะ backported ดังนั้นผมขอแนะนำให้คุณใช้การทดสอบ Debian มันมีความสมดุลที่ดีระหว่างความมั่นคงและความใหม่และอยู่ในความรู้สึกเช่น distro กลิ้ง

  3. หากคุณเป็นอีกเล็กน้อยกล้าใช้Debian เสถียร มันอ้างว่ามีเสถียรภาพพอสมควร บางคนถึงกับอ้างว่ามันเสถียรกว่ารุ่นอื่น ๆ ของ "เสถียร" ของ distro อย่างไรก็ตามความไม่แน่นอนคือที่ที่แพ็คเกจรุ่นใหม่มาถึง โดยปกติพวกเขาจะนั่งอยู่ที่นั่นประมาณ 10 วันเพื่อทำการทดสอบก่อนที่จะย้ายไปยังการทดสอบ

  4. แม้จะใช้สองสิ่งนี้คุณยังอาจพบว่าตัวเองไม่มีเวอร์ชันล่าสุด ในกรณีที่ว่ามีลักษณะที่เดทดลอง โดยปกติจะใช้เมื่อแพ็คเกจใหม่ก่อกวนเกินไปสำหรับคลังเก็บปกติ (Unstable and Testing)

  5. หากการทดลองยังคงไม่ได้มีรุ่นใหม่ซอฟแวร์พอมองไปที่อูบุนตูของ PPA ฉันเคยเห็นเวอร์ชันซอฟต์แวร์ที่นั่นในไม่ช้ากว่าที่เก็บถาวรข้างต้นทั้งหมดขาด ใช้ด้วยความระมัดระวังเนื่องจาก Ubuntu ไม่รองรับ 100% กับ Debian (แต่สำหรับกรณีส่วนใหญ่

  6. ถ้าไปล้มเหลวผมคิดว่าเพียงแค่สร้างแพคเกจของคุณเองตามที่กล่าวไว้


ผู้คนที่บอกว่า Debian ไม่เสถียรมีความเสถียรมากกว่าคอกม้าอื่น ๆ ที่ดีที่สุด การเปลี่ยนแปลงที่ไม่เสถียรทุกวันเสถียรเป็นที่เก็บถาวร ไม่เสถียรไม่ได้หมายความว่าจะมีปัญหา แต่หมายความว่าผู้พัฒนาทำการเปลี่ยนแปลงแพ็คเกจเป็นจำนวนมาก Stable หมายถึงการเผยแพร่และการแก้ไขความปลอดภัยเท่านั้นที่จะถูกเพิ่ม ฉันไม่เคยมีข้อผิดพลาดแปลก ๆ ที่ทำงานไม่เสถียร ฉันเห็นปัญหาการแบ่งแพคเกจและปัญหาการพึ่งพาหลังจากอัปโหลดสรรพสินค้าระวัง ;-) ว่าทั้งหมดเปรียบเทียบกับรุ่น "เสถียร" ของ distro อื่น ๆ อยู่นอกเหนือฉัน ไม่มี "เสถียรมากขึ้น" ในบริบทนี้ มันเปลี่ยนแปลงหรือไม่
Arjan Drieman

@ArjanDrieman: จริง ๆ แล้วคนเหล่านี้ไม่ได้ล้อเล่นและในบริบทที่พวกเขาอ้างถึงว่าเป็นหลักฐานการชนมากขึ้น
tshepang

พวกเขายังคงล้อเล่นที่ดีที่สุด ฉันเคยเห็นคนตลกเกี่ยวกับเรื่องนี้จริงๆ เปลวไฟกระจายขนาดเล็ก ;-) ฉันใช้ distro เมื่อเวลาผ่านไปและไม่เคยมีปัญหาแปลก ๆ เกิดขึ้นทำงานอย่างใดอย่างหนึ่งคนที่พูดว่าไม่สามารถสำรองข้อมูลวิจัยหรือสถิติได้อย่างจริงจัง นั่นอาจจะเป็นความเขลาความเย่อหยิ่งอคติอะไรก็ได้ ... แต่มันก็ยังดีกว่าเรื่องตลกเหรอ? คุณบอกฉันได้ไหมว่า "บางคน" ลึกลับเหล่านี้เป็นใครฉันจึงขอให้พวกเขาค้นคว้า "บางคนไปไกล" ... นั่นคือคำพังเพย คุณต้องการคำตอบข้อเท็จจริงหรือความคิดเห็นยอดนิยมและการอ้างสิทธิ์ที่คลุมเครืออะไร
Arjan Drieman

1
@Arjan Drieman: จริง ๆ แล้วฉันเห็นด้วยไม่แน่นอนสามารถ 'somtimes' อยู่ถึงชื่อ คุณค้าขายความมั่นคงในการเข้าใกล้ขอบใครก็ตามที่อ้างว่าไม่ใช่ในกรณีที่ไม่ดีที่สุด โดยรวมแล้วมันมีความเสถียรอย่างน่าประหลาดใจ แต่ความมั่นคงไม่ใช่สิ่งที่สำคัญที่สุดสำหรับความไม่แน่นอน ฉันมักจะเห็นด้วยกับคุณเกี่ยวกับคำว่า 'ลื่น' มันเกือบจะเป็นกลไกการป้องกันตรงนี้เนื่องจากคำสั่งเด็ดขาด / โดยตรงถูกโจมตีทันที
JM Becker
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.