अप्रयुक्त पीपीए के लिए जाँच करें और निकालें


18

स्थापना के बाद से, मैंने अपने 15.04 सिस्टम में बहुत कम पीपीए नहीं जोड़े हैं क्योंकि मैं एक विशिष्ट आवेदन चाहता था। लेकिन कभी-कभी मैंने उस पैकेज को बाद में फिर से हटा दिया, क्योंकि यह काम नहीं करता था, वह नहीं था जो मैं वास्तव में चाहता था, या सिर्फ इसलिए कि मुझे इसकी कोई आवश्यकता नहीं है। मुझे नहीं पता कि इससे कोई फर्क पड़ता है, लेकिन कुछ रिपॉजिटरी स्थापित किए गए थे, add-apt-repositoryजबकि अन्य सिर्फ एक कमांड द्वारा आए थे जो कि /etc/apt/sources.list.d/मैन्युअल रूप से फ़ाइल बनाई गई थी ।

अब मैं कैसे जांच सकता हूं कि मेरे पास पीपीए से कोई पैकेज स्थापित है या नहीं और यदि नहीं है, तो इसे अपने सॉफ्टवेयर स्रोतों से हटा दें? इस प्रक्रिया को सभी PPA के माध्यम से स्वचालित रूप से काम करना चाहिए।


स्टैंडअलोन स्क्रिप्ट के रूप में या y-ppa-manager के एक्सटेंशन के रूप में? ; )
एबी

@AB स्टैंडअलोन, कृपया। मैं उपयोग नहीं करता y-ppa-manager
बाइट कमांडर

जवाबों:


25

यहाँ एक स्क्रिप्ट है। एक पैरामीटर के बिना, स्क्रिप्ट कुछ infos को सूचीबद्ध करती है। यदि कोई पैकेज स्थापित नहीं हैं , तो इसके साथ --deleteही listफाइलें हटा दी जाएंगी ।

