elenca tutti i repository ppa aggiunti al mio sistema


21

Come posso elencare tutti i repository ppa aggiunti al mio sistema e salvarli in un .txtfile, in modo che non voglia passare il tempo a cercare ppa per nuove installazioni e posso semplicemente selezionare una linea ppa nel mio .txtfile e aggiungere al comando sudo add-apt-repository? Inoltre, ci sono altri modi per farlo in cui non voglio dare manualmente le chiavi gpg?

Risposte:


19

Da Come posso ottenere un elenco di tutti i repository e PPA dalla riga di comando in uno script di installazione?

Parte della risposta sembra avere ciò che stai cercando:

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

Salva come listppa.sh

listppa.sh > installppa.sh

Questo crea uno script che è possibile eseguire il backup da qualche parte, quindi eseguire per aggiungere i tuoi PPA su una nuova installazione semplicemente eseguendo:

installppa.sh

20

Per coloro che vogliono semplicemente controllare i PPA che hanno installato senza effettivamente fare nulla con loro automaticamente, puoi fare:

$ apt-cache policy

Nel mio sistema, ecco un po 'di ciò che 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
...

Citato da qui :

[ apt-cache policy] recupera le priorità associate a ciascuna risorsa del repository. Dal suo output, puoi dedurre un elenco di tutti i repository e PPA disponibili.

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


5
Questo è carino e semplice, tuttavia l'output include anche repository di base Ubuntu. Se avete intenzione di fare che si può anche utilizzare il completo, comando finale utilizzato nel link che hai dato come origine: apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. L'output è organizzato meglio e più facile per gli occhi.
pjd

Nota: apt-cache policymostrerà i repository solo dopo aver eseguito apt-get update. Se hai appena aggiunto un repository con add-apt-repository, non verrà visualizzato con apt-cache policyfino a quando non eseguirai apt-get update.
Wisbucky

0

Dalla mia risposta su Come posso ottenere un elenco di tutti i repository e PPA dalla riga di comando in uno script di installazione?

Elenco dei PPA in 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:'

Elenca tutti i repository inclusi gli PPA in ppa:USER/REPOformato:

Rimuovi l'ultimo grep(non dimenticare di rimuovere il |\dalla riga precedente dopo il sedcomando).

Vedi la mia risposta sull'altra domanda per gli script completi che puoi salvare e utilizzare, inclusa la generazione di uno script di installazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.