คุณพยายามติดตั้งบางอย่าง แต่ Ubuntu นำไม่เข้า Apt บอกว่า "no installation candidate" หมายความว่าอะไร สาเหตุคืออะไร และแก้ได้ไหม? นี่คือวิธีแก้ไข
ความหมายคืออะไร?
หากพยายามติดตั้งแพ็กเกจที่ Apt ไม่รู้จัก จะบอกว่า unable to locate it เกิดได้หากพิมพ์ชื่อแพ็กเกจผิด หรือพยายามติดตั้งแอปพลิเคชันที่ไม่อยู่ใน repository
ยังมีกรณี missing packages อีกแบบ: Apt หาไม่เจอในตำแหน่งปกติ แต่รู้ว่ามันมีอยู่ เพราะแพ็กเกจอื่น reference มัน
ในกรณีเหล่านี้ ปัญหาคือ Apt ไม่รู้ว่าจะหาและได้มันยังไง
แก้ไขอย่างไร?
เริ่มตรวจสอบว่า entry ถูกลบระหว่าง update/upgrade ล่าสุดหรือไม่ ไม่ต้องหาใน logs ที่ cryptic แค่รัน update/upgrade อีกครั้งเพื่อดึง latest versions ของซอฟต์แวร์ติดตั้งแล้ว ระหว่างนั้น database ของ Apt จะอัปเดต แล้วลองติดตั้งแพ็กเกจอีกครั้ง
ถ้ายังไม่ได้ แพ็กเกจนั้นน่าจะอยู่ใน repository ที่ยังไม่ได้ list เพียงหาและเพิ่มเข้า software sources ของ distro
อินเทอร์เน็ตเป็นเพื่อนในการหา missing repository เจอแล้ว เพิ่ม repository เข้า Ubuntu ด้วยคำสั่ง:
sudo add-apt-repository REPOSITORY_PPA
บางกรณีหายาก ปัญหาไม่ใช่ missing repository แตเป็น renamed package ตรวจสอบแพ็กเกจชื่อคล้ายที่มีอยู่ด้วยคำสั่ง:
apt-cache search PACKAGE_NAME
ขึ้นอยู่กับสิ่งที่หา อาจได้ list ซอฟต์แวร์เยอะมาย มี trick จำกัดผลลัพธ์: ปกติ package names ไม่เปลี่ยนชื่อ radically สิ่งที่เปลี่ยนอาจเป็น version number หรือ secondary keyword โชคดีที่ apt-cache รองรับ Regex ดังนั้น ค้นหาแพ็กเกจที่ขึ้นต้นด้วย keyword เฉพาะได้
ตัวอย่าง ใส่คำสั่งข้างต้นด้วย "firefox" เป็น PACKAGE_NAME จะเห็นโหลด entries ที่มีคำว่า firefox ในชื่อหรือคำอธิบาย ลองคำสั่งนี้แทน:
apt-cache search "^PACKAGE_NAME*"
คำสั่งนี้คืนรายการแพ็กเกจทั้งหมดที่ชื่อขึ้นต้นด้วย PACKAGE_NAME หากแทน PACKAGE_NAME ด้วย firefox จะเห็นแพ็กเกจทั้งหมดที่เริ่มต้นด้วย "firefox" ระหว่างนั้นน่าจะพบ alternative ที่ต้องการ
เคยเจอปัญหา "no installation candidate" ไหม? ถ้าเจอ แก้ยังไง? บอกเราใน comments ด้านล่าง อ่านต่อเพื่อเรียนรู้ตั้งค่า git username และ email ใน Ubuntu