#!/usr/bin/env bash
for f in /etc/apt/sources.list.d/*.list; do
    grep -Po "(?<=^deb\s).*?(?=#|$)" "$f" | while read -r ENTRY ; do
    echo "ENTRY: $ENTRY"
        HOST=$(cut -d/ -f3 <<< "$ENTRY")

        if [ "ppa.launchpad.net" = "$HOST" ]; then
          USER=$(cut -d/ -f4 <<< "$ENTRY")
          PPA=$(cut -d/ -f5 <<< "$ENTRY")
          packageCount=$(awk '$1=="Package:" {if (a[$2]++ == 0) {system("dpkg -l "$2)}}' /var/lib/apt/lists/*"$USER"*"$PPA"*Packages 2>/dev/null | awk '/^ii/' | wc -l)
          echo "PPA: ppa:$USER/$PPA"
          echo "FILENAME: $f"
          echo "$packageCount package(s) installed"
          if [ "$packageCount" -eq 0 ] && [ "$1" == "--delete" ]; then
            sudo rm "$f" && echo "$f deleted"
          fi
          echo
        else 
          USER=$(cut -d/ -f3 <<< "$ENTRY")
          PPA=$(cut -d/ -f4 <<< "$ENTRY")
          packageCount=$(awk '$1=="Package:" {if (a[$2]++ == 0) {system("dpkg -l "$2)}}' /var/lib/apt/lists/*"$USER"*Packages 2>/dev/null | awk '/^ii/' | wc -l)
          echo "REPOSITORY: $USER/$PPA"
          echo "FILENAME: $f"
          echo "$packageCount package(s) installed"
          if [ "$packageCount" -eq 0 ] && [ "$1" == "--delete" ]; then
            sudo rm "$f" && echo "$f deleted" 
          fi
          echo
        fi
    done
done

उपरोक्त कोड को एक नई फ़ाइल में कॉपी करें, जैसे:

mkdir -p ~/bin
nano ~/bin/checkPPAs

स्क्रिप्ट को निष्पादन योग्य बनाएं

chmod +x ~/bin/checkPPAs

और इसे साथ में चलाएं

~/bin/checkPPAs

सभी रिपॉजिटरी और स्थापित पैकेजों की संख्या को सूचीबद्ध करने के लिए।

स्क्रिप्ट के साथ शुरू करो

~/bin/checkPPAs --delete

listफ़ाइलों को निकालने के लिए ।


मेरे सिस्टम पर नमूना आउटपुट

ENTRY: http://ppa.launchpad.net/webupd8team/y-ppa-manager/ubuntu vivid main
PPA: ppa:webupd8team/y-ppa-manager
FILENAME: /etc/apt/sources.list.d/webupd8team-ubuntu-y-ppa-manager-vivid.list
3 package(s) installed

ENTRY: http://ppa.launchpad.net/nilarimogard/webupd8/ubuntu vivid main
PPA: ppa:nilarimogard/webupd8
FILENAME: /etc/apt/sources.list.d/nilarimogard-ubuntu-webupd8-vivid.list
5 package(s) installed

ENTRY: http://ppa.launchpad.net/obsproject/obs-studio/ubuntu vivid main
PPA: ppa:obsproject/obs-studio
FILENAME: /etc/apt/sources.list.d/obsproject-ubuntu-obs-studio-vivid.list
1 package(s) installed

ENTRY: http://archive.getdeb.net/ubuntu vivid-getdeb apps
REPOSITORY: archive.getdeb.net/ubuntu vivid-getdeb apps
FILENAME: /etc/apt/sources.list.d/getdeb.list
7 package(s) installed

ENTRY: http://ppa.launchpad.net/psi-plus/ppa/ubuntu vivid main
PPA: ppa:psi-plus/ppa
FILENAME: /etc/apt/sources.list.d/psi-plus-ubuntu-ppa-vivid.list
15 package(s) installed

ENTRY: http://ppa.launchpad.net/libreoffice/ppa/ubuntu vivid main
PPA: ppa:libreoffice/ppa
FILENAME: /etc/apt/sources.list.d/libreoffice-ubuntu-ppa-vivid.list
24 package(s) installed

ENTRY: https://deb.nodesource.com/node_0.12 vivid main
REPOSITORY: deb.nodesource.com/node_0.12 vivid main
FILENAME: /etc/apt/sources.list.d/nodesource.list
1 package(s) installed

ENTRY: http://dl.google.com/linux/chrome/deb/ stable main
REPOSITORY: dl.google.com/linux
FILENAME: /etc/apt/sources.list.d/google-chrome.list
2 package(s) installed

ENTRY: http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu vivid main
PPA: ppa:gnome3-team/gnome3
FILENAME: /etc/apt/sources.list.d/gnome3-team-ubuntu-gnome3-vivid.list
273 package(s) installed

ENTRY: http://ppa.launchpad.net/noobslab/apps/ubuntu vivid main
PPA: ppa:noobslab/apps
FILENAME: /etc/apt/sources.list.d/noobslab-ubuntu-apps-vivid.list
0 package(s) installed

ENTRY: http://ppa.launchpad.net/ubuntuhandbook1/corebird/ubuntu vivid main
PPA: ppa:ubuntuhandbook1/corebird
FILENAME: /etc/apt/sources.list.d/ubuntuhandbook1-ubuntu-corebird-vivid.list
1 package(s) installed

ENTRY: http://ppa.launchpad.net/webupd8team/unstable/ubuntu vivid main
PPA: ppa:webupd8team/unstable
FILENAME: /etc/apt/sources.list.d/webupd8team-ubuntu-unstable-vivid.list
1 package(s) installed

ENTRY: http://download.mono-project.com/repo/debian wheezy main
REPOSITORY: download.mono-project.com/repo
FILENAME: /etc/apt/sources.list.d/mono-xamarin.list
166 package(s) installed

ENTRY: http://ppa.launchpad.net/otto-kesselgulasch/gimp-edge/ubuntu vivid main
PPA: ppa:otto-kesselgulasch/gimp-edge
FILENAME: /etc/apt/sources.list.d/otto-kesselgulasch-ubuntu-gimp-edge-vivid.list
5 package(s) installed

ENTRY: http://ppa.launchpad.net/numix/ppa/ubuntu vivid main
PPA: ppa:numix/ppa
FILENAME: /etc/apt/sources.list.d/numix-ubuntu-ppa-vivid.list
3 package(s) installed

ENTRY: http://ppa.launchpad.net/webupd8team/atom/ubuntu vivid main
PPA: ppa:webupd8team/atom
FILENAME: /etc/apt/sources.list.d/webupd8team-ubuntu-atom-vivid.list
1 package(s) installed

ENTRY: https://packages.graylog2.org/repo/debian/ trusty 1.0
REPOSITORY: packages.graylog2.org/repo
FILENAME: /etc/apt/sources.list.d/graylog.list
3 package(s) installed

ENTRY: http://ppa.launchpad.net/ubuntu-mate-dev/ppa/ubuntu vivid main
PPA: ppa:ubuntu-mate-dev/ppa
FILENAME: /etc/apt/sources.list.d/ubuntu-mate-dev-ubuntu-ppa-vivid.list
0 package(s) installed

ENTRY: http://ppa.launchpad.net/gnome3-team/gnome3-staging/ubuntu vivid main
PPA: ppa:gnome3-team/gnome3-staging
FILENAME: /etc/apt/sources.list.d/gnome3-team-ubuntu-gnome3-staging-vivid.list
268 package(s) installed

ENTRY: http://debian.koha-community.org/koha stable main
REPOSITORY: debian.koha-community.org/koha stable main
FILENAME: /etc/apt/sources.list.d/koha.list
0 package(s) installed

ENTRY: http://ppa.launchpad.net/pgavin/ghdl/ubuntu trusty main
PPA: ppa:pgavin/ghdl
FILENAME: /etc/apt/sources.list.d/pgavin-ubuntu-ghdl-vivid.list
0 package(s) installed

ENTRY: http://ppa.launchpad.net/ubuntu-mate-dev/vivid-mate/ubuntu vivid main
PPA: ppa:ubuntu-mate-dev/vivid-mate
FILENAME: /etc/apt/sources.list.d/ubuntu-mate-dev-ubuntu-vivid-mate-vivid.list
3 package(s) installed

ENTRY: http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu vivid main
PPA: ppa:webupd8team/sublime-text-3
FILENAME: /etc/apt/sources.list.d/webupd8team-ubuntu-sublime-text-3-vivid.list
1 package(s) installed

ENTRY: http://ppa.launchpad.net/webupd8team/java/ubuntu vivid main
PPA: ppa:webupd8team/java
FILENAME: /etc/apt/sources.list.d/webupd8team-ubuntu-java-vivid.list
1 package(s) installed

ENTRY: http://dl.google.com/linux/chrome/deb/ stable main
REPOSITORY: dl.google.com/linux
FILENAME: /etc/apt/sources.list.d/google.list
2 package(s) installed

ENTRY: http://dl.google.com/linux/chrome/deb/ stable main
REPOSITORY: dl.google.com/linux
FILENAME: /etc/apt/sources.list.d/google-chrome-beta.list
2 package(s) installed

आपको क्यों लगता है कि उन्हें हटाना एक बुरा विचार है? और आप इसे अधिमानतः कैसे हटाएंगे? add-apt-repository --remove? या मैन्युअल रूप rmसे ???.listफ़ाइल? इस PPA द्वारा उपयोग की जाने वाली GPG कुंजी के बारे में क्या, यदि मैं उपयोग add-apt-repository --removeकरूँ तो उन्हें भी हटा दिया जाएगा ?
बाइट कमांडर

यदि कोई पैकेज स्थापित नहीं है, तो फ़ाइल को सुरक्षित रूप से हटाया जा सकता है। मैं जोड़ दूंगा। निकालें कुंजी थोड़ा और अधिक जटिल है।
एबी

मैंने अपनी स्क्रिप्ट को अपडेट किया है।
एबी

इसे फिर से शुरू करें, एक rmकमांड में एकecho
AB

5

मुझे स्वचालित तरीके का पता नहीं है, लेकिन यह तरीका काफी जल्दी है:

  1. संकेत मिलने पर सिंटैप्टिक पैकेज मैनेजर शुरू करें और अपना पासवर्ड डालें

  2. नीचे की ओर बाएं कॉलम में, उत्पत्ति पर क्लिक करें

अब आपके सिस्टम के सभी ppas को बाएं कॉलम के शीर्ष पर सूचीबद्ध किया जाएगा। आप सूची से नीचे क्लिक कर सकते हैं और देख सकते हैं कि क्या प्रत्येक से कोई सॉफ़्टवेयर स्थापित है। (यदि वहाँ है, तो दाहिने कॉलम में पैकेज नाम से एक हरे रंग का बॉक्स होगा)। यदि ppa से कई पैकेज हैं (स्क्रीन पर एक साथ देखने के लिए बहुत सारे), तो आप स्थिति द्वारा उन्हें सॉर्ट करने के लिए सही कॉलम के शीर्ष पर S पर क्लिक कर सकते हैं ।

नोट: यदि आपके पास कोई अप्रयुक्त ppas है:

  1. शीर्ष मेनू में सेटिंग्स पर क्लिक करें
  2. फिर रिपोजिटरी
  3. सॉफ्टवेयर और अपडेट विंडो प्रदर्शित की जाएगी।
  4. इस विंडो से आप अन्य सॉफ़्टवेयर टैब से अप्रयुक्त ppas को निकाल सकते हैं ।

उन्होंने पूछा कि अप्रयुक्त पीपीए का पता कैसे लगाया जाए। सॉफ़्टवेयर अद्यतन के माध्यम से पीपीए को हटाने के तरीके के बारे में पहले से ही एक ज़िलियन निर्देश हैं।
जो

@JoeC मुझे यकीन नहीं है कि आप किस बारे में शिकायत कर रहे हैं या आपने मेरे जवाब को गलत क्यों बताया है। यह सबसे अच्छा तरीका नहीं हो सकता है, लेकिन मैं दिखावा करता हूं कि अप्रयुक्त पीपीए का पता कैसे लगाया जाए।
ऑर्गेनिक मार्बल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.