จะสร้างแพ็คเกจที่ติดตั้งทั้งหมดจากแหล่งได้อย่างไร


26

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


3
ติดตั้ง Gentoo ไม่ใช่ Ubuntu สำหรับสิ่งนั้น อย่างจริงจังทำไมต้องใช้ distro ที่ล้มเหลวอย่างสิ้นเชิงในการจัดการการพึ่งพาแหล่งที่มาแทนที่จะเป็นหนึ่งที่หินมัน?
mathepic

7
ฉันอยากรู้อยากเห็นเพื่อดูการเปรียบเทียบระหว่างแหล่งที่มาและไบนารีที่พวกเขาใช้สแตกรุ่นเดียวกันและการกำหนดค่าจริง การเปรียบเทียบมักจะเป็นรุ่นของ Ubuntu (พร้อมค่าเริ่มต้น) เทียบกับ Gentoo ล่าสุดที่เป็นไปได้พร้อมกับระบบไฟล์คี่บอลและค่าเริ่มต้นของแอปที่แปลกประหลาด ค่าเริ่มต้นของ Ubuntu ส่วนใหญ่มีเหตุผลที่ดีและนั่นคือสิ่งที่ประสิทธิภาพส่วนใหญ่มาจากและนั่นคือสาเหตุที่การเปรียบเทียบแบบตรงที่สุดทำให้อูบุนตูอยู่ข้างหน้าของเจนทู
Oli

1
ตัวอย่างที่ดีอย่างหนึ่งของการเปรียบเทียบที่ไม่ดีคือบทความในนิตยสาร Linux (ต้องลงทะเบียนฟรีเพื่ออ่าน) โดยใช้เมล็ดที่แตกต่างกัน, ไดรเวอร์ Nvidia ที่แตกต่างกัน, รุ่น X ที่แตกต่างกันและสภาพแวดล้อมเดสก์ท็อปที่แตกต่างกัน คุณอาจเปรียบเทียบ Ubuntu สองเวอร์ชันที่แตกต่างกัน พวกเขาจะแสดงสเกลที่แตกต่างกัน
Oli

4
เพิ่มประสิทธิภาพการทำงานของอะไร ปริมาณงานเครือข่าย, ความเร็วดิสก์, การสลับกระบวนการ, การคำนวณทางคณิตศาสตร์ล้วนๆ, กราฟิก 3 มิติ, เวลาบูตเครื่อง?
ผู้ใช้ที่ไม่รู้จัก

1
ฉันจะแนะนำเฉพาะการรวบรวมซอฟต์แวร์ซึ่งต้องการประสิทธิภาพของ CPU ในระดับใหญ่ (การเข้ารหัสวิดีโอเป็นสิ่งที่คำนึงถึง) และมีการใช้งานมากโดยผู้ใช้และประโยชน์จากการปรับแต่ง CPU เช่น FMA3 หรือ AVX2
keiki

คำตอบ:


42

Is is possible to build Ubuntu from source to get the same kind of benefit?

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

นี่คือวิธี:

คุณต้องติดตั้งapt-สร้าง มันเป็นเครื่องมือ comandline เช่น apt-get แต่แทนที่จะดาวน์โหลดและติดตั้งแพคเกจไบนารี apt-build จะดาวน์โหลดซอร์สโค้ดของแพ็คเกจรวบรวมคอมไพล์แล้วติดตั้งลงในระบบของคุณ

หลังจากที่คุณติดตั้งด้วย

sudo apt-get install apt-build

คุณจะถูกถามถึงระดับการปรับให้เหมาะสม (ปานกลางก็โอเค) ไม่ว่าคุณต้องการสร้าง repo apt-build สำหรับ APT (ใช่) และคำถามเกี่ยวกับสถาปัตยกรรมตัวประมวลผล (Intel i7 ของฉันถือว่าเป็น core2) แน่นอนว่าตัวเลือกทั้งหมดสามารถกำหนดค่าใหม่ได้ด้วยวิธีนี้:

