내 시스템에 추가 된 모든 ppa 저장소를 나열하십시오.


21

시스템에 추가 된 모든 ppa 저장소를 나열하고 .txt파일로 저장 하여 새로 설치하기 위해 ppa를 찾는 데 시간을 허비하고 싶지 않고 .txt파일 에서 ppa 행을 선택 하고 추가 할 수 있습니다. 명령에 sudo add-apt-repository? 또한 gpg 키를 수동으로주고 싶지 않은 다른 방법이 있습니까?

답변:


19

에서 어떻게 설치 스크립트에 명령 줄에서 모든 저장소 및있는 PPA의 목록을 얻을 수 있나요?

답의 일부는 당신이 찾고있는 것을 가지고있는 것 같습니다.

#! /bin/sh 
# listppa Script to get all the PPA installed on a system ready to share for reininstall
for APT in `find /etc/apt/ -name \*.list`; do
    grep -o "^deb http://ppa.launchpad.net/[a-z0-9\-]\+/[a-z0-9\-]\+" $APT | while read ENTRY ; do
        USER=`echo $ENTRY | cut -d/ -f4`
        PPA=`echo $ENTRY | cut -d/ -f5`
        echo sudo apt-add-repository ppa:$USER/$PPA
    done
done

이것을 다른 이름으로 저장 listppa.sh

listppa.sh > installppa.sh

이렇게하면 어딘가에 백업 할 수있는 스크립트를 생성 한 다음 간단히 다음을 실행하여 새 설치에 PPA를 추가 할 수 있습니다.

installppa.sh

20

실제로 자동으로 아무런 작업을 수행 하지 않고 설치 한 PPA를 확인하려는 경우 다음을 수행 할 수 있습니다.

$ apt-cache policy

내 시스템에는 다음과 같은 내용이 있습니다.

% apt-cache policy
Package files:
 100 /var/lib/dpkg/status
     release a=now
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu/ precise/main amd64 Packages
     release v=12.04,o=LP-PPA-ubuntu-toolchain-r-test,a=precise,n=precise,l=Toolchain test builds,c=main
     origin ppa.launchpad.net
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main Translation-en
 500 http: ppa.launchpad.net/rael-gc/scudcloud/ubuntu/ precise/main i386 Packages
     release v=12.04,o=LP-PPA-rael-gc-scudcloud,a=precise,n=precise,l=ScudCloud - Linux client for Slack,c=main
     origin ppa.launchpad.net
...

여기 에서 인용 :

[ apt-cache policy]는 각 저장소 자원과 연관된 우선 순위를 검색합니다. 출력에서 사용 가능한 모든 저장소 및 PPA 목록을 유추 할 수 있습니다.

출처 : http://ask.xmodulo.com/list-installed-repositories-ppas-ubuntu.html


5
이것은 훌륭하고 간단하지만 출력에는 Ubuntu 기본 리포지토리도 포함됩니다. 그렇게하려면 소스로 제공 한 링크에 사용 된 전체 명령을 사용할 수도 있습니다 apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. 출력이 더 잘 구성되고 눈에 더 쉽습니다.
pjd

참고 : apt-cache policy실행 한 후에 만 ​​repos가 표시됩니다 apt-get update. 로 리포지토리를 추가 한 경우에는 실행할 때까지 add-apt-repository표시되지 않습니다 . apt-cache policyapt-get update
wisbucky

0

에서 내 대답내가 설치 스크립트에 명령 줄에서 모든 저장소 및있는 PPA의 목록을 얻을 수 있습니까?

PPA를 다음 ppa:USER/REPO형식으로 나열하십시오 .

grep -E '^deb\s' /etc/apt/sources.list /etc/apt/sources.list.d/*.list |\
  cut -f2- -d: |\
  cut -f2 -d' ' |\
  sed -re 's#http://ppa\.launchpad\.net/([^/]+)/([^/]+)(.*?)$#ppa:\1/\2#g' |\
  grep '^ppa:'

PPA를 포함한 모든 저장소를 ppa:USER/REPO형식으로 나열하십시오 .

마지막을 제거하기 만하면됩니다 grep( 명령 |\뒤에 이전 행에서 를 제거하는 것을 잊지 마십시오 sed).

설치 스크립트 생성을 포함하여 저장하고 사용할 수있는 전체 스크립트에 대해서는 다른 질문에 대한 내 답변을 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.