ตรวจสอบและลบ PPA ที่ไม่ได้ใช้


18

ตั้งแต่การติดตั้งฉันได้เพิ่ม PPA ไม่มากเกินไปในระบบ 15.04 ของฉันเพราะฉันต้องการแอปพลิเคชันเฉพาะ แต่บางครั้งฉันได้ลบแพ็กเกจนั้นในภายหลังอีกครั้งเพราะมันไม่ทำงานไม่ใช่สิ่งที่ฉันต้องการจริงๆหรือเพียงเพราะฉันไม่ต้องการมันอีกต่อไป ฉันไม่รู้ว่ามันสร้างความแตกต่างหรือไม่ แต่ที่เก็บบางอันถูกติดตั้งด้วยadd-apt-repositoryในขณะที่ที่อื่น ๆ เพิ่งมาโดยคำสั่งที่เพิ่งสร้างไฟล์/etc/apt/sources.list.d/ด้วยตนเอง

ตอนนี้ฉันจะตรวจสอบว่าฉันมีแพคเกจใด ๆ จาก PPA ติดตั้งและถ้าไม่ให้ลบออกจากแหล่งซอฟต์แวร์ของฉันได้อย่างไร ขั้นตอนนี้ควรทำงานโดยอัตโนมัติผ่าน PPA ทั้งหมด


เป็นสคริปต์แบบสแตนด์อโลนหรือเป็นส่วนขยายสำหรับ y-ppa-manager ; )
AB

@AB Standalone โปรด y-ppa-managerฉันไม่ได้ใช้
ผู้บัญชาการ Byte

คำตอบ:


25

นี่คือสคริปต์ หากไม่มีพารามิเตอร์สคริปต์จะแสดงรายการข่าวสารบางอย่าง ด้วย--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? หรือด้วยตนเองไฟล์? ปุ่ม GPG ที่ใช้โดย PPA นี้จะถูกเอาออกหรือไม่หากฉันใช้ rm???.listadd-apt-repository --remove
ผู้บัญชาการ Byte

หากไม่มีการติดตั้งแพ็คเกจสามารถลบไฟล์ได้อย่างปลอดภัย ฉันจะเพิ่ม การลบคีย์นั้นซับซ้อนกว่าเล็กน้อย
AB

ฉันได้ปรับปรุงสคริปต์ของฉัน
AB

เริ่มอีกครั้งหนึ่งrmคำสั่งมีecho
AB

5

ฉันไม่รู้วิธีอัตโนมัติ แต่วิธีนี้ค่อนข้างรวดเร็ว:

  1. เริ่มจัดการแพคเกจ synaptic และป้อนรหัสผ่านของคุณเมื่อได้รับแจ้ง

  2. ในคอลัมน์ด้านซ้ายไปทางด้านล่างคลิกที่Origin

ppas ทั้งหมดในระบบของคุณจะปรากฏที่ด้านบนของคอลัมน์ด้านซ้าย คุณสามารถคลิกที่รายการและดูว่ามีการติดตั้งซอฟต์แวร์ใด ๆ (หากมีจะมีช่องสีเขียวตามชื่อแพ็คเกจในคอลัมน์ด้านขวา) หากมีแพ็กเกจมากมายจาก ppa (มากเกินไปที่จะเห็นบนหน้าจอพร้อมกัน) คุณสามารถคลิกที่Sที่ด้านบนของคอลัมน์ด้านขวาเพื่อจัดเรียงตามสถานะ

หมายเหตุ:หากคุณมี ppas ที่ไม่ได้ใช้:

  1. คลิกการตั้งค่าในเมนูด้านบน
  2. จากนั้นที่เก็บ
  3. หน้าต่างซอฟต์แวร์และการอัพเดทจะปรากฏขึ้น
  4. จากหน้าต่างนี้คุณสามารถลบ ppas ที่ไม่ได้ใช้ออกจากแท็บซอฟต์แวร์อื่น ๆ

เขาถามวิธีการตรวจสอบ PPA ที่ไม่ได้ใช้ มีแนวทาง zillion เกี่ยวกับวิธีการลบ PPA ผ่านการอัปเดตซอฟต์แวร์แล้ว
Joe C

@ JoeC ฉันไม่แน่ใจว่าสิ่งที่คุณกำลังบ่นเกี่ยวกับหรือทำไมคุณ downvote คำตอบของฉัน มันอาจไม่ใช่วิธีที่ดีที่สุด แต่ฉันจะแสดงวิธีตรวจจับ PPA ที่ไม่ได้ใช้
หินอ่อนอินทรีย์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.