มันจะดีกว่าที่จะรวบรวมจากแหล่งที่มาหรือติดตั้งจากแพคเกจ. deb?


18

บางครั้งเมื่อดาวน์โหลดซอฟต์แวร์จากอินเทอร์เน็ตฉันพบว่ามีแพ็คเกจ. deb พร้อมสำหรับ Debian / Ubuntu และ tarball ที่จะรวบรวม ในตอนแรกฉันจะใช้แพคเกจเพื่อความสะดวกในการติดตั้งและจะไม่กล้ารวบรวม แม้แต่เสียงมันก็ทำให้ฉันกลัวเล็กน้อย อย่างไรก็ตามทุกวันนี้เมื่อฉันมีตัวเลือกบางครั้งฉันพบว่าตัวเองอยู่ในภาวะที่กลืนไม่เข้าคายไม่ออก: มีข้อได้เปรียบที่ไม่เป็นที่นิยมในการรวบรวมจากแหล่งเปรียบเทียบกับแพ็คเกจ. deb หรือไม่ ฉันหวังว่าจะได้พบกับที่นี่ขอบคุณ

คำตอบ:


24

ข้อดีของการคอมไพล์จากซอร์สคือคุณสามารถคอมไพล์แพ็กเกจด้วยค่าสถานะ / ตัวเลือกบางอย่างที่อาจจะหายไป / ปิดการใช้งานในแพ็คเกจมาตรฐานของ Ubuntu นอกจากนี้ยังทำให้การติดตั้งโปรแกรมเดียวกันหลายรุ่นเป็นเรื่องง่าย นอกจากนี้คุณสามารถเลือกรุ่นที่แน่นอนของแพคเกจซึ่งอาจถูกลบออกแล้วหรือยังไม่ได้อยู่ในที่เก็บ Ubuntu (ตัวอย่าง: ฉันมี Python 2.4.x หลายรุ่นใน / opt / directory ของฉันเพราะฉันต้องการให้รันบางรุ่นเก่ากว่า ซอฟต์แวร์).

ข้อเสียของการคอมไพล์จากซอร์สคือเว้นแต่ว่าคุณจะสร้าง. deb และจากนั้นทำการติดตั้งปกติ "./configure; make; sudo make install" ขั้นตอนช่วยให้ตัวจัดการแพกเกจของ Ubuntu ไม่ทราบถึงการเปลี่ยนแปลงที่คุณทำ คุณจะไม่ได้รับการอัปเดตใด ๆ สำหรับซอฟต์แวร์ที่รวบรวมด้วยตนเอง และเป็นไปได้ว่าตัวจัดการแพคเกจจะแทนที่ / ทำลายแพ็คเกจของคุณในภายหลังหากคุณไม่ระวังในการติดตั้งในตำแหน่งอื่น

ในระยะสั้น: พิจารณาติดตั้งจากที่เก็บ Ubuntu มาตรฐานก่อนอื่นพิจารณาติดตั้ง. deb; รวบรวมจากแหล่งที่มาเฉพาะเมื่อคุณรู้ว่าทำไมคุณต้องทำสิ่งนี้


ฉันได้อ่านแล้วสิ่งที่ประสิทธิภาพของแพคเกจอาจแตกต่างกันเมื่อมันรวบรวมความเข้ากันได้ดีกับเคอร์เนลปัจจุบัน ไม่ได้เปรียบเทียบมันเป็นการส่วนตัว
Fedir RYKHTIK

@Fedir: ฉันไม่แน่ใจว่าเคอร์เนลมีส่วนเกี่ยวข้องกับสิ่งนี้มันค่อนข้างสถาปัตยกรรมของโปรเซสเซอร์ - ตัวอย่างเช่นในสมัยก่อนมีการกระจายแพคเกจจำนวนมากที่รวบรวมด้วยชุดคำสั่ง 80386 สำหรับความเข้ากันได้สูงสุดในขณะที่รวบรวมโปรแกรมสำหรับ Pentium ด้วยตนเอง เพื่อใช้คำแนะนำที่มีประสิทธิภาพมากขึ้น มีการแจกแจงทั้งหมดเช่น Gentoo ซึ่งรวบรวมจากแหล่งที่มาบนเครื่องโฮสต์ด้วยเหตุนี้ อย่างไรก็ตามความแตกต่างนั้นมักจะน้อยที่สุดและสามารถสังเกตได้เฉพาะในแอปพลิเคชันที่เฉพาะเจาะจงเท่านั้น
Sergey

1
โปรดทราบว่าการใช้ checkinstall แทนการติดตั้งจะช่วยบรรเทาข้อเสียที่กล่าวถึงได้มากมาย ดูhelp.ubuntu.com/community/CompilingEasyHowTo
ndemou

1
ขออภัยสำหรับ nitpicking, @EliahKagan แต่ในขณะที่ virtualenv ยอดเยี่ยมมันเป็นมากกว่าสำหรับการรักษาสภาพแวดล้อม Python หลาย ๆ ตัวที่ติดตั้ง libs ที่แตกต่างกัน หากคุณต้องการPython เวอร์ชันที่เฉพาะเจาะจงอาจจะรวบรวมการตั้งค่าเฉพาะ - คุณยังคงต้องติดตั้งไบนารีจริง - จาก. deb หรือรวบรวมจากศูนย์
Sergey

@ Sergey คุณพูดถูก (และผมไม่เห็นสิ่งที่คุณได้กล่าวว่าเป็น nitpickiing - ถ้ามีอะไรที่ฉันควรจะขอโทษสำหรับความผิดที่ทำให้เข้าใจผิดและแสดงความคิดเห็นของฉัน) ตามที่ผมเข้าใจมันแพคเกจเช่นผู้จัดการcondaอัตโนมัติจะทำให้สภาพแวดล้อมเสมือนจริงและการติดตั้งการติดตั้งที่แตกต่างกันของงูใหญ่สำหรับพวกเขา , การสร้างและการบำรุงรักษารุ่นต่อโครงการ แต่อย่างที่คุณพูดvirtualenvจะไม่ทำเช่นนี้
Eliah Kagan

1

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


0

แน่นอนว่ามันง่ายกว่ามากในการติดตั้ง. deb แม้ว่าคุณจะทำได้ แต่วิธีที่ดีที่สุดคือการหามันใน repo หรือ ppa เพื่อให้คุณได้รับการอัปเดต

AFAIK ไม่มีประโยชน์จริง ๆ ในการรวบรวมด้วยตัวคุณเองเว้นแต่ว่าคุณวางแผนที่จะเปลี่ยนแปลงก่อน หากคุณต้องการซอฟต์แวร์ตามที่เป็นอยู่ให้ติดตั้ง. deb

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.