¿Cómo puedo hacer una copia de seguridad de mis PPA?

27

Relacionado con esta pregunta . Pero mi preocupación es que durante el año pasado, la mayoría de mis aplicaciones más interesantes (o usadas) provienen de PPA, y solo hacer una copia de seguridad de mi lista de fuentes no agregará las teclas de la plataforma de lanzamiento asociadas de la manera que lo add-apt-repositoryhace.

Así que estoy buscando una manera de enumerar todas las URL de PPA (como ppa:chromium-daily/stable) para poder escribir fácilmente una serie de comandos add-apt-repository para agregarlos a una nueva instalación con gracia.

A falta de tirar mi historia de bash, por supuesto. ¿Qué podría ser factible, dependiendo de qué tan atrás se remonta ese archivo?

Scaine
fuente

Respuestas:

42

Bueno, porque me gusta jugar con secuencias de comandos de línea de comandos, he escrito lo siguiente. Genera una lista de cadenas de PPA de las que puede hacer una copia de seguridad y luego escribirlas en add-apt-repository:

grep -RoPish '(?<=ppa.launchpad.net/)[^/]+/[^/ ]+' /etc/apt | sort -u | sed 's/^/ppa:/'

Eso generará algo como:

ppa:ubuntu-wine/ppa
ppa:am-monkeyd/nautilus-elementary-ppa
ppa:nilarimogard/webupd8
ppa:ubuntu-x-swat/x-updates
ppa:tualatrix/ppa
ppa:banshee-team/banshee-unstable
ppa:chromium-daily/beta
ppa:libreoffice/ppa
ppa:banshee-team/ppa

Si alguna vez quisiste restaurarlos de forma generalizada, puedes volver a conectarlos al sistema de esta manera (suponiendo que hayamos guardado los PPA en ~/ppa-backup.txt:

<~/ppa-backup.txt xargs -I % sudo add-apt-repository %

Probablemente sugeriría que no solo los restaure a todos. Mire a través de la copia de seguridad y asegúrese de saber qué contiene cada PPA.

Oli
fuente
Gracias Oli ¡Lo probaré esta noche y aceptaré esto una vez probado!
Scaine
1
Dios mío, tengo muchos PPA en mi sistema. Esto es perfecto, Oli. ¡Gracias por tu esfuerzo!
Scaine
No funciona como está escrito.
user447607
6

Lo que hago es copiar todo el directorio / etc / apt a un lugar seguro. Si tiene que reinstalar o clonar su instalación, simplemente vuelva a copiar ese directorio. Ahorrará incluso las claves de confianza gpg.

Nejode
fuente
5

Si lo que está buscando es importar todas las claves GPG, puede usar mi script (viene en un .deb) para importar todas las claves GPG que faltan a la vez. Descargar

Para usar, simplemente ejecute:

sudo launchpad-getkeys

Puede echar un vistazo dentro del .deb si lo desea, el script es realmente pequeño y fácil de entender (en caso de que no confíe en mi deb).

Luego, para hacer una copia de seguridad de todos los PPA, todo lo que tiene que hacer es copiar todos los archivos .list en la nueva computadora / nueva instalación y una vez que los haya copiado, ejecute el comando anterior para importar todas las claves.

Alin Andrei
fuente
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:

list_ppas () {
  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:'
}

Generar script de instalación:

list_ppas | xargs printf 'add-apt-repository -y %s\n' > install_ppas.sh

(elimine el -ysi no desea una instalación no interactiva)

Ejecute el script:

sudo sh install_ppas.sh

Vea mi respuesta en la otra pregunta para ver los scripts completos con algunas características adicionales que puede guardar y usar.

ejm
fuente