dpkg-reconfigure apt-build

คำสั่งดังกล่าวมีสองตัวเลือกเพิ่มเติมสำหรับคอมไพเลอร์ gcc และสร้าง คำอธิบายของพวกเขาสามารถพบได้ในคู่มือระบบ: man gcc และ man make

ตรวจสอบตัวเลือกคำสั่งด้วยตนเองและที่มีให้

man apt-build

แต่สิ่งที่มีประโยชน์ที่สุดคือ:

  • apt-build update - อัปเดตรายการซื้อคืน (เช่น apt-get update)
  • apt-build upgrade - อัปเดตระบบปฏิบัติการ (เช่น apt-get upgrade)
  • โปรแกรมติดตั้ง apt-build - ติดตั้งแอปพลิเคชัน (เช่น apt-get install)
  • apt-build world - บางอย่างสำหรับผู้ใช้ฮาร์ดคอร์มันคอมไพล์ทั้งระบบ!

ตัวอย่างเช่น:

ให้บอกว่าคุณต้องการรวบรวม / ติดตั้ง Gedit แทนที่จะติดตั้ง apt-get คุณก็ทำได้

sudo apt-build install gedit

Apt-build ใช้ประโยชน์จากรายการ deb-src ที่มีอยู่ในไฟล์ /etc/apt/sources.list ดังนั้นกระบวนการคอมไพล์และการติดตั้งจึงเป็นไปโดยอัตโนมัติอย่างสมบูรณ์ (คล้ายกับที่พบใน Gentoo) แหล่งดาวน์โหลด Apt-build ของแอปพลิเคชันหลักและการอ้างอิงรวบรวมคอมไพล์แพ็กเกจ deb และติดตั้งแพ็กเกจในที่สุด

หมายเหตุบางประการเกี่ยวกับโลกที่เหมาะสม

ในความคิดของฉันไม่พยายามเว้นแต่คุณจะมีเวลาอย่างน้อย 24 ชั่วโมง!

หากเป็นสิ่งแรกที่คุณควรลบ / ปิดการใช้งาน / ถอนการติดตั้งแอปพลิเคชันของบุคคลที่สามใด ๆ (ควรทำในการติดตั้ง Ubuntu ใหม่) จากนั้นทำ:

sudo su
dpkg --get-selections | awk '{if ($2 == "install") print $1}'> /etc/apt/apt-build.list
exit

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

sudo gedit /etc/apt/apt-build.list

และลบรายการ GCC / G ++ ใด ๆ

จากนั้นคุณสามารถทำได้:

sudo apt-build world

ฉันขอแนะนำให้เพิ่มสองตัวเลือก - - ใช่และ - บังคับ - ใช่ - เพื่อให้กระบวนการสร้างใหม่โดยอัตโนมัติอย่างสมบูรณ์


10
+1 สำหรับคำตอบที่เป็นรูปธรรมเปรียบเทียบกับ "ทำไมต้องสร้าง" คำตอบ ฉันชอบที่จะอ่านยังมีความเห็นอย่างกว้างขวางมากขึ้น (แม้ว่าอัตนัย) เกี่ยวกับผลประโยชน์ที่คุณสามารถ (หรืออาจจะไม่ได้) apt-buildได้รับใช้
enzotib

1
ขณะนี้มี 17 สำหรับคำตอบนี้ แต่มีใครทำได้สำเร็จหรือไม่
keiki

1
@ otakun85 ฉันได้ใช้ apt-build เพื่อรวบรวมแพคเกจบางอย่างเรียบร้อยแล้วบน Ubuntu (จำไม่ได้ว่าเป็นรุ่นอะไรหนึ่งใน 12.04 | 12.10 | 13.04) ฉันลองใช้ apt-build world ซึ่งเป็นระเบียบ หน้าคนสำหรับสร้าง apt-มีนี้ที่สิ้นสุดBUGS Many.ดังนั้นคาดว่าปัญหา
Phizes

