GNU Stow ทำให้ฉันกลายเป็นคนที่คอยเปลี่ยนดิสโทร Linux อยู่ตลอดเวลา
การสลับใช้ดิสโทรไม่เหมาะสำหรับคนใจอ่อน แต่สำหรับผู้ใช้ลินุกซ์จำนวนหนึ่ง มันแทบจะเป็นกีฬาชนิดหนึ่ง ไม่มีดิสโทรลินุกซ์สองตัวที่เหมือนกัน และแต่ละตัวก็มีข้อดีของตัวเอง ดังนั้นการทำให้เป็นนิสัยจึงไม่ใช่เรื่องยากเมื่อตอนที่คุณเรียนรู้วิธีทำมันแล้ว
ถ้าคุณอยากลองใช้ GNU Stow เป็นเครื่องมือที่ดีที่จะเก็บไว้ในคลังเครื่องมือของคุณ
GNU Stow คืออะไร?
เครื่องมือโปรดของคนชอบเปลี่ยนดิสโทร
GNU Stow เป็นตัวจัดการฟาร์มซิมลิงค์ที่ทรงพลังและน้ำหนักเบาซึ่งกลายเป็นเครื่องมือมาตรฐานภายในชุมชน Linux และ Unix พัฒนาขึ้นครั้งแรกในปี 1990 จุดประสงค์หลักคือเพื่อจัดการการติดตั้งแพ็กเกจซอฟต์แวร์ที่คอมไพล์จากซอร์สโค้ด
ก่อนที่จะมีการใช้ตัวจัดการแพ็กเกจสมัยใหม่อย่างแพร่หลาย เช่น APT หรือ Pacman ผู้ดูแลระบบจะติดตั้งโปรแกรมลงในไดเร็กทอรีที่ศูนย์กลาง มักอยู่ที่ /usr/local/stow และใช้ Stow เพื่อสร้างลิงก์เชิงสัญลักษณ์จากตำแหน่งนั้นไปยังเส้นทางไฟล์ปฏิบัติการมาตรฐาน เช่น /usr/local/bin วิธีการนี้ช่วยป้องกันความขัดแย้งของไฟล์และทำให้การถอนการติดตั้งซอฟต์แวร์เป็นเรื่องง่ายเพียงแค่ลบลิงก์เชิงสัญลักษณ์และลบไดเร็กทอรีแพ็กเกจแยกต่างหาก
ในช่วงหลายปีที่ผ่านมา ชุมชนลินุกซ์ได้ปรับเปลี่ยนยูทิลิตี้นี้เพื่อนำไปใช้แก้ปัญหาที่แตกต่างออกไปโดยสิ้นเชิง: การจัดการไฟล์การตั้งค่าผู้ใช้ ซึ่งเรียกตามภาษาพูดกันว่า dotfiles แอปพลิเคชันและเครื่องมือบรรทัดคำสั่งสมัยใหม่จะเก็บการตั้งค่าที่เฉพาะกับผู้ใช้ในไฟล์และไดเรกทอรีที่ซ่อนอยู่ภายในโฟลเดอร์บ้าน
เมื่อผู้ใช้ปรับแต่งสภาพแวดล้อมของตน การติดตามไฟล์ที่กระจัดกระจายเหล่านี้จะยิ่งยากขึ้น GNU Stow พยายามแก้ปัญหานี้โดยอนุญาตให้ผู้ใช้นำการตั้งค่าที่ปรับแต่งแล้วทั้งหมดไปยังไดเรกทอรีศูนย์กลางเดียว ซึ่งมักจะถูกเรียกอย่างง่าย ๆ ว่า dotfiles ภายในที่เก็บศูนย์กลางนี้ ผู้ใช้จะสร้างไดเรกทอรีย่อยสำหรับแต่ละแอปพลิเคชัน เช่น bash, vim, หรือ git และใส่ไฟล์การตั้งค่าที่เกี่ยวข้องไว้ภายในไดเรกทอรีเหล่านั้น
เมื่อผู้ใช้สั่งรันคำสั่ง Stow โดยมุ่งเป้าไปที่หนึ่งในไดเรกทอรีย่อยเหล่านี้ โปรแกรมจะอ่านเนื้อหาโดยอัตโนมัติและสร้างลิงก์เชิงสัญลักษณ์ที่เหมือนกันในไดเรกทอรีหลัก ซึ่งโดยปกติคือโฟลเดอร์บ้านของผู้ใช้ สิ่งนี้ทำให้ระบบปฏิบัติการและแอปพลิเคชันเข้าใจผิดว่ไฟล์การตั้งค่าอยู่ในตำแหน่งเริ่มต้นที่กระจายอยู่ตามที่ควรอยู่ ในขณะที่ไฟล์เหล่านั้นจริงๆ ถูกเก็บไว้อย่างปลอดภัยในโฟลเดอร์เดียวที่เรียบร้อยและจัดการได้ง่าย
มันช่วยได้มากแค่ไหนสำหรับการกระโดดดิสโทร?
มันจัดการกับปัญหาที่น่ารำคาญที่สุดขณะสลับดิสโทร
ลองถามผู้คนในชุมชนที่ชอบเปลี่ยนดิสโทรบ่อย ๆ คุณจะพบว่าข้อเสียที่สำคัญที่สุดของการปฏิบัตินี้น่าจะเป็นกระบวนการที่ซ้ำซากและน่าเบื่อในการตั้งค่าเดสก์ท็อปและเครื่องมือบรรทัดคำสั่งใหม่ตั้งแต่ต้นหลังจากติดตั้งทุกครั้ง ซึ่งนี่เองคือปัญหาที่ GNU Stow พยายามแก้ไข คีย์ลัดแบบกำหนดเอง alias ที่ซับซ้อนของ shell ธีมของตัวแก้ไขข้อความ และพฤติกรรมของตัวจัดการหน้าต่างมักจะสูญหายเว้นแต่จะสำรองข้อมูลอย่างละเอียด ด้วยการรวม GNU Stow กับระบบควบคุมเวอร์ชันเช่น Git ผู้ที่ชื่นชอบการเปลี่ยนดิสโทรสามารถเปลี่ยนสภาพแวดล้อมผู้ใช้ที่กำหนดค่าไว้ทั้งหมดให้กลายเป็น repository ที่พกพาได้สูง
แทนที่จะคัดลอกและวางไฟล์ที่ซ่อนอยู่ด้วยตนเองจาก USB drive หรือ cloud storage ไปยังไดเรกทอรีที่กระจายอยู่ตามระบบไฟล์ใหม่ ผู้ใช้เพียงแค่โคลน Git repository ของตนลงบนระบบปฏิบัติการที่ติดตั้งใหม่ เมื่อดาวน์โหลด repository เสร็จแล้ว การไปที่โฟลเดอร์กลางและรันคำสั่ง Stow เพียงคำสั่งเดียวก็จะติดตั้งไฟล์คอนฟิกทั้งหมดทันที ยูทิลิตี้นี้สร้าง symbolic link ที่จำเป็นอย่างละเอียดในเวลาเพียงเสี้ยววินาที ทำให้ workflow ที่ปรับแต่งอย่างสูงของผู้ใช้กลับมาทันที ไม่ว่าผู้ใช้เพิ่งติดตั้ง Arch Linux, Ubuntu, หรือ Fedora
นอกจากนี้ GNU Stow ยังช่วยลดความเสี่ยงในการเขียนทับไฟล์ระบบเริ่มต้นโดยไม่ตั้งใจอย่างมาก เพราะมันจะปฏิเสธการสร้างลิงก์สัญลักษณ์อย่างสุภาพหากไฟล์ที่ขัดแย้งกันมีอยู่แล้วในปลายทาง พฤติกรรมที่คาดเดาได้และไม่ทำลายนี้ทำให้ผู้ใช้สามารถติดตั้งการตั้งค่าของตนบนระบบที่ไม่คุ้นเคยได้อย่างมั่นใจ
ฉันควรใช้มันไหม?
ไม่ได้ทุกคนที่จะคอยเปลี่ยนดิสโทรอยู่เรื่อย ๆ นะ
เหมือนเช่นเคย มันขึ้นอยู่กับ หากคุณเป็นผู้ใช้ที่พึ่งพาการตั้งค่าเริ่มต้นมากและแทบไม่ปรับแต่งไฟล์การกำหนดค่าที่ซ่อนอยู่ การนำตัวจัดการฟาร์มซิมลิงก์เข้ามาในระบบของคุณอาจเพิ่มความซับซ้อนที่ไม่จำเป็นต่อกิจวัตรประจำวันของคุณ อย่างไรก็ตาม หากคุณมักปรับแต่งสภาพแวดล้อมเชลล์ของคุณอย่างบ่อยครั้ง ปรับแก้ตัวแก้ไขข้อความอย่างหนักเช่น Neovim หรือเปลี่ยนพฤติกรรมของตัวจัดการหน้าต่างแบบไทล์อยู่ตลอด การนำ GNU Stow มาใช้ถือเป็นขั้นตอนถัดไปที่มีเหตุผลอย่างมาก
มันมีประโยชน์เป็นพิเศษสำหรับนักพัฒนา ผู้ดูแลระบบ และผู้ที่ชื่นชอบเทคโนโลยีที่ทำงานบนหลายเครื่อง เช่น เดสก์ท็อปที่บ้านและโน้ตบุ๊กระหว่างเดินทาง เนื่องจากมันรับประกันประสบการณ์การคอมพิวเตอร์ที่สม่ำเสมอในทุกอุปกรณ์ เส้นโค้งการเรียนรู้ที่เกี่ยวข้องกับ GNU Stow นั้นค่อนข้างอ่อนโยนเมื่อเทียบกับเครื่องมือจัดการการกำหนดค่าที่ใช้หนักเช่น Ansible หรือ Puppet ซึ่งถูกออกแบบมาสำหรับการปรับใช้เซิร์ฟเวอร์ขนาดองค์กรมากกว่าสภาพแวดล้อมเดสก์ท็อปส่วนบุคคล Stow ปฏิบัติตามปรัชญา Unix อย่างเคร่งครัดในการทำสิ่งใดสิ่งหนึ่งและทำมันอย่างยอดเยี่ยม: การจัดการลิงก์สัญลักษณ์.
แม้ว่าปัจจุบันจะมีตัวจัดการไฟล์ dotfile ใหม่ที่สร้างขึ้นโดยเฉพาะ เช่น Chezmoi หรือ YADM ซึ่งมีคุณสมบัติขั้นสูง เช่น การเข้ารหัสในตัวสำหรับรหัสผ่านที่สำคัญและความสามารถในการสร้างเทมเพลตสำหรับระบบปฏิบัติการต่างๆ แต่ Stow ยังคงเป็นที่นิยมเนื่องจากความโปร่งใสและการพึ่งพาน้อยที่สุด มันไม่จำเป็นต้องให้คุณเรียนรู้ภาษาการกำหนดค่าใหม่หรือปรับตัวเข้ากับกรอบงานที่เข้มงวด คุณเพียงแค่จัดระเบียบไฟล์ของคุณลงในโฟลเดอร์และปล่อยให้โปรแกรมเชื่อมโยงไฟล์เหล่านั้น
การสลับใช้ดิสโทรไม่จำเป็นต้องยาก
หากคุณให้ความสำคัญกับวิธีที่โปร่งใส น้ำหนักเบา และทนทานอย่างยิ่งในการปกป้องสภาพแวดล้อมดิจิทัลของคุณจากความล้มเหลวของฮาร์ดแวร์หรือการติดตั้งระบบปฏิบัติการใหม่บ่อย ๆ การนำ GNU Stow มารวมในชุดเครื่องมือของคุณเป็นแนวทางปฏิบัติที่แนะนำอย่างมาก ดังนั้นจึงควรลองใช้ดู







