Personal Package Archives (PPAs) นั้นยอดเยี่ยม คุณได้รับซอฟต์แวร์หรือโปรแกรมที่ใหม่กว่าที่ไม่มีอยู่ในที่เก็บเริ่มต้นของการแจกจ่ายของคุณ แต่ในบางครั้ง คุณจะต้องลบ PPA ด้วยเหตุผลหลายประการ วิธีที่คุณทำสิ่งนี้ขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ โดยปกติ คุณจะพบว่าตัวเองอยู่ในหนึ่งในสองสถานการณ์ต่อไปนี้:
- คุณต้องการลบ PPA ออกจากรายการแหล่งที่มาของซอฟต์แวร์และนำแพ็คเกจที่ติดตั้งออก
- คุณต้องการลบ PPA ออกจากรายการแหล่งที่มาของซอฟต์แวร์และเปลี่ยนกลับเป็นแพ็กเกจเริ่มต้นที่ได้รับจากการแจกจ่ายของคุณ
มาสำรวจสถานการณ์แรกกัน
ลบ PPA และแพ็คเกจ
ตรวจสอบให้แน่ใจว่าคุณได้ติดตั้งยูทิลิตี้ "add-apt-repository" แล้ว โดยค่าเริ่มต้นควรจะพร้อมใช้งานบนการแจกแจงแบบใช้ Ubuntu ส่วนใหญ่ แต่เพื่อให้แน่ใจว่ารันคำสั่งต่อไปนี้
sudo apt install software-properties-common
ถัดไป คุณต้องมีชื่อที่แน่นอนของ PPA ที่คุณต้องการนำออก หากคุณลืม คุณสามารถ Google ได้โดยเปิดหน้า Launchpad ที่โฮสต์และค้นหาคำแนะนำในการติดตั้ง คุณจะพบชื่อที่ถูกต้องที่นั่น (เช่น “ppa:libreoffice/ppa”)
หรือแทนที่จะค้นหาในเว็บ คุณสามารถค้นหารายการแหล่งที่มาของซอฟต์แวร์เพื่อดูว่า PPA ใดที่คุณเปิดใช้งานอยู่
grep -r -i ppa /etc/apt/
ถัดไป คุณสามารถเปิดลิงก์ที่ขึ้นต้นด้วย “https://ppa.launchpad.net” และค้นหาชื่อ PPA ที่คุณต้องการได้
แทนที่ “NAME_OF_PPA” ในคำสั่งถัดไปด้วยชื่อจริงที่คุณพบก่อนหน้านี้ ตัวอย่างเช่น คำสั่งสุดท้ายอาจมีลักษณะดังนี้:sudo add-apt-repository --remove ppa:libreoffice/ppa
.
sudo add-apt-repository --remove NAME_OF_PPA
รีเฟรชข้อมูลของผู้จัดการแพ็คเกจ
sudo apt update
สุดท้าย ให้ลบแพ็คเกจและการขึ้นต่อกันด้วย
sudo apt autoremove NAME_OF_PACKAGE
หลังจากที่คุณป้อนคำสั่งนี้ ให้ใส่ใจกับรายการแพ็คเกจที่จะลบออก หากคุณเห็นสิ่งที่คุณต้องการในรายการนั้น ให้ใช้ remove
ตัวเลือกของ apt (แทน autoremove
):
sudo apt remove NAME_OF_PACKAGE
ค้นหาแพ็คเกจทั้งหมดที่ติดตั้งจาก PPA
หากตัวเลือกการลบอัตโนมัติดูเหมือนจะไม่ถอนการติดตั้งแพ็คเกจทั้งหมดที่มาจาก PPA นั้น คุณอาจต้องลบออกด้วยตนเอง
ติดตั้งยูทิลิตี้ต่อไปนี้
sudo apt install apt-forktracer
ตอนนี้ คุณจะพบแพ็คเกจทั้งหมดที่ติดตั้งในระบบของคุณซึ่งมาจาก PPA
apt-forktracer | grep -i ppa | awk '{print $1}'
ถัดไป คุณสามารถลบออกได้ด้วย sudo apt remove
หรือ sudo apt autoremove
. autoremove
จะพยายามถอนการติดตั้งแพ็คเกจที่คุณระบุโดยอัตโนมัติ รวมถึงการขึ้นต่อกันทั้งหมด remove
จะถอนการติดตั้งแพ็คเกจที่คุณระบุ
หากคุณแน่ใจว่าสามารถลบแพ็คเกจทั้งหมดที่แสดงโดย apt-forktracer ก่อนหน้านี้ได้ คุณสามารถใช้คำสั่งเช่น
sudo apt remove $(apt-forktracer | grep -i ppa | awk '{print $1}')
อย่าลืมตรวจสอบอีกครั้งว่าสิ่งใดจะถูกนำออกเพื่อที่คุณจะได้ไม่ต้องถอนการติดตั้งสิ่งที่คุณต้องการโดยไม่ได้ตั้งใจ
ลบ PPA และเปลี่ยนแพ็คเกจกลับเป็นเวอร์ชันของการแจกจ่าย
เช่นเดียวกับในส่วนก่อนหน้า คุณต้องทราบชื่อที่แน่นอนของ PPA ก่อน หากคุณไม่ทราบ ให้ลองใช้วิธีการด้านบน
ติดตั้ง ppa-purge
sudo apt install ppa-purge
เรียกใช้สคริปต์ ppa-purge ซึ่งจะลบ PPA ออกจากที่เก็บซอฟต์แวร์ของคุณและแทนที่แพ็คเกจ PPA ที่ติดตั้งด้วยแพ็คเกจการแจกจ่ายของคุณ แน่นอนว่าสิ่งนี้ต้องการให้การแจกจ่าย Linux ของคุณมีแพ็คเกจเหล่านี้ ในกรณีส่วนใหญ่ นี่หมายความว่าซอฟต์แวร์ที่ใหม่กว่าจะได้รับการดาวน์เกรดเป็นเวอร์ชันเก่า
sudo ppa-purge NAME_OF_PPA
ตัวอย่างคำสั่ง:sudo ppa-purge ppa:libreoffice/ppa
.
บทสรุป
ในระบบ "สะอาด" คำสั่งข้างต้นควรทำงานโดยไม่มีปัญหา อย่างไรก็ตาม ในระบบอื่นๆ คุณอาจพบข้อขัดแย้งบางอย่างที่สร้างขึ้นโดยแพ็คเกจที่ไม่เข้ากัน โชคไม่ดีที่ไม่มีวิธีแก้ปัญหาทั่วไป เนื่องจากขึ้นอยู่กับสถานการณ์ที่แน่นอนของคุณ ส่วนใหญ่สามารถแก้ไขได้โดยการลบ/ดาวน์เกรด/อัพเกรดแพ็คเกจเหล่านั้น เพื่อหลีกเลี่ยงประสบการณ์ดังกล่าวในอนาคต คุณสามารถอ่าน Don't Break Debian เพื่อทราบวิธีทำให้ระบบปฏิบัติการของคุณอยู่ในสถานะ "สะอาด"