¿Cómo instalar múltiples PPA y aplicaciones a la vez?

9

Voy a configurar un par de computadoras de uso general en uno de los bancos de trabajo de mi laboratorio.

Hay un montón de repositorios PPA y aplicaciones de los repositorios de Ubuntu que me gustaría instalar después de una instalación inicial de Ubuntu.

¿Es posible escribir un script que instale todas esas aplicaciones y PPA de una sola vez, requiriendo que solo haga doble clic en el script ejecutable y escriba la contraseña de administrador?

Me imagino que sería bastante sencillo. ¿Podría alguien indicarme un tutorial rápido o tal vez incluso proporcionar un script de plantilla de algún tipo para que pueda agregar los nombres de PPA y los paquetes de instalación de apt-get?

Gracias.

mloman
fuente

Respuestas:

7

Utilicé el script simple a continuación para agregar los PPA de texworks y Ubuntu GIS y luego instalar texworks y Quantum Gis desde su fuente respectiva, puede expandirlo agregando los otros PPA y agregando los nombres de paquetes a la línea de comandos de apt-get install.

#!/bin/bash

echo "Adding PPAs"

add-apt-repository ppa:texworks
add-apt-repository ppa:ubuntugis/ubuntugis-unstable


echo "updating repositories"
apt-get update

echo "Installing packages"

apt-get install texworks qgis

echo "Finished adding PPAs and insatlling applications"
exit 0
Sabacon
fuente
add-apt-repository a menudo me pide que escriba Y para aceptar agregarlo a la lista de fuentes. ¿Esto afectará el flujo automático de la secuencia de comandos?
mloman
En mi prueba no se emitieron preguntas, todo se agregó e instaló automáticamente.
Sabacon
Sin mensaje en 11.04, molesto mensaje "Presione Y para agregar" en 11.10. Sin embargo, no sé cómo deshacerme de esto, lo siento.
Scaine
2
Debería haberlo mencionado: si está seguro de lo que instalará apt-get, puede pasarlo apt-get install -yy no le pedirá la "Y para continuar". Tal vez es add-apt-repositorycompatible con la misma opción?
Scaine
3
@Scaine Sí, add-apt-repositoryapoya-y
jcollado
2

Un script bash haría lo que pides muy fácilmente.

Aquí hay un enlace a una buena guía de scripting de bash que uso: http://tldp.org/LDP/abs/html/

En pocas palabras, debe llamar a 3 comandos para instalar desde un PPA

  1. sudo add-apt-repository ppa:
  2. sudo apt-get update
  3. sudo apt-get dist-upgrade

Si desea saltar directamente a un ejemplo de uno, he escrito un artículo de blog de uno de esos scripts de bash automatizados para instalar aplicaciones de diferentes fuentes:

http://gautham-chandra.tumblr.com/post/15544311989/ninite-like-bash-script-to-install-and-configure-some

En la secuencia de comandos, pido permisos de raíz para la secuencia de comandos con anticipación para que los comandos no tengan que ejecutarse con sudo al frente como lo solicitó.

Un ejemplo específico de la instalación desde un PPA se muestra en el artículo al instalar una versión diferente de libnotify.

Gautham C.
fuente
0

Instalación desatendida de una lista

Para una instalación desatendida de una lista de paquetes y agregar varios ppa a nuestro sistema, podemos usar el siguiente script:

#! /bin/bash
# Save as e.g. 'uptodate' and make executable
# Usage:
# sudo ./uptodate <mysources> <packages>

sudo cp $1 /etc/apt/sources.list.d/mysource.list
sudo apt-get update
xargs -a "$2" sudo apt-get -y install

El guión tiene dos argumentos. El primero es un archivo (por ejemplo mysources) en el directorio de script donde guardamos una lista de nuestras fuentes de software de acuerdo con las especificaciones de una fuente.list, por ejemplo:

deb http://ppa.launchpad.net/<maintainer>/<name>/<ubuntu> <release> main
deb http://ppa.launchpad.net/<other_maintainer>/<name>/<ubuntu> <release> main
...

Reemplace todas las variables por los valores deseados

El segundo argumento es un archivo (por ejemplo packages) con una lista de paquetes que deseamos instalar en el formato, por ejemplo:

packagename
otherpackage
...

Guarde el script con, por ejemplo, el nombre uptodate, hágalo ejecutable y ejecútelo desde un terminal:

cd /directory/of/script
sudo ./uptodate mysources packages

¿Qué hace el guión?

Simplemente copia nuestra mysourceslista /etc/sources.list.d/mysources.list, actualiza la información del paquete e instala todos los paquetes de la packageslista que proporcionamos utilizando xargs .

Nota: es posible que también tengamos que descargar una clave válida del servidor de claves de launchpad para poder instalar desde el ppa que agregamos.

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3

Reemplace la clave de firma (aquí 72D340A3) por la apropiada

Nota 2: es una buena idea ejecutar el script en un terminal y no haciendo doble clic porque queremos saber acerca de los errores.

Takkat
fuente
Esto es realmente útil para respaldar y restaurar mis propias listas de fuentes y paquetes. Pero, ¿podría explicar la parte del servidor de claves? ¿Incluiría el último código dentro del script o lo ejecutaría por separado? ¿Debo hacer esto para la clave de firma de todos los PPA?
mloman
En realidad, dado que puedo escribir mi propia lista de fuentes y lista de paquetes, este podría ser un método de instalación aún más fácil, pero explique la parte del servidor de claves. ¿Cómo sabría cuál es la clave de firma "apropiada"?
mloman
puede verificarlo en la página de inicio de ppa o recibirá un error de apt-get que le informará. Una vez que la llave esté en la máquina, no volverá a preguntar. No es para incluir en el guión. Aún no sabes los números.
Takkat
Ok, todo está claro para mí ahora. Encontré este enlace para una copia de seguridad rápida de archivos clave.
mloman