ทำไมต้อง Gentoo?
(blogs.gentoo.org)- คุณค่าหลักของ Gentoo ไม่ได้อยู่ที่ประสิทธิภาพจากการคอมไพล์เพียงอย่างเดียว แต่คือความยืดหยุ่นที่การบิลด์จากซอร์สมอบให้ และปรัชญาของดิสโทรที่สร้างขึ้นเพื่อผู้ใช้
- โครงการดำเนินงานโดยไม่มีบริษัทหรือโมเดลธุรกิจอยู่เบื้องหลัง และกำลังยุบ Gentoo Foundation พร้อมย้ายไปยัง SPI เพื่อลดคอขวดด้านธรรมาภิบาลทางการเงินและความเสี่ยงจากการพึ่งพา
- มี ทีมความปลอดภัย โดยเฉพาะ อินฟราสตรักเจอร์ของตนเอง ช่องทางแจกจ่ายที่ปกป้องด้วย OpenPGP และนโยบาย QA ที่เข้มงวด เพื่อรับมือกับ dependency ที่เก่าเกินไป การลิงก์แบบ static และ dependency ที่ bundle มา
- โครงสร้างที่ให้ความสำคัญกับซอร์สเป็นหลักและ USE flags ช่วยให้เลือกฟีเจอร์ ไลบรารี init system, libc และวิธีบิลด์ได้ แต่ตัวเลือกที่ไม่มีผู้ดูแลอาจถูกจำกัด
- Rolling release การอยู่ร่วมกันของชุดเสถียรและชุดทดลอง การรองรับฮาร์ดแวร์เก่า ความเป็นมิตรต่อการพัฒนา และแนวทางลบ telemetry ล้วนสะท้อนการเคารพผู้ใช้
อัตลักษณ์หลักของ Gentoo
- Gentoo เป็นที่รู้จักในฐานะ “ดิสโทรที่คอมไพล์ทุกอย่าง” แต่ยากจะอธิบายได้ด้วยการไล่ล่าประสิทธิภาพหรือการปรับแต่งขั้นสุดโต่งเพียงอย่างเดียว
- เมื่อการปรับแต่ง CPU และคอมไพเลอร์ รวมถึงการปรับแต่งแพ็กเกจของดิสโทรทั่วไปพัฒนาไปมากแล้ว ความต่างด้านประสิทธิภาพระหว่างแพ็กเกจ Ubuntu ทั่วไปกับแพ็กเกจ Gentoo ที่จูนตาม CPU จึงอาจไม่ได้สร้างความแตกต่างมากนักในโลกจริง
- คุณค่าที่สำคัญกว่าของ Gentoo คือ ความยืดหยุ่น ที่การบิลด์จากซอร์สมอบให้ และความจริงที่ว่ามันเป็นดิสโทรที่ผู้ชื่นชอบ Gentoo สร้างขึ้นเพื่อใช้กันเอง
ความเป็นอิสระ
- Gentoo ไม่มีบริษัทหรือโมเดลธุรกิจอยู่เบื้องหลัง และถูกสร้างกับดูแลโดยผู้คนที่ทุ่มเทให้กับคุณค่าของ Gentoo
- บางคนดูแล Gentoo เป็นส่วนหนึ่งของงาน แต่ส่วนใหญ่เป็นอาสาสมัครที่ขับเคลื่อนด้วยความหลงใหลมากกว่าผลกำไร
- อินฟราสตรักเจอร์บางส่วนได้รับการบริจาค และบางส่วนดำเนินการด้วยเงินบริจาค โดยไม่พึ่งพาผู้บริจาครายใดรายหนึ่งจนสามารถชี้นำ Gentoo ได้
- เพื่อลดความเสี่ยงที่ธรรมาภิบาลการเงินโดยตรงจะกลายเป็นคอขวด จึงกำลังดำเนินการยุบ Gentoo Foundation และย้ายไปยัง SPI
ความปลอดภัย
- Gentoo ให้ความสำคัญกับความปลอดภัยของแพ็กเกจ และบางครั้งก็ backport แพตช์ก่อน upstream ด้วยซ้ำ
- มี ทีมความปลอดภัย โดยเฉพาะที่รับผิดชอบการติดตามปัญหา การแก้ไข และการแจ้งผู้ใช้
- มีการดูแลอินฟราสตรักเจอร์ของตนเองเพื่อลดความเสี่ยงจากการถูกยึดครอง และปกป้องช่องทางแจกจ่ายกับ mirrors ด้วย OpenPGP
- Codeberg และ GitHub ถูกใช้เพียงเป็น mirror และช่องทางรับ contribution แบบทางเลือก เพื่อไม่ให้ Gentoo ต้องพึ่งพาแพลตฟอร์มใดแพลตฟอร์มหนึ่ง
- มีนโยบาย QA ที่เข้มแข็งในการรับมืออย่างวิพากษ์กับแนวทางอย่าง dependency ที่ bundle มา การลิงก์แบบ static และ dependency ที่ตรึงตายตัว
- พยายามป้องกันภัยคุกคามที่ชัดเจน เช่น dependency ที่เก่ามากจนเป็นปัญหาร้ายแรง
ดิสโทรที่มนุษย์สร้าง
- Gentoo สั่งห้าม contribution จาก LLM มาตั้งแต่ 2 ปีก่อน และยังคงเห็นว่าการตัดสินใจนั้นถูกต้อง
- แม้จะไม่อาจรับประกันได้ 100% ว่าไม่มีโค้ดที่ปนเปื้อนหลุดเข้ามาเลย แต่ความไว้วางใจและความระแวดระวังคือแกนสำคัญที่ค้ำจุนชุมชน
- ต่อให้ upstream จะไม่ยึดจุดยืนเดียวกัน แต่ด้วยความรับผิดชอบในการส่งมอบซอฟต์แวร์ที่ใหม่และปลอดภัย ก็ไม่อาจห้ามไม่ให้ซอฟต์แวร์ที่พัฒนาด้วย LLM ถูกแพ็กเกจใน Gentoo ได้ทั้งหมด
- แต่กรณีร้ายแรงอย่าง copywashed chardet หรือซอฟต์แวร์เข้ารหัสแบบ vibe-coded ก็พยายามกันออกให้มากที่สุด
ความเสถียร
- Gentoo อาจไม่ใช่ดิสโทรที่เริ่มต้นได้ง่ายที่สุด แต่เมื่อคอนฟิกเสร็จแล้วก็สามารถเสถียรได้อย่างน่าประหลาดใจ
- แม้จะเกิดปัญหา ก็มักซ่อมระบบได้โดยไม่ต้องติดตั้งใหม่
- ต้นไม้แพ็กเกจไม่ได้ผูกติดกับแพ็กเกจเวอร์ชันเดียวของแพ็กเกจใดแพ็กเกจหนึ่ง ดังนั้นถ้าเวอร์ชันใหม่ไม่เข้ากัน ก็มักมีทาง downgrade
- แม้เวอร์ชันนั้นจะหายไปจาก Gentoo แล้ว ก็มักกู้กลับมาได้ค่อนข้างง่าย
- เป็นดิสโทรแบบ rolling release จึงไม่ต้องถูกแบ่งเป็นหลายรุ่นดิสโทร และไม่ต้องคอยย้ายไปรุ่นถัดไปเป็นระยะ
- ผู้ใช้เลือกได้ระหว่างสภาพแวดล้อมล่าสุดที่รับแพ็กเกจใหม่ทันทีที่เพิ่มเข้ามา กับสภาพแวดล้อมเสถียรที่อัปเดตหลังตรวจสอบความพร้อมแล้ว
- demize @ unstable.systems ระบุว่าแม้ใช้คอนฟิกแบบทดลองอย่าง
ACCEPT_KEYWORDS="~amd64", โปรไฟล์ LLVM,moldsystem linker และ LTO ทั้งระบบ ก็ยังได้ประสบการณ์ที่เสถียรกว่าเดสก์ท็อป Linux อื่น ๆ
ความยืดหยุ่น
-
ดิสโทรที่ให้ซอร์สเป็นหลัก
- รูปแบบการติดตั้งหลักของ Gentoo คือการบิลด์จากซอร์ส แต่ไม่ได้หมายความว่าผู้ใช้ต้องไปหา dependency เองและต่อคำสั่งบิลด์ด้วยมือ
- ตัวจัดการแพ็กเกจ จะดูแลขั้นตอนที่จำเป็นและงานมากกว่านั้น เพื่อให้การติดตั้งแพ็กเกจเป็นเรื่องง่าย
- การบิลด์จากซอร์สช่วยให้ควบคุมได้ละเอียดขึ้นว่าแพ็กเกจจะมีฟีเจอร์อะไรบ้างและถูกบิลด์อย่างไร
- การตัดฟีเจอร์ที่ไม่จำเป็นออกช่วยเพิ่มประสิทธิภาพและลดพื้นผิวการโจมตีได้ และยังสามารถบิลด์ RSS reader หรือ mail client โดยไม่ต้องพ่วงคอมโพเนนต์เว็บเบราว์เซอร์ที่เปราะบางได้ด้วย
-
การควบคุมไลบรารีและกระบวนการบิลด์
- การคอมไพล์จากซอร์สไม่ได้บังคับให้ผู้ใช้ต้องยึดติดกับชุดไลบรารีชุดเดียวที่ Gentoo builder ใช้
- จึงมีความเป็นไปได้ที่จะคงเวอร์ชันเก่าของไลบรารีบางตัว ใช้เวอร์ชันใหม่กว่า หรือแม้แต่ใช้ implementation คนละตัวไปเลย
- แม้จะมีข้อจำกัดระหว่างขอบเขตที่รองรับอย่างเป็นทางการกับสิ่งที่ใช้งานได้จริง แต่จำนวนชุดค่าผสมที่เป็นไปได้ก็ยังมากกว่าดิสโทรแบบไบนารีล้วนมาก
- แม้ออกนอกขอบเขตที่รองรับ ก็ยังแพตช์หรือปรับกระบวนการบิลด์ได้ง่าย
-
ขอบเขตของทางเลือกและข้อจำกัด
- บางครั้ง Gentoo ถูกเรียกว่า “ดิสโทรแห่งทางเลือก” แต่ไม่ได้หมายความว่าจะรักษาทุกตัวเลือกไว้ได้ตลอดไป
- ในบางกรณีสามารถมีตัวเลือกที่สมเหตุสมผลได้ เช่น OpenRC กับ systemd, glibc กับ musl
- การจะคงตัวเลือกใดไว้ได้ ต้องมีใครสักคนช่วยดูแลอย่างจริงจัง มิฉะนั้นก็มักกลายเป็นระบบที่พังครึ่ง ๆ กลาง ๆ
- บางกรณีก็ต้องยอมเลิก เช่น LibreSSL กับ OpenSSL, libav กับ ffmpeg เพราะต้นทุนการบำรุงรักษาสูงเกินไป
- เมื่อ Qt ไม่ยอมรองรับ LibreSSL จากฝั่ง upstream การดูแล LibreSSL ก็ยิ่งยากขึ้น
-
ค่าเริ่มต้นและการปรับแต่งแบบเลือกใช้
- ตัวเลือกส่วนใหญ่ของ Gentoo มาในรูปแบบ opt-in
- แนวคิดคือมอบความยืดหยุ่นให้คนที่ต้องการ ขณะที่คนอื่นยังคงได้ค่าเริ่มต้นที่ดี
- ผู้ใช้สามารถปรับแต่งเฉพาะส่วนที่สนใจ แล้วปล่อยที่เหลือให้เป็นค่าเริ่มต้น ก็ยังได้ประสบการณ์ที่ดี
- charon @ hachyderm.io ชื่นชมที่สามารถจัดการและคงความทันสมัยของสถาปัตยกรรม, libc, init system, แพตช์แพ็กเกจ, ชุดฟีเจอร์ และ display stack ที่แตกต่างกันได้ภายใต้ OS เดียวกัน
- Josh @ babka.social มองว่าจุดเด่นคือสามารถทำระบบ headless ที่ไม่มีแพ็กเกจกราฟิกเลย หรือคอนฟิกกราฟิกสแตกตามต้องการได้ด้วยไฟล์คอนฟิกธรรมดา แทนที่จะเป็นขั้นตอนติดตั้งแยกต่างหาก
ความสนุกและการทดลอง
- Gentoo ไม่ได้มุ่งแค่ให้ทำงานให้เสร็จ แต่ต้องการมอบประสบการณ์ที่ผู้ใช้ก้าวต่อไปเพื่อทดลองสิ่งต่าง ๆ ได้
- หากอยากลองซอฟต์แวร์พัฒนารุ่นใหม่ ๆ ก็มักมีแพ็กเกจจากสาขา stable, testing และ development ของ upstream ให้ใช้
- แพ็กเกจจำนวนมากมี live ebuild ที่บิลด์ตรงจากรีโพซิทอรีของ upstream ทำให้ทดสอบสาขาพัฒนาล่าสุดได้เพียงแค่ unmask
- นอกเหนือจากระบบ GNU/Linux ทั่วไป ยังสามารถทดลอง musl, GNU Hurd, toolchain ที่อิง LLVM, FreePG, Sequoia, Samurai, libarchive tar/cpio และ implementation ทางเลือกของ awk ได้
- การทดลองเหล่านี้ไม่ได้ขัดกับความเสถียร เพราะสามารถเริ่มจากแพ็กเกจ stable หรือ
~archแล้วเลือกอัปเดตให้ใหม่เฉพาะบางส่วน หรือปักไว้ที่สาขา LTS ในจุดที่ต้องการก็ได้
ความยั่งยืน
- แม้จะมีผู้ใช้จำนวนมากที่บิลด์จากซอร์ส แต่ Gentoo ก็ยังมุ่งไปที่ ความยั่งยืน ของการประมวลผล
- มีการรองรับแพ็กเกจไบนารีอย่างกว้างขวาง เพื่อให้ใช้งานแพ็กเกจเดียวกันได้กับคอนฟิกที่หลากหลาย
- ผู้ใช้สามารถใช้แพ็กเกจไบนารีทางการที่ตรงความต้องการ หรือถ้าไม่ตรงก็กลับไปบิลด์จากซอร์สได้
- สามารถใช้แพ็กเกจทางการสำหรับหลายเป้าหมาย หรือจะบิลด์แพ็กเกจไบนารีเองทั้งแบบแยกต่างหากหรือระหว่างติดตั้งระบบก็ได้
- พยายามรองรับฮาร์ดแวร์เก่าและฮาร์ดแวร์ที่ไม่ค่อยพบให้กว้างขวาง รวมถึงมอบระบบที่ยังทำงานได้บนฮาร์ดแวร์ที่ Rust หรือ V8 ไม่รองรับ
- แทนที่จะทิ้งคอมพิวเตอร์เพียงเพราะผู้ให้บริการเชิงพาณิชย์เลิกซัพพอร์ตด้วยเหตุผลด้านกำไร Gentoo เลือกแนวทางให้ยังใช้งานต่อได้ แม้จะไม่ง่ายนักก็ตาม
เป็นมิตรกับนักพัฒนา
- Gentoo บิลด์ทุกอย่างจากซอร์ส จึงทำให้ผู้ใช้ใกล้ชิดกับสภาพแวดล้อมการพัฒนาโดยตรง
- การติดตั้งแพ็กเกจต้องมี toolchain ครบ และแนวคิดการแยกแพ็กเกจเป็นส่วน “runtime” กับ “development” แทบไม่มีความหมายมากนักใน Gentoo
- บ่อยครั้ง Gentoo จึงมี สภาพแวดล้อมสำหรับการพัฒนา ที่พร้อมใช้โดยปริยาย
- ในเชิงนโยบาย Gentoo ไม่ชอบการแพตช์แพ็กเกจและพยายามหลีกเลี่ยงเท่าที่ทำได้ โดยต้องการให้แพ็กเกจตาม upstream และให้ซอฟต์แวร์ที่พัฒนาบน Gentoo ถูกต้องและพกพาได้
- Gentoo เป็นหนึ่งในไม่กี่ดิสโทรที่ไม่เพิ่มไฟล์
pkg-configแบบไม่เป็นมาตรฐานเข้าไปในแพ็กเกจ bzip2 - การพัฒนาบน Gentoo ช่วยหลีกเลี่ยงความผิดพลาดที่พบบ่อยอย่างการปล่อยแพ็กเกจที่ไปต้องพึ่งไฟล์นอกมาตรฐานดังกล่าว
- Gentoo ยังเป็นหนึ่งในไม่กี่ดิสโทรที่รองรับ Python หลายเวอร์ชันอย่างจริงจัง โดยไม่เพียงเลือกเวอร์ชัน Python ได้ แต่ยังติดตั้งแพ็กเกจสำหรับหลายเวอร์ชันพร้อมกันได้ด้วย
- เพราะ Gentoo มีคอนฟิกหลากหลาย การทดสอบกับผู้ใช้ปลายทางจึงสำคัญ และยังตั้งค่าให้รัน test suite ระหว่างบิลด์แพ็กเกจได้ง่าย
- rayslava @ mitra.do.rayslava.com ระบุว่า USE flags คือวิธีที่ดีที่สุดในการจัดองค์ประกอบแอปให้ได้หลายชุดค่าผสม และ Portage ก็ทำให้แม้แต่ corporate rpm packages ก็ถูกใช้งานผ่าน
emergeได้อย่างไม่มีปัญหา - ผู้ใช้คนเดิมยังใช้
pycargoebuildเพื่อดูแล Rust infrastructure โดยไม่ต้องพึ่งเครื่องมือหรือสภาพแวดล้อมแยก และบอกว่าใช้ Gentoo มาตั้งแต่ปี 2004 โดยยังไม่พบสิ่งที่ดีกว่า
ดิสโทรที่มีประโยชน์
- Gentoo พยายามมอบระบบที่เหมาะกับการใช้งานหลากหลาย ไม่ว่าจะเป็นเครื่องพัฒนา เกมมิงพีซี เทอร์มินัลเรียบง่าย หรือเซิร์ฟเวอร์
- จากมุมมองของ Free Software Foundation อาจมองว่า Gentoo ไม่ใช่ดิสโทรที่ดีนัก เพราะติดตั้ง proprietary software ได้ง่ายเกินไป
- แต่ในขณะเดียวกัน การคงไว้เฉพาะซอฟต์แวร์เสรีก็ทำได้ง่ายพอ ๆ กัน และค่าเริ่มต้นก็เป็นซอฟต์แวร์เสรี
- Linn @ mastodon.social มองว่าแนวทางด้านไลเซนส์ของ Gentoo เปิดให้เลือกได้เป็นรายแพ็กเกจว่าจะอนุญาตไลเซนส์ใด และตั้งค่าเริ่มต้นไว้ที่ซอฟต์แวร์เสรี ทำให้ผู้ใช้ต้องตรวจสอบไลเซนส์ก่อนติดตั้ง proprietary software
- Gentoo ยังคงยึดนโยบายรายงานบั๊กที่พบกลับไปยัง upstream และช่วยกันแก้ไข
- Gentoo มองว่าการใช้วิธีเลี่ยงชั่วคราวเพื่อให้ผ่าน builder อย่างเดียวไม่เพียงพอ แต่ต้องการวิธีแก้ที่ใช้ได้กับทุกคน
- มีการรับมือกับปัญหาซับซ้อนอย่าง portability และการรองรับ fringe platforms โดยคำนึงถึงแพลตฟอร์มที่ดิสโทรส่วนใหญ่ไม่รองรับด้วย
- danzin @ mastodon.social มองว่าแม้จะไม่ใช่ผู้ใช้ Gentoo งานของ Gentoo ที่ช่วยค้นหา รายงาน และแก้ปัญหาในโครงการ upstream ก็สำคัญต่อการรักษาความเข้ากันได้และเสถียรภาพในระบบนิเวศอย่าง Python
- เอกสารของ Gentoo เคยถูกยกให้ดีที่สุดในบรรดาดิสโทร Linux ยุคก่อน และปัจจุบันก็ยังถือว่าอยู่ในระดับดีมาก
- เมื่อใช้ Gentoo ไปเรื่อย ๆ ผู้ใช้มักได้เรียนรู้เชิงลึกเกี่ยวกับการประมวลผล ตั้งแต่การติดตั้งระบบ การเขียน ebuild การแก้เล็ก ๆ ใน
/etc/portage/patchesการช่วย overlay แบบกึ่งทางการ ไปจนถึงการส่งบั๊กให้ upstream - anton @ icosahedron.website มองว่า Gentoo มีเส้นโค้งการเรียนรู้ที่ค่อยเป็นค่อยไป ตั้งแต่ระดับทำตาม Handbook ได้ ไปจนถึงเรื่องลึกของคอมพิวติ้ง โดยทุกก้าวเล็กและเป็นโอกาสในการเรียนรู้
แนวทางที่เคารพผู้ใช้
- ทิศทางหลายอย่างของ Gentoo สุดท้ายล้วนมุ่งไปสู่การ เคารพ ผู้ใช้
- Gentoo ไม่สั่งการมากเกินไปว่าผู้ใช้ควรใช้ระบบอย่างไร
- แม้จะมีขอบเขตการรองรับและมาตรการป้องกันเพื่อหลีกเลี่ยงความเสียหายร้ายแรง แต่การตัดสินใจสุดท้ายยังเป็นของผู้ใช้
- แม้ผู้ใช้จะเลือกสิ่งที่อยู่นอกขอบเขตที่รองรับ Gentoo ก็ไม่ได้ตั้งใจทำให้กรณีใช้งานนั้นพัง แต่ก็ไม่ได้รับประกันว่าจะไม่พังจากเหตุสุดวิสัย
- Markus Osterhoff @ troet.cafe บรรยายว่าการเปลี่ยน user ID ด้วย
suแล้วระบบทำงานตามที่สั่ง รวมถึงคอนฟิกด้วยvimและอ่านล็อกด้วยlessให้ความรู้สึกเหมือนได้รับการปฏิบัติในฐานะผู้ใหญ่ - Ilya Shchepetkov @ social.treehouse.systems มองว่าจุดเด่นของ Gentoo คือความรู้สึกควบคุมได้ เพราะระบบจะไม่ทำสิ่งที่ผู้ใช้ไม่ได้ตั้งค่าไว้
- กระบวนการติดตั้งทำให้เห็นว่าไม่มีเวทมนตร์ซ่อนอยู่ และถึงบูตจะล้มเหลวขึ้นมากะทันหัน ก็ยังรู้สึกได้ว่าสามารถซ่อมทุกอย่างในระบบได้
- Gentoo มุ่งมอบค่าเริ่มต้นที่ดีและประสบการณ์ที่เสถียร รักษาความปลอดภัย เคารพงานของมนุษย์ และไม่พึ่ง LLM
- Gentoo พยายามเคารพความเป็นส่วนตัวของผู้ใช้ แทนที่จะมองเป็นสิ่งสำหรับ “ประเมินมูลค่า” และจนถึงตอนนี้ก็ยังไม่ได้รับ telemetry ระยะไกลเกี่ยวกับการใช้งาน Gentoo
- หากพบ telemetry อยู่ในแพ็กเกจ ก็มีแนวโน้มจะลบออกโดยปริยาย และถ้าผู้ใช้ต้องการก็จะมี USE flag ให้คืนค่าเริ่มต้นของ upstream
- Gentoo มุ่งสร้างชุมชนที่เป็นมิตรและเปิดรับรอบตัวโครงการ และต้องการเป็นระบบที่ใช้งานอย่างรื่นรมย์โดยไม่หักหลังผู้ใช้
- เนื้อหานี้ได้รับแรงบันดาลใจอย่างมากจากคำตอบใน กระทู้ Fediverse “how Gentoo is perceived by people” และมีการยกมาเพียงบางส่วน
1 ความคิดเห็น
ความเห็นจาก Lobste.rs
ฉันเคยใช้ Gentoo ช่วงปี 2019~2022 และความรู้สึกที่เหลืออยู่ก็มีทั้งข้อดีและข้อเสียปนกันไป
ด้านหนึ่ง ความสนุกที่ผู้เขียนพูดถึงนั้นมีอยู่จริงแน่นอน มันไม่ใช่แอปที่ติดตั้งด้วยการคลิกไม่กี่ครั้งแล้วจบ แต่เป็นกระบวนการเลือกตามคู่มือที่เขียนมาดีและปรับดิสโทรให้เข้ากับรสนิยมของตัวเอง เลยให้ความรู้สึกแรงมากว่าเป็นระบบที่เราสร้างขึ้นมาด้วยมือตัวเอง
การลองดูว่าจะทำให้มันเบาได้แค่ไหนโดยตัดสิ่งที่ไม่จำเป็นออกโดยไม่ทำลายความใช้งานได้ก็ดีเหมือนกัน และการตั้งค่าเคอร์เนลด้วยตัวเองก็น่าสนใจ แต่ถ้าไม่มี USB สำหรับกู้ระบบหรือแบ็กอัปไว้ การตั้งค่าเคอร์เนล ก็อาจเป็นกับดักใหญ่ที่สุดของ Gentoo ได้
นอกจาก
march=nativeแล้ว ฉันแทบไม่ได้จูนอะไรหนัก ๆ แต่ถึงอย่างนั้นมันก็ยังรู้สึกว่าลื่นและเร็วกว่า distro อื่นที่เคยใช้ในตอนนั้นมาก แม้จะพูดหนักแน่นไม่ได้เพราะไม่ได้ทำ benchmark แต่ก็ทำให้ T440p เก่า ๆ สมัยมหาวิทยาลัยของฉันใช้งานได้สบายขึ้นมากในอีกด้านก็รู้สึกเหมือนต้องสู้กับระบบอยู่ตลอดเหมือนกัน เวลาคอมไพล์นั้นพอคาดไว้แล้ว แต่ตัว
emergeเองก็ดูช้าเกินไปทุกครั้งที่ค้นหาแพ็กเกจหรือติดตั้ง dependency ซับซ้อน จนบางทีถึงกับกังวลว่า PC ค้างไปแล้วหรือฉันทำอะไรพลาดกันแน่USE flags มักสร้างงานดีบักที่น่ารำคาญ เพราะเอกสารไม่พอหรือมีผลข้างเคียงที่คาดไม่ถึง บางทีแค่เปิดแฟล็กเดียวแอปก็ใช้งานไม่ได้ไปเลย และยังต้องเปิดแฟล็กอื่นที่ดูเหมือนไม่เกี่ยวกันด้วย ทั้งที่ดูภายนอกแล้วน่าจะเป็นอิสระต่อกัน อีกทั้งที่ฟีเจอร์แบบนี้ไม่ได้รวมอยู่ใน package manager หลัก แต่ต้องไปค้นจากเว็บไซต์หรือ
equeryแล้วตั้งค่าด้วยflaggieก็รู้สึกแปลก ๆ เหมือนกันการตั้งค่าเคอร์เนลเป็นทักษะที่ต้องใช้เวลาเรียนรู้ แต่คู่มือที่ฉันหาได้ตอนนั้นแทบช่วยอะไรเกินพื้นฐานไม่ได้เลย ตอนนี้ Gentoo มี binary kernel แล้วจึงเลี่ยงการตั้งค่าแบบ manual ได้ แต่ในตอนนั้นมันให้ความรู้สึกเหมือนมีแค่สองทาง คือเดินผ่านทุ่งกับระเบิด หรือไม่ก็คอมไพล์เคอร์เนลอ้วน ๆ ที่ใช้เวลานาน
qt-webkitคือหายนะของเครื่องช้า ๆ แพ็กเกจตัวเดียวนี่แหละที่ทำให้ทุกครั้งต้องเพิ่มเวลาคอมไพล์อีก 2~3 ชั่วโมงจากเวลาที่ตั้งใจจะใช้ติดตั้งหรืออัปเดตแต่เดิม แม้จะไม่ใช่ข้อบกพร่องของ Gentoo ในฐานะดิสโทรที่เน้นซอร์สโค้ดก่อน แต่ในมุมผู้ใช้ปลายทางมันก็ทรมานมากทีเดียวสุดท้าย Gentoo ไม่ใช่ระบบที่เหมาะกับการใช้งานแบบฉับพลันเลย ถ้าต้องการอะไรสักอย่างก็ต้องมีเวลารอคอมไพล์ และการลองสลับใช้แอปใหญ่ ๆ หลายตัวก็แทบเป็นไปไม่ได้เลย หลายครั้งฉันก็ไม่สามารถเปิด PC ทิ้งไว้ข้ามคืนได้ เลยต้องเลือกระหว่างทุ่มพลังประมวลผลทั้งหมดไปที่การคอมไพล์จนใช้งานเครื่องไม่ได้ หรือเหลือคอร์ไว้หนึ่งคอร์แล้วทนใช้ระบบที่ช้าลงพร้อมเวลาคอมไพล์ที่ยาวขึ้น
สุดท้ายเพราะไม่มีเวลามานั่งปรับแต่ง PC ที่ใช้เรียนต่อ ฉันเลยกลับไปใช้ Arch แต่ก็ยังคงให้ความเคารพ Gentoo มากอยู่ มันทำให้เห็นมุมมองที่แตกต่างอย่างสิ้นเชิงว่าดิสโทรสามารถทำงานได้อย่างไร และฉันก็ได้เรียนรู้การทำงานภายในของมันมากมาย พอได้อ่านบทความนี้ก็ทำให้นึกถึงประสบการณ์เก่า ๆ และรู้สึกคิดถึง อีกทั้งได้ยินว่าทุกวันนี้ส่วนที่หยาบ ๆ ก็ถูกเกลาจนดีขึ้นมากแล้ว จึงอาจกลับไปใช้อีกครั้งสักวัน
Gentoo is Rice
เมื่อก่อนฉันยังเคยรัน Funtoo บน Raspberry Pi B ด้วย ซึ่งเป็นรุ่นนั้นเลย ไม่ใช่ 2, 3, 4 หรือ 5 และก็ค่อนข้างสนุกดี
เครื่อง Gentoo เครื่องแรกของฉันคือ Xserve G4 แบบ dual CPU พร้อม RAM 2GB และกว่าจะได้เคอร์เนลที่บูตได้จริง ฉันต้องคอมไพล์ซ้ำไปซ้ำมาจนใช้เวลาเกือบหนึ่งสัปดาห์กว่าจะบูตเข้าระบบจริงได้
สิ่งที่ทำให้ฉันห่างจาก Gentoo มากที่สุดคือมันไม่เหมาะกับการใช้งานแบบฉับพลัน ฉันเคยจะติดตั้ง Audacity เพื่อทำงานเสียง แล้วเวลาผ่านไปหลายชั่วโมง คอมพิวเตอร์มีไว้เพื่อให้เราสั่งงาน แต่บางครั้งก็อยากแค่ใช้งานมัน ไม่ใช่คอยดูแลรักษาอย่างเดียว
ถ้ากำลังทำงานอยู่ จังหวะการทำงานก็จะสะดุด แล้วต้องกลับมานั่งรอคอมไพล์อีก
สำหรับเครื่องช้า ๆ หายนะของฉันคือ
webkit-gtk2เพราะ Gnucash ดันพึ่งพามันแบบหนักแน่นทั้งที่ใช้แค่แสดงกราฟ บน ThinkPad เก่า ๆ นั้นแม้แต่ Firefox ก็เหมือนจะใช้เวลาไม่รู้จบ และ LibreOffice ก็เป็นอีกหนึ่งในสามแพ็กเกจน่ากลัวสำหรับการคอมไพล์image นี้วางไว้ในฮาร์ดดิสก์เหมือนไฟล์ทั่วไปแล้วบูตตรง ๆ ผ่าน GRUB loopback ได้เลย และใน ISO เดียวนั้นก็มีสภาพแวดล้อมสำหรับพัฒนาเกือบครบ ทั้ง git, make, cc, rust, cmake, autotools
ตอนที่ฉันลองบูต NixOS ISO แบบ live เพื่อให้ได้ชุดยูทิลิตีใกล้เคียงกัน มันต้องใช้ดิสก์เกือบ 40~50GB ส่วน Gentoo แค่อัปเดตให้ใหม่ก็เพียงดาวน์โหลด ISO ครั้งเดียว และยังบูตได้เร็วมากบนโน้ตบุ๊กเก่าที่มี RAM 2GB เลยใช้งานได้อย่างน่าพอใจ
ฉันชอบ Gentoo หนึ่งในข้อดีหลักคือมันเป็นดิสโทรแบบ rolling release
ฉันเคยมีเซิร์ฟเวอร์ที่รันต่อเนื่องมา 15 ปีและใช้ Gentoo ถ้าไม่ได้เปลี่ยนผู้ให้บริการก็คงใช้ต่อไป การติดตั้งใหม่กลับง่ายกว่าย้าย image
กับ Debian หรือ Fedora ฉันไม่เคยโชคดีแบบนั้นเลย ถ้าต้องใช้ไลบรารีหรือเวอร์ชันแอปที่ไม่ได้ถูกแพ็กเกจไว้ล่วงหน้าสำหรับเวอร์ชันนั้น ทั้งสองตัวจะยุ่งยากมาก และหลังอัปเกรดก็ยังมักมีอะไรพังจนเกิด downtime อย่างเห็นได้ชัด
เซิร์ฟเวอร์ส่วนตัวของฉันอายุ 17 ปีแล้ว โชคดีที่ได้ผู้ให้บริการ VM ดี เลยรันด้วย uptime สูงมาเรื่อย ๆ และตลอด 17 ปี downtime รวมทั้งหมดน่าจะราว ๆ หนึ่งวัน เดิมทีฉันทำระบบนี้ขึ้นมาเพราะการโฮสต์อีเมลจาก IP บ้านเริ่มไม่ค่อยเป็นไปได้ในทางปฏิบัติ
ระบบเดสก์ท็อปของฉันเริ่มมาตั้งแต่ปี 2008 ก็ราว 18 ปีแล้ว ตอนนั้นย้ายไปใช้ user space แบบ 64 บิต และหลังจากนั้นก็ไม่เคยมีเหตุผลหรือแรงจูงใจให้สร้าง image ใหม่เลย ฮาร์ดแวร์เดิมแทบไม่เหลือแล้วนอกจากคีย์บอร์ด Datahand แต่มันก็เหมือนเรือของเธเซอุสที่ถูกเปลี่ยนทีละชิ้นมาตลอด
สำหรับฉัน Gentoo คือ ความโปร่งใส ทางเลือก และความยืดหยุ่น ฉันมักมีภาพชัดเจนเสมอว่าอยากให้คอมพิวเตอร์ทำงานอย่างไร และ Gentoo ก็เป็นเครื่องมือที่ดีในการทำให้สิ่งนั้นเป็นจริง
ฉันใช้ Gentoo บนเครื่องพัฒนาหลักมาราว 15 ปีแล้ว และย้ายมาจาก Debian unstable
พูดตามตรงก็อธิบายได้ไม่ค่อยชัดว่าทำไมถึงใช้และทำไมถึงชอบ แต่สุดท้ายคงหมายความว่า มันก็แค่ทำงานได้ดีและไม่รู้สึกว่าจำเป็นต้องเปลี่ยน
มันมีความไม่สะดวกเล็ก ๆ น้อย ๆ อยู่บ้าง ถ้าใช้
~amd64ก็จะได้ใช้ซอฟต์แวร์ใหม่ ๆ แต่จะใช้แพ็กเกจไบนารีอย่าง libreoffice ไม่ได้ และการคอมไพล์ก็อาจใช้เวลาพอสมควรบางครั้ง
emergeก็ติดขัดจนต้องลงมือแก้เองบ้าง แต่ประสบการณ์ก็ไม่ได้ต่างจากaptบน Debian sid มากนักสิ่งที่น่าประทับใจจริง ๆ คือ ความตอบสนอง ความสามารถทางเทคนิค และความตั้งใจแก้ปัญหา ของผู้ดูแลแพ็กเกจและชุมชนโดยรวม ขอแนะนำว่าในชีวิตนี้ลองส่งอะไรสักอย่างเข้าไปที่ bugs.gentoo.org ดูสักครั้ง
เคยคิดว่าจะลอง Chimera อยู่เหมือนกัน แต่ก็ยังแค่คิด ยังไม่ได้ลองจริง
เมื่อก่อนเคยใช้ Gentoo กับบริการ production ที่รัน BOINC
จำเป็นต้องคอมไพล์แพ็กเกจอย่าง PHP, Perl, Apache ด้วยแฟล็กเฉพาะที่ไม่มีในคลัง Fedora ปกติ และผู้ดูแลระบบคนก่อนคอมไพล์ทุกอย่างด้วยมือแล้วก็ไม่อัปเดตอีกเลย ในสถานการณ์แบบนั้น Portage เป็นทางออกที่ดีกว่ามาก
ฉันใช้ Gentoo เป็นเดสก์ท็อปหลักมา 14 ปีแล้ว และยังคงใช้ระบบเดิมที่สร้างไว้ตอนนั้นต่อเนื่องโดยแค่ย้ายไปตามเครื่องใหม่โดยไม่เคยติดตั้งใหม่เลย แนะนำได้อย่างมั่นใจ มันแข็งแกร่งมาก
ตอนนั้นมีประสบการณ์กับ Linux แค่ไม่กี่เดือนและย้ายมาตรงจาก Ubuntu แต่แค่กระบวนการติดตั้งก็ทำให้ได้เรียนรู้อะไรมากมายแล้ว ทำได้เพราะเอกสารยอดเยี่ยม และแนวทางที่ต้องลงมือเองก็ช่วยให้ความรู้ Linux ของฉันเพิ่มขึ้นมากตลอดหลายปี
การอัปเกรดระบบที่คอมไพล์เองสามารถรันเบื้องหลังด้วยโหลดต่ำได้ และเสถียรกว่าระบบแบบไบนารีมาก โดยเฉพาะเครื่องมืออย่าง
crossdevที่สามารถสร้าง toolchain สำหรับ cross-compile แบบปรับแต่งเองได้ด้วยคำสั่งเดียวตลอดหลายปี Gentoo ไม่เคยทำให้ฉันผิดหวังเลย ถ้ายังไม่เคยใช้ก็ควรลองดูสักครั้งจริง ๆ
ฟังดูเป็นเป้าหมายที่ยอดเยี่ยมทั้งหมด และเป็นโปรเจกต์ที่เจ๋งมาก ฉันไม่ได้ใช้ Gentoo มาหลายสิบปีแล้ว แต่ยังมีความทรงจำดี ๆ อยู่กับการปล่อยให้พีซีคอมไพล์อะไรบางอย่างข้ามคืน แล้วตอนเช้ามาดูพบว่ามันหา dependency ไม่เจอและล้มเหลวตอนประมาณ 80% ตอนนั้นไม่สนุกเลยแม้แต่น้อย แต่ตอนนี้กลับรู้สึกคิดถึง
อาจถึงเวลาลองใช้อีกสักรอบ ถ้า “Gentoo aims to be fun” ก็น่าจะสนุกจริง ๆ
ด้านหนึ่งก็คือคอมพิวเตอร์สมัยนี้แรงขึ้นมาก จนแพ็กเกจส่วนใหญ่คอมไพล์เสร็จเร็ว แต่อีกด้านหนึ่งก็ยังมีพวกยักษ์ที่ฆ่าเครื่องได้อยู่ โดยเฉพาะยักษ์สาย C++
เหตุผลที่ใช้ Gentoo บน CI server ไม่ใช่เรื่องประสิทธิภาพ แต่เป็นเพราะมันง่ายมากที่จะ apply patch ให้แพ็กเกจบางตัว หรือ rebuild ด้วยแฟล็กเฉพาะ แค่ใส่ไว้ใน
/etc/portage/packagesก็จบยังคิดถึงอยู่เลยว่า Portage เคยดีแค่ไหน ทั้งการติดตั้งแบบขนาน ข้อความผิดพลาดที่เข้าใจได้ โครงสร้างที่ให้ผู้ใช้แพตช์ได้เพียงแค่วางไฟล์ไว้ในไดเรกทอรีย่อยที่เหมาะสมใต้
/etc/portage/build sandbox และความสามารถในการปรับแต่งต่าง ๆแต่พอถึงจุดหนึ่งฉันก็ไม่อยากรอการคอมไพล์อีกต่อไปแล้ว ถึงแม้แพ็กเกจใหญ่ ๆ จะมีเป็นแพ็กเกจไบนารีให้ใช้ก็ตาม
::gentooสำหรับโปรไฟล์หลักจะมี แพ็กเกจไบนารี แล้ว ซึ่งถือว่าดีมากแต่ถ้าเริ่มเปลี่ยน USE flags ก็ยังต้องกลับไป build เองอยู่ดี
ฉันเจอ Gentoo ครั้งแรกเมื่อประมาณ 20 ปีก่อน ตอนเป็นนักเรียนมัธยม พอบอกพี่คนหนึ่งว่าอยากเรียนรู้ Linux เขาก็บอกให้ติดตั้ง Gentoo ตั้งแต่ stage1
คำแนะนำเดียวของเขาคือให้พิมพ์คู่มือออกมาก่อนเริ่ม เพราะถ้าการติดตั้งพังขึ้นมา คุณจะไม่มีเบราว์เซอร์อยู่ในกระเป๋าให้เปิดดู
ตอนนั้นไม่รู้เลยว่ากำลังเริ่มอะไรอยู่ เกือบ 2 สัปดาห์ที่พีซีที่บ้านแทบใช้งานไม่ได้จริง ๆ ทุกคืนฉันสู้กับการติดตั้ง แล้ววันถัดมาก็ไปโรงเรียน อ่านเอกสารจากคอมพิวเตอร์ที่โรงเรียน ถามพี่คนนั้นว่าฉันทำอะไรพังไปบ้าง แล้วกลับบ้านมาลองใหม่
พอถึงจุดหนึ่งทุกอย่างก็เริ่มเข้าใจ ตอนจบฉันได้เรียนรู้ไปโดยบังเอิญว่า
chrootคืออะไร วิธี build kernel แบบงู ๆ ปลา ๆ ว่า /etc/fstab สำคัญแค่ไหน และการทำให้เครื่องบูตไม่ขึ้นนั้นง่ายเพียงใด ระหว่างทางนั้นก็ได้หัดใช้ Vim ไปด้วย และใช้มันต่อมาจนถึงทุกวันนี้ตอนนี้ฉันไม่ได้ใช้ Gentoo แล้ว แต่ก็ยังรู้สึกขอบคุณสำหรับช่วงเวลา 2 สัปดาห์นั้นอยู่เสมอ
มีเหตุผลดี ๆ มากมายจริง ๆ ตอนนี้ฉันกำลังสร้าง homelab ใหม่ และวางแผนจะลง Alpine Linux หรือ Gentoo บน VisionFive 2 (RISC-V/8GB RAM)
ทั้งคู่รองรับอยู่แล้ว แต่ Gentoo ใช้ systemd ได้ ซึ่งฉันชอบมากกว่า OpenRC และเพราะฉันเคยใช้ Gentoo มาแค่ไม่กี่ครั้ง มันก็น่าจะสนุกดี