Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบ >> Linux

วิธีลบ PPA ในระบบที่พัฒนาจาก Ubuntu

Personal Package Archives (PPAs) มีประโยชน์มาก คุณจะได้ซอฟต์แวร์เวอร์ชันใหม่กว่าหรือโปรแกรมที่ไม่มีในไฟล์เก็บ (repositories) เริ่มต้นของระบบแจกจ่าย แต่เป็นคราวคราวคุณอาจต้องการลบ PPA ออกด้วยเหตุผลต่างๆ วิธีการทำจะขึ้นอยู่กับสิ่งที่คุณต้องการบรรลุ โดยทั่วไปคุณจะอยู่ในหนึ่งในสองสถานการณ์ต่อไปนี้:

  • ต้องการลบ PPA ออกจากรายการแหล่งซอฟต์แวร์ และลบแพ็กเกจที่ติดตั้งไปด้วย
  • ต้องการลบ PPA ออกจากรายการแหล่งซอฟต์แวร์ และกลับมาใช้แพ็กเกจเริ่มต้นที่ระบบแจกจ่ายให้มา

มาสำรวจสถานการณ์แรกกันก่อน

ลบ PPA และแพ็กเกจของมัน

ตรวจสอบให้แน่ใจว่าคุณมียูทิลิตี้ add-apt-repository ติดตั้งไว้แล้ว มันควรจะมีอยู่โดยค่าเริ่มต้นในระบบที่พัฒนาจาก Ubuntu ส่วนใหญ่ แต่เพื่อความแน่ใจ ให้รันคำสั่งต่อไปนี้:

sudo apt install software-properties-common

ต่อไป คุณต้องการชื่อ PPA ที่แน่นอนซึ่งต้องการลบ หากลืม ให้ค้นหาบน Google เปิดหน้า Launchpad ที่โฮสต์ PPA นั้น และดูคำแนะนำการติดตั้ง จะพบชื่อที่แน่นอน (เช่น 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

สุดท้าย ลบแพ็กเกจและ dependencies ด้วย:

sudo apt autoremove NAME_OF_PACKAGE

หลังจากใส่คำสั่งนี้ ให้สังเกตรายการแพ็กเกจที่จะถูกลบอย่างใกล้ชิด หากเห็นสิ่งที่คุณยังต้องการในรายการนั้น ให้ใช้ตัวเลือก remove ของ apt (แทน autoremove):

sudo apt remove NAME_OF_PACKAGE

ค้นหาแพ็กเกจทั้งหมดที่ติดตั้งมาจาก PPA

ถ้าตัวเลือก autoremove ไม่ได้ถอนการติดตั้งแพ็กเกจทั้งหมดที่มาจาก PPA นั้น คุณอาจต้องลบด้วยตนเอง

ติดตั้งยูทิลิตี้ต่อไปนี้:

sudo apt install apt-forktracer

ตอนนี้คุณสามารถค้นหาแพ็กเกจทั้งหมดที่ติดตั้งในระบบซึ่งมาจาก PPA ได้:

apt-forktracer | grep -i ppa | awk '{print $1}'

จากนั้นคุณสามารถลบมันด้วย sudo apt remove หรือ sudo apt autoremove คำสั่ง autoremove จะพยายามถอนการติดตั้งแพ็กเกจที่คุณระบุมรวมถึง dependencies ทั้งหมด ส่วน 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 เพื่อรู้วิธีเก็บระบบปฏิบัติการให้อยู่ในสภาพ "สะอาด"