사용하지 않는 PPA 확인 및 제거


18

설치 후 특정 응용 프로그램을 원했기 때문에 15.04 시스템에 PPA를 너무 적게 추가했습니다. 그러나 때로는 패키지가 작동하지 않거나, 실제로 원하는 것이 아니거나, 더 이상 필요하지 않기 때문에 패키지를 나중에 다시 제거했습니다. 차이가 있는지는 모르겠지만 일부 리포지토리가 설치되어 add-apt-repository있고 다른 리포지토리는 파일을 /etc/apt/sources.list.d/수동으로 만든 명령으로 막 제공되었습니다 .

이제 PPA의 패키지가 설치되어 있는지 확인하고 설치되어 있지 않은 경우 소프트웨어 소스에서 제거하려면 어떻게해야합니까? 이 절차는 모든 PPA를 통해 자동으로 작동합니다.


독립형 스크립트 또는 y-ppa-manager의 확장으로? ; )
AB

@AB 독립형입니다. 나는 사용하지 않습니다 y-ppa-manager.
바이트 사령관

답변:


25

다음은 스크립트입니다. 매개 변수가 없으면 스크립트가 일부 정보를 나열합니다. 으로 --deletelist경우 파일은 삭제됩니다 어떤 패키지가 설치되지 않습니다.

#!/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? 또는 수동으로 파일? 이 PPA에서 사용하는 GPG 키는 어떻습니까? 사용하면 제거 됩니까? rm???.listadd-apt-repository --remove
바이트 사령관

패키지가 설치되어 있지 않으면 파일을 안전하게 삭제할 수 있습니다. 나는 추가 할 것이다. 키를 제거하는 것이 조금 더 복잡합니다.
AB

스크립트를 업데이트했습니다.
AB

다시 시작하면, 하나의 rm명령은echo
AB

5

자동 방법을 모르지만이 방법은 상당히 빠릅니다.

  1. 시냅틱 패키지 관리자를 시작하고 프롬프트가 표시되면 비밀번호를 입력하십시오

  2. 왼쪽 열에서 하단을 향해 원점을 클릭하십시오.

시스템의 모든 ppa가 이제 왼쪽 열의 맨 위에 나열됩니다. 목록을 클릭하여 각 소프트웨어가 설치되어 있는지 확인할 수 있습니다. (있는 경우 오른쪽 열에 패키지 이름 옆에 녹색 상자가 나타납니다). ppa의 패키지가 너무 많으면 (한 번에 화면에 너무 많음) 오른쪽 열의 맨 위에 있는 S 를 클릭 하여 상태별로 정렬 할 수 있습니다.

참고 : 사용하지 않은 ppa가있는 경우 :

  1. 최상위 메뉴에서 설정 을 클릭하십시오
  2. 그런 다음 리포지토리
  3. 소프트웨어 및 업데이트 창이 표시됩니다.
  4. 이 창에서 기타 소프트웨어 탭 에서 사용하지 않은 ppa를 제거 할 수 있습니다 .

그는 미사용 PPA를 탐지하는 방법을 물었습니다. 소프트웨어 업데이트를 통해 PPA를 삭제하는 방법에 대해서는 이미 심각한 지침이 있습니다.
Joe C

@JoeC 나는 당신이 무엇에 대해 불평하는지 또는 왜 내 대답을 하향 조정했는지 잘 모르겠습니다. 가장 좋은 방법은 아니지만 사용하지 않는 PPA를 감지하는 방법을 보여줍니다.
유기 대리석
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.