के aptitude
लिए मल्टीकार बग पर काबू पानेppa-purge
आम तौर पर, जैसा कि वादिम रुटकोवस्की और टककट ने समझाया है , ppa-purge
डिफ़ॉल्ट सिंटैक्स के साथ चलना एक पीपीए द्वारा प्रदान किए गए सभी पैकेजों को हटाने का एक प्रभावी तरीका है, जब भी संभव हो अन्य कॉन्फ़िगर किए गए सॉफ़्टवेयर स्रोतों में प्रदान किए गए संस्करणों के लिए उन्हें ठीक से डाउनग्रेड करना।
हालाँकि, जैसा कि तक्कत ने बताया है, बग 831768 मल्टीकार पैकेज ppa-purge
को हटाने के लिए ठीक से काम करने से रोकता है (जैसे 32-बिट पैकेज 64-बिट सिस्टम पर स्थापित)। ऐसा इसलिए है क्योंकि मल्टीकार पैकेज में परस्पर विरोधी निर्भरताएं नहीं हो सकती हैं (जो कि बग के बारे में है), और डाउनग्रेड पैकेज का उपयोग करने के लिए डिफ़ॉल्ट व्यवहार है।aptitude
ppa-purge
aptitude
सौभाग्य से, ppa-purge
स्वीकार करता है -i
झंडा जो इसे पसंद करते हैं का कारण बनता है apt-get
के लिए aptitude
अपने बैकएंड के रूप में। जैसा कि बग रिपोर्ट में प्रलेखित किया गया है, का उपयोग apt-get
करना मैन्युअल रूप से आह्वान करने का एक प्रभावी विकल्प है aptitude
, इसलिए ध्वज के ppa-purge
साथ चलना एक पीपीए द्वारा प्रदान किए गए सभी पैकेजों को हटाने / डाउनग्रेड करने के लिए एक प्रभावी समाधान होना चाहिए , जिसमें मल्टीरार्क पैकेज शामिल हैं ।-i
इसे कैसे करना है
यहाँ वाक्यविन्यास है:
sudo ppa-purge -i ppa:ppaowner/ppaname
हमेशा की तरह (जब -i
ध्वज का उपयोग नहीं किया जाता है):
ppaowner
PPA के स्वामी के साथ बदल दिया गया है।
/ppaname
वैकल्पिक है। यदि मौजूद है, ppaname
तो PPA के नाम से बदल दिया जाता है। यदि नहीं, तो यह चूक करता है ppa
।
उदाहरण के लिए , मान लें कि मेरे पास qBittorrent के अस्थिर बिल्ड के लिए PPA था , और मैं इसे पूरी तरह से हटा देना चाहता था, स्वचालित रूप से 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.
"एप्टीट्यूड पर रिवर्स-गेट की प्राथमिकता" थोड़ा गुप्त है। स्रोत कोड के प्रासंगिक टुकड़े को देखकर ( ppa-purge
यह सिर्फ एक शेल स्क्रिप्ट है, सभी के बाद), हम देख सकते हैं कि इसका मतलब है कि डिफ़ॉल्ट व्यवहार को प्राथमिकता aptitude
देना है apt-get
, और -i
ध्वज इस प्राथमिकता को उलट देता है।