listar todos os repositórios ppa adicionados ao meu sistema

21

Como posso listar todos os repositórios ppa adicionados ao meu sistema e salvá-los em um .txtarquivo, para que eu não queira gastar meu tempo procurando por ppa's para novas instalações e posso apenas selecionar uma linha ppa no meu .txtarquivo e anexá-la ao comando sudo add-apt-repository? Também há outras maneiras de fazer isso em que eu não quero dar as chaves gpg manualmente?

supremo
fonte

Respostas:

19

De Como posso obter uma lista de todos os repositórios e PPAs da linha de comando em um script de instalação?

Parte da resposta parece ter o que você está procurando:

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

Salvar como listppa.sh

listppa.sh > installppa.sh

Isso cria um script que você pode fazer backup em algum lugar e, em seguida, execute para adicionar seus PPAs em uma nova instalação simplesmente executando:

installppa.sh
NGRhodes
fonte
20

Para aqueles que querem apenas verificar os PPAs instalados, sem fazer nada com eles automaticamente, você pode:

$ apt-cache policy

No meu sistema, aqui está um pouco do que mostra:

% 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
...

Citado aqui :

[ apt-cache policy] recupera prioridades associadas a cada recurso do repositório. A partir da saída, é possível inferir uma lista de todos os repositórios e PPAs disponíveis.

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

Romário
fonte
5
Isso é legal e simples, no entanto, a saída também inclui repositórios base do Ubuntu. Se você estiver indo para fazer isso você pode também usar o pleno comando, final utilizada no link que você deu como sua fonte: apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. A saída é melhor organizada e mais fácil para os olhos.
Pjd
Nota: apt-cache policysó mostrará os repositórios após a execução apt-get update. Se você acabou de adicionar um repositório add-apt-repository, ele não será exibido apt-cache policyaté você executar apt-get update.
wisbucky 10/04
0

Da minha resposta em Como posso obter uma lista de todos os repositórios e PPAs da linha de comando em um script de instalação?

Listar PPAs no ppa:USER/REPOformato:

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:'

Liste todos os repositórios, incluindo PPAs no ppa:USER/REPOformato:

Basta remover o último grep(não se esqueça de remover o |\da linha anterior após o sedcomando).

Veja minha resposta na outra pergunta para obter os scripts completos que você pode salvar e usar, incluindo a geração de um script de instalação.

ejm
fonte