Kullanılmayan PPA'ları kontrol edin ve kaldırın


18

Kurulumdan bu yana, 15.04 sistemime çok az PPA eklemedim çünkü belirli bir uygulama istedim. Ama bazen bu paketi daha sonra tekrar kaldırdım, çünkü işe yaramadı, gerçekten istediğim şey değildi, ya da artık ihtiyacım olmadığı için. Bunun bir fark yaratıp add-apt-repositoryyaratmadığını bilmiyorum, ancak diğerleri sadece dosyayı /etc/apt/sources.list.d/el ile oluşturan bir komutla gelirken bazı depolar kuruldu .

Şimdi yüklü bir PPA'dan paketim olup olmadığını nasıl kontrol edebilirim ve değilse yazılım kaynaklarımdan kaldırabilirim? Bu prosedür tüm PPA'larda otomatik olarak çalışmalıdır.


Bağımsız komut dosyası olarak mı yoksa y-ppa-manager için bir uzantı olarak mı? ; )
AB

@AB Bağımsız, lütfen. Ben kullanmıyorum y-ppa-manager.
Bayt Komutanı

Yanıtlar:


25

İşte bir senaryo. Parametre olmadan, komut dosyası bazı bilgileri listeler. İle --delete, hiçbir paket yüklü listdeğilse dosyalar kaldırılacaktır .

#!/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

Yukarıdaki kodu yeni bir dosyaya kopyalayın, örneğin:

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

Komut dosyasını yürütülebilir yapın

chmod +x ~/bin/checkPPAs

Ve koş

~/bin/checkPPAs

tüm depoları ve kurulu paket sayısını listelemek için.

Komut dosyasını şununla başlat

~/bin/checkPPAs --delete

listdosyaları kaldırmak için .


Sistemimdeki örnek çıktı

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

Bunları kaldırmak neden kötü bir fikir? Ve tercihen nasıl kaldırırsınız? add-apt-repository --remove? Ya elle dosya? Bu PPA tarafından kullanılan GPG anahtarları ne olacak, kullanırsam da kaldırılacaklar mı ? rm???.listadd-apt-repository --remove
Bayt Komutanı

Yüklü bir paket yoksa, dosya güvenle silinebilir. Ekleyeceğim. Anahtarı çıkarmak biraz daha karmaşıktır.
AB

Senaryomu güncelledim.
AB

Tekrar bir başla rmkomutu bir vardıecho
AB

5

Otomatik bir yol bilmiyorum, ancak bu yöntem oldukça hızlı:

  1. Sinaptik paket yöneticisini başlatın ve istendiğinde şifrenizi girin

  2. Sol sütunda aşağı doğru, Kökeni tıklayın

Sisteminizdeki tüm sayfalar artık sol sütunun üstünde listelenecektir. Listeyi tıklayabilir ve her birinden yüklü bir yazılım olup olmadığını görebilirsiniz. (varsa, sağ sütunda paket adının yanında yeşil bir kutu olacaktır). Ppa'dan çok sayıda paket varsa (ekranda aynı anda görmek için çok fazla), sağ sütunun üst kısmındaki S'yi tıklatarak durumlarına göre sıralayabilirsiniz.

NOT: Kullanılmayan ppas'ınız varsa:

  1. Üst menüdeki Ayarlar'ı tıklayın
  2. Sonra Depolar
  3. Yazılım ve Güncellemeler penceresi görüntülenecektir.
  4. Bu pencereden, kullanılmayan ppas'ı Diğer Yazılımlar sekmesinden kaldırabilirsiniz .

Kullanılmayan PPA'ların nasıl tespit edileceğini sordu. Yazılım Güncelleme yoluyla bir PPA'nın nasıl silineceği hakkında zaten bir milyon yol var.
Joe C

@JoeC Ne hakkında şikayet ettiğinden veya cevabımı neden reddettiğinden emin değilim. En iyi yol olmayabilir, ancak kullanılmayan PPA'ların nasıl tespit edileceğini göstereceğim.
Organik Mermer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.