enumerar todos los repositorios de ppa agregados a mi sistema

21

¿Cómo puedo enumerar todos los repositorios de ppa agregados a mi sistema y guardarlos en un .txtarchivo, de modo que no quiera pasar mi tiempo buscando ppa's para nuevas instalaciones y simplemente puedo seleccionar una línea de ppa en mi .txtarchivo y agregar a la orden sudo add-apt-repository? Además, ¿hay otras formas de hacer esto en las que no quiero dar las claves gpg manualmente?

supremum
fuente

Respuestas:

19

De Cómo puedo obtener una lista de todos los repositorios PPA y desde la línea de comandos en un script de instalación?

Parte de la respuesta parece tener lo que estás buscando:

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

Guarda esto como listppa.sh

listppa.sh > installppa.sh

Esto crea un script que puede respaldar en algún lugar, luego ejecutar para agregar sus PPA en una instalación nueva simplemente ejecutando:

installppa.sh
NGRhodes
fuente
20

Para aquellos que solo quieren verificar los PPA que han instalado sin hacer nada con ellos automáticamente, pueden hacer:

$ apt-cache policy

En mi sistema, aquí hay un poco de lo que muestra:

% 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 desde aquí :

[ apt-cache policy] recupera las prioridades asociadas con cada recurso de repositorio. A partir de su salida, puede inferir una lista de todos los repositorios y PPA disponibles.

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

Romário
fuente
55
Esto es agradable y simple, sin embargo, la salida también incluye repositorios base de Ubuntu. Si usted va a hacer que usted puede también utilizar el comando completo, final utilizada en el enlace que dio como su fuente: apt-cache policy | grep http | awk '{print $2 $3}' | sort -u. La salida está mejor organizada y es más fácil para la vista.
pjd
Nota: apt-cache policysolo mostrará los repositorios después de haber ejecutado apt-get update. Si acaba de agregar un repositorio con add-apt-repository, no aparecerá apt-cache policyhasta que ejecute apt-get update.
wisbucky
0

De mi respuesta en ¿Cómo puedo obtener una lista de todos los repositorios y PPA desde la línea de comandos en un script de instalación?

Lista de PPA en 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:'

Enumere todos los repositorios, incluidos los PPA en ppa:USER/REPOformato:

Simplemente elimine el último grep(no olvide eliminar el |\de la línea anterior después del sedcomando).

Consulte mi respuesta en la otra pregunta para ver los scripts completos que puede guardar y usar, incluida la generación de un script de instalación.

ejm
fuente