ฉันพบว่าแทนที่จะใช้apt-build worldจะเป็นการดีกว่าที่จะดาวน์โหลดหนังสือ "Linux from Scratch" และทำapt-buildสำหรับทุกแพ็คเกจที่ระบุไว้ในนั้น มันระบุลำดับที่ถูกต้องเป็นต้นตัวอย่างเช่นฉันไม่แน่ใจถ้าapt-build worldรู้ว่าควรคอมไพล์ใหม่ก่อนbinutilsจากgccนั้นbinutilsอีกgccครั้งอีกครั้งจากนั้นภาษาโปรแกรมgzipฯลฯ ดูเหมือนว่ามันจะรวบรวมทุกอย่างตามตัวอักษร
Serhyi Vynohradov

@SerhyiVynohradov: ไม่เป็นไร LFS ทำเช่นนั้นเพื่อหลีกเลี่ยงการทิ้งการพึ่งพาไลบรารีไว้ในระบบโฮสต์ แต่ที่นี่เป็นเพียงการแทนที่ทุกอย่างในสถานที่ด้วยเวอร์ชันที่คอมไพล์แล้ว พวกเขาจะยังคงอยู่ในสถานที่เดียวกันมี ABI เดียวกันและอื่น ๆ
Nick Matteo

3

คุณสามารถเริ่มต้น flamewar และการอภิปรายขนาดใหญ่เกี่ยวกับหัวข้อประเภทนี้ แต่ให้ดูที่ชีวิตจริง

ความเร็วของระบบปฏิบัติการของคุณขึ้นอยู่กับฮาร์ดแวร์ที่คุณใช้และนั่นคือปัจจัยสำคัญ

ฉันเปลี่ยน distros บ่อยในขณะที่อยู่กับ Arch เป็นส่วนใหญ่ แต่ Arch เร็วกว่า Ubuntu ไหม เลขที่

Gnome with compiz บน Ubuntu 10.10 ใช้ประมาณ 300ram, บน Arch 200ram, ฉันมี RAM 4GB, ฉันไม่รู้สึกถึงความแตกต่าง แต่ถ้าคุณเปรียบเทียบ Ubuntu กับ gnome กับ Arch ด้วยสุดยอดเยี่ยมจะมีการตอบสนองและทรัพยากรอย่างมาก การใช้งาน (300ram กับ 50ram) แต่จะสำคัญเฉพาะในกรณีที่คุณเลือก distro สำหรับเน็ตบุ๊ก

ดังนั้นหากคุณมีเดสก์ท็อปที่รวดเร็วและไม่ต้องการเสียเวลากับระบบของคุณเพียงแค่ใช้ Ubuntu แต่ถ้าคุณมีเน็ตบุ๊กมากกว่าที่จะพิจารณาใช้ WM เบา ๆ บน Arch :)


ในบางจุดคุณอาจไปถึงสถานการณ์ที่คุณมีฮาร์ดแวร์ล่าสุด แต่คุณยังต้องดำเนินการเป็นเวลานานชั่วโมง และแทนที่จะตั้งค่าเซิร์ฟเวอร์จำนวนมากเพื่อแจกจ่ายโหลดคุณไม่ต้องใช้เวลาในการแก้ไขเพื่อให้ได้รับการเพิ่มขึ้น 20% ฉันไม่เคยใช้ Arch แต่ฉันลองใช้ Gentoo และฉันเห็นว่าหลายครั้งไม่มีสิ่งเช่น "distro เร็ว" มี "distro กับซอฟต์แวร์น้อย" แทน คุณอาจมีระบบกระดูกเปลือยที่รวดเร็ว แต่ไม่ปลอดภัย และเมื่อคุณติดตั้งแพคเกจอื่นมันจะกลายเป็นความเร็วเท่ากับ Ubuntu + apt-build
Serhyi Vynohradov

0

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

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