การเอาชนะaptitude
Multiarch Bug ของppa-purge
โดยปกติตามที่Vadim RutkovskyและTakkatได้อธิบายไว้การรันppa-purge
ด้วยไวยากรณ์เริ่มต้นเป็นวิธีที่มีประสิทธิภาพในการลบแพ็คเกจทั้งหมดที่ PPA จัดหาให้โดยปรับลดรุ่นเป็นรุ่นที่ให้ไว้ในแหล่งซอฟต์แวร์อื่น ๆ
อย่างไรก็ตามตามที่ Takkat ได้ชี้ให้เห็นข้อผิดพลาด 831768ป้องกันไม่ให้ppa-purge
ทำงานอย่างถูกต้องเพื่อลบหลายแพคเกจ (เช่นแพคเกจ 32 บิตที่ติดตั้งบนระบบ 64- บิต) นี่เป็นเพราะaptitude
ไม่สามารถจัดการการพึ่งพาที่ขัดแย้งกันในแพคเกจ multiarch (นั่นคือสิ่งที่เป็นข้อผิดพลาดเกี่ยวกับ) และพฤติกรรมเริ่มต้นของppa-purge
คือการใช้aptitude
เพื่อปรับลดแพคเกจ
โชคดีที่ppa-purge
ยอมรับการ-i
ตั้งค่าสถานะซึ่งทำให้มันชอบที่apt-get
จะaptitude
เป็นแบ็กเอนด์ ในฐานะที่เป็นบันทึกไว้ในรายงานข้อผิดพลาดที่ใช้apt-get
เป็นทางเลือกที่มีประสิทธิภาพในการกล่าวอ้างด้วยตนเองaptitude
เพื่อให้ทำงานppa-purge
กับ-i
ธงควรจะเป็นวิธีแก้ปัญหาที่มีประสิทธิภาพสำหรับการลบ / ปรับลดทุกแพคเกจให้บริการโดย PPA รวมทั้งแพคเกจ
ทำอย่างไร
นี่คือไวยากรณ์:
sudo ppa-purge -i ppa:ppaowner/ppaname
ตามปกติ (เช่นเดียวกับเมื่อ-i
ไม่ได้ใช้แฟล็ก):
ppaowner
จะถูกแทนที่ด้วยเจ้าของ PPA
/ppaname
เป็นตัวเลือก หากปัจจุบันppaname
ถูกแทนที่ด้วยชื่อของ PPA ppa
ถ้าไม่เป็นค่าเริ่มต้น
ตัวอย่างเช่นสมมติว่าผมมีสัญญาซื้อขายไฟฟ้าสำหรับเสถียรสร้างของ qBittorrentติดตั้งและฉันต้องการที่จะลบออกอย่างสมบูรณ์โดยอัตโนมัติปรับลด qBittorrent กับสิ่งที่รุ่นสามารถใช้ได้ผ่านแหล่งซอฟแวร์อื่น ๆ ของฉันโดยใช้apt-get
aptitude
ฉากหลังแทน จากนั้นฉันก็จะวิ่ง:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
เอกสารอยู่ที่ไหน
ด้วยเหตุผลบางอย่างเป็นตัวเลือกที่มีประโยชน์บางประการสำหรับการppa-purge
ไม่ได้บันทึกไว้ในหน้าคู่มือของตน-i
รวมทั้ง แต่คุณสามารถรับข้อมูลเกี่ยวกับพวกเขาได้ด้วยการเรียกใช้ppa-purge -h
(หรือเพียงแค่ppa-purge
ไม่มีข้อโต้แย้ง):
ek@Del:~$ ppa-purge -h
Usage: sudo ppa-purge [options] <ppa:ppaowner>[/ppaname]
ppa-purge will reset all packages from a PPA to the standard
versions released for your distribution.
Options:
-p [ppaname] PPA name to be disabled (default: ppa)
-s [host] Repository server (default: ppa.launchpad.net)
-d [distribution] Override the default distribution choice.
-y Pass -y --force-yes to apt-get or -y to aptitude
-i Reverse preference of apt-get upon aptitude.
-h Display this help text
Example usage commands:
sudo ppa-purge xorg-edgers
will remove https://launchpad.net/~xorg-edgers/+archive/ppa
sudo ppa-purge -p xorg-testing sarvatt
will remove https://launchpad.net/~sarvatt/+archive/xorg-testing
sudo ppa-purge ppa:ubuntu-x-swat/x-updates
will remove https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
Notice: If ppa-purge fails for some reason and you wish to try again,
(For example: you left synaptic open while attempting to run it) simply
uncomment the PPA from your sources, run apt-get update and try again.
"การตั้งค่าแบบย้อนกลับของ apt-get on aptitude" เป็นความลับเล็กน้อย โดยดูที่ชิ้นส่วนที่เกี่ยวข้องของรหัสที่มา ( ppa-purge
เป็นเพียงเชลล์สคริปต์หลังจากทั้งหมด) เราจะเห็นว่าวิธีการนี้ว่าพฤติกรรมเริ่มต้นคือการต้องการaptitude
ที่จะapt-get
และ-i
ฝืนธงการตั้งค่านี้