Arch Linux เป็น Linux distro ที่ให้คุณมีดจำหนี้ (scalpel) และพูดว่า "ลองทำดู" โดยไม่ได้ถือมือมาก כמו distro อื่นๆ เช่น Debian/Fedora toolset เริ่มต้น รวมถึง core/extra/community repositories ที่ package manager ลายเซ็นให้ อาจจำกัด แต่เป็นเจตนา
ขึ้นอยู่กับคุณจะเพิ่มอะไร และที่นี่ Arch User Repository (AUR) มีประโยชน์ เป็น repository ให้ผู้ใช้สร้าง PKGBUILD scripts เอง และสร้างแพ็กเกจที่ไม่ได้อยู่ใน official repositories ถ้าคิดว่าจะได้ WhatsApp for Linux, Session, Slack หรือแอปอื่นๆ บน Arch ยังไง AUR คือที่ตั้งของทั้งหมดนี้
วิธีเร็วที่สุดติดตั้งแพ็กเกจจาก AUR คือดึง PKGBUILD จาก repository เอง และ compile ด้วย makepkg ของ Arch แต่คนเยอะไม่ชอบผ่านความลำบากนี้ นี่คือที่ AUR clients (หรือ AUR helpers) เข้ามาช่วย ทำให้ติดตั้งแอปง่ายมาก
มี AUR helpers หลายตัว นี่คือ 4 ตัวที่ยอดนิยมที่สุด (จริงๆ มี 5 ตัวในบทความ)
1. Yay
เขียนด้วย Go, Yay (Yet Another Yogurt) เป็น helper อันทรงพลัง แก้ dependencies ให้ และเข้าถึง AUR อย่างรวดเร็วและอัตโนมัติ ใครเคยใช้ Pacman จะใช้ Yay ได้ทันที นี่คือเหตุผลที่ Arch-based distros เช่น EndeavourOS และ Garuda Linux ใช้ helper ตัวเล็กนี้เป็น standard window เข้าสู่ AUR ของ Arch
Dependency resolution อันทรงพลังทำให้มันอาจเป็น utility ที่ดีที่สุดสำหรับ beginner
ทั้งนั้น มีข้อแม้: เว้นแต่ config ให้ตอบ prompt บางอย่างอัตโนมัติ (เช็ค manual สำหรับแฟล็ก --answerclean, --answerdiff, --answeredit, และ --answerupgrade) มันจะถามตลอดว่าอยากดูรายละเอียดเพิ่มเติมของแพ็กเกจที่ติดตั้งไหม ทุกครั้งที่ใช้ แต่บางคนมองว่าเป็นข้อได้เปรียบ เพราะให้ granular control มากกว่าบนกระบวนการติดตั้ง/อัปเกรดแพ็กเกจ
ติดตั้ง
ติดตั้ง Yay ใน Arch Linux ด้วยคำสั่ง:
sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/yay-git.git cd yay-git makepkg -si
แค่นี้แหละ
2. Paru
Vim เป็น editor โปรด? ชอบแก้ไข scripts อย่างรวดเร็วก่อนติดตั้ง? เป็นคนชอบ tinker ทางออกจากสถานการณ์แย่? ถ้าตอบ "yes" ทั้งหมด อาจชอบ Paru มากกว่า Yay
คุ้มค่าที่กล่าว: Paru และ Yay เป็น tool เดียวกันในทางฟังก์ชัน (ยกเว้น Paru เขียนด้วย Rust) แต Paru ใช้ขั้นตอนน้อยกว่า หาแพ็กเกจใน AUR พร้อมพร้อมให้เลือก version ที่อยากได้ (คล้าย Yay ให้เลือก binary, compiled version, และ "git" version ใน active development) แล้วแสดงเนื้อหา PKGBUILD script ให้ review
อาจไม่ granular เท่า Yay แต่นำเสนอทุกอย่างที่ Yay ทำ แบบ no-nonsense ที่เกี่ยวข้องกับ context ที่ใช้งาน
ติดตั้ง
ติดตั้ง Paru ใน Arch Linux ด้วยคำสั่ง:
sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/paru.git cd paru makepkg -si
แค่นี้แหละ
3. Pacaur
Pacaur เป็น AUR helper ที่ใช้ cower เป็น backend หนึ่งใน AUR helpers ที่ซับซ้อนมาก และมักถูกเลือกโดย advanced users ที่ต้องการ automate repetitive tasks ทั้งหมด ตัวอย่าง: มี AUR packages ติดตั้งเยอะมาก? หวาดกลัวนั่งแป้นพิมพ์เลือก options? ด้วยตัวนี้ จะแค่ใส่รหัสผ่านบอกโปรแกรมทุกอย่างที่ต้องรู้ หลังจากนั้นทุกอย่างราบรื่น
ติดตั้ง
ติดตั้ง Pacaur ใน Arch Linux ด้วยคำสั่ง:
sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/pacaur.git cd pacaur makepkg -si
แค่นี้แหละ
4. Trizen
ไม่สนใจ Pacaur แต่มองหาอะไร lightweight? ลอง Trizen เขียนด้วย Perl แทน Bash (ให้ flexibility มากกว่า) เทียบกับ Pacaur ให้ syntax เรียบง่าย flags ส่วนใหญ่ย่อเป็นตัวอักษรเดียว (-U upgrade, -R removal, -Sค> sync) คุ้นเคย Pacran อยู่แล้ว อย่ากลัว! เหมือน AUR helpers อื่นๆ ในลิสต์ Trizen ให้ใช้ Pacman flags ได้
เพราะโปรแกรมเขียนด้วย Perl แทน Bash ไม่สามารถ execute code แบบ silent ได้ ทำให้ security โดยรวมของการติดตั้งแพ็กเกจจาก AUR สูงขึ้น
สิ่งที่แยก Trizen จากที่เหลือในลิสต์คือ ระดับ granularity ที่บ้าคลั่ง ไม่เพียงแค่ให้แก้ PKGBUILD script สำหรับแต่ละแพ็กเกจที่ติดตั้งทันที แต่มันยังให้แก้ desktop entry และ shell scripts executable อื่นๆ ที่มาด้วย
โปรแกรมนี้ไม่คุ้นเคยเท่าอื่นๆ ในลิสต์ แต่มันคุ้มค่าที่ลอง
ติดตั้ง
ติดตั้ง Trizen ใน Arch Linux ด้วยคำสั่ง:
sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/trizen.git cd trizen makepkg -si
แค่นี้แหละ
5. Pamac
คิดว่า package managers บน Arch มีแค่ terminal-based? คิดใหม่! ทำโดย Manjaro สำหรับ distro เน้น ease-of-use Pamac ให้ GUI front-end สำหรับ package management ทุกอย่าง ตั้งแต่ official repositories ของ Arch ไปจนถึง AUR AUR-inclusive editions มี 2 รสชาติ:
- pamac-aur - รวมแค่ accessibility สำหรับ AUR
- pamac-all - เข้าถึงไม่แค่ AUR แต่ยัง flatpak และ snap repositories
ถ้าคุณใหม่มากกับ Arch และไม่อยากต้องมอง terminal ตลอดเวลาจะจัดการแอปที่ติดตั้ง Pamac จะให้ GUI-based experience ที่ดีที่สุด
ข้อแม้จริงของ Pamac คือ ไม่ยืดหยุ่นเท่าตอนแก้ PKGBUILD scripts ที่แตก ถ้าอยากได้โอกาสแก้สิ่งที่ผิดพลาดระหว่างติดตั้งแพ็กเกจ แนะนำติดตั้ง AUR helper อื่นในลิสต์นี้ไปกับ Pamac
ติดตั้ง
ติดตั้ง Pamac ใน Arch Linux ด้วยคำสั่ง:
sudo pacman -S --needed base-devel git git clone https://aur.archlinux.org/pamac-all.git cd pamac-all makepkg -si
แค่นี้แหละ
คำถามที่พบบ่อย
1. AUR helpers ปลอดภัยไหม?
คุ้มค่าที่บอก: AUR ไม่ได้สร้างมาเพื่อปลอดภัยโดยธรรมชาติ แม้แพ็กเกจแย่จะโหวตหายไปเร็ว แต่น่ากลัวไม่ใช่แพ็กเกจอันตราย ไม่ใช่ทุก package maintainer จัดการ update ได้สมบูรณ์ ณ ขณะเขียนบทความนี้ ตัวอย่าง Balena Etcher's PKGBUILD มีปัญหา epoch ผู้อัปเดต AUR packages จะได้ prompt อัปเดต "balena-etcher" จนกว่าจะแก้ไข
สิ่งนั้นว่า นอกจาก hilarity ที่เกิดบ้างกับ package ที่ดูแลไม่ดี ไม่ควรคาดหวังว่า system จะแตกเพราะนี้ สิ่งที่ มี อันตรายบ้าง คือ ความเป็นไปได้ของ partial upgrades ถ้า AUR helper crash ระหว่างอัปเดต official arch repos อาจได้ instability จนกว่าจะรัน full upgrade ให้ถูกต้อง
หลีกเลี่ยงด้วยการ upgrade ด้วย Pacman ก่อน (pacman -Syu) แล้วค่อยใช้ AUR helper upgrade AUR packages!
2. ใช้ multiple AUR helpers พร้อมกันปลอดภัยไหม?
ตราบใดที่ไม่พยายามใช้พร้อมกัน (เช่น เปิด 2 terminals รัน Pacaur ตัว และ Yay อีกตัว) คอมพิวเตอร์จะไม่ระเบิด แม้ติดตั้งทั้งคู่ AUR helpers ควรมองว่าเป็น wrappers สำหรับ Pacman เพิ่ม AUR capabilities ขึ้นไป เพราะ query ไฟล์เดียวกันบนระบบ ไม่ควร interfere กัน ปัญหาเดียวคือ maintain cache สำหรับแต่ละ AUR helper ไม่ดีตอน storage จำกัด
3. AUR helper ไหน user-friendly ที่สุด?
Yay หรือ Paru ที่ beginner-friendly กว่าน่าจะเป็นตัวเลือกดี บรรลุ balance ดีระหว่างให้ control สำหรับ explore AUR และหลีกเลี่ยง information overload ที่ overwhelming สำหรับคนใหม่ Linux/Arch