답변:
에서 어떻게 설치 스크립트에 명령 줄에서 모든 저장소 및있는 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
실제로 자동으로 아무런 작업을 수행 하지 않고 설치 한 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
apt-cache policy
실행 한 후에 만 repos가 표시됩니다 apt-get update
. 로 리포지토리를 추가 한 경우에는 실행할 때까지 add-apt-repository
표시되지 않습니다 . apt-cache policy
apt-get update
에서 내 대답 에 내가 설치 스크립트에 명령 줄에서 모든 저장소 및있는 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
).
설치 스크립트 생성을 포함하여 저장하고 사용할 수있는 전체 스크립트에 대해서는 다른 질문에 대한 내 답변을 참조하십시오.
apt-cache policy | grep http | awk '{print $2 $3}' | sort -u
. 출력이 더 잘 구성되고 눈에 더 쉽습니다.