Comment installer plusieurs PPA et applications à la fois?

9

Je vais installer quelques ordinateurs à usage général sur l'un des bancs de travail de mon laboratoire.

Il y a tout un tas de référentiels PPA et d'applications des référentiels Ubuntu que j'aimerais installer après une installation initiale d'Ubuntu.

Est-il possible d'écrire un script qui installera toutes ces applications et PPA en une seule fois, me demandant seulement de double-cliquer sur le script exécutable et de taper le mot de passe administrateur?

J'imagine que ce serait assez simple. Quelqu'un pourrait-il me diriger vers un didacticiel rapide ou peut-être même fournir un script de modèle quelconque pour que je puisse ajouter les noms PPA et les packages d'installation apt-get?

Merci.

mloman
la source

Réponses:

7

J'ai utilisé le script simple ci-dessous pour ajouter les PPA texworks et Ubuntu GIS, puis installer texworks et Quantum Gis à partir de leur source respective, vous pouvez l'étendre en ajoutant les autres PPA et en ajoutant les noms de package à la ligne de commande d'installation apt-get.

#!/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
la source
add-apt-repository me demande souvent de taper Y pour accepter de l'ajouter à la liste des sources. Cela affectera-t-il le flux automatique du script?
mloman
Dans mon test, aucune question n'a été émise, tout a été ajouté et installé automatiquement.
Sabacon
Aucune invite dans 11.04, ennuyeuse invite "Appuyez sur Y pour ajouter" dans 11.10. Je ne sais pas comment m'en débarrasser - désolé.
Scaine
2
J'aurais dû mentionner - si vous êtes sûr de ce qui sera installé par apt-get, vous pouvez passer apt-get install -yet cela ne vous demandera pas de continuer "Y". Peut-être add-apt-repositoryprend en charge la même option?
Scaine
3
@Scaine Oui, add-apt-repositoryprend en charge-y
jcollado
2

Un script bash ferait ce que vous demandez très facilement.

Voici un lien vers un bon guide de script bash que j'utilise: http://tldp.org/LDP/abs/html/

Pour le dire simplement, vous devez appeler 3 commandes pour installer à partir d'un PPA

  1. sudo add-apt-repository ppa:
  2. mise à jour sudo apt-get
  3. sudo apt-get dist-upgrade

Si vous voulez vous lancer directement dans un exemple, j'ai rédigé un article de blog d'un de ces scripts bash automatisés pour installer des applications à partir de différentes sources:

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

Dans le script, je demande à l'avance les autorisations root pour le script afin que les commandes n'aient pas à être exécutées avec sudo devant lui comme vous l'avez demandé.

Un exemple spécifique de l'installation à partir d'un PPA est illustré dans l'article lors de l'installation d'une version différente de libnotify.

Gautham C.
la source
0

Installation sans assistance à partir d'une liste

Pour une installation sans assistance d'une liste de packages et l'ajout de plusieurs ppa à notre système, nous pouvons utiliser le script suivant:

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

Le script a deux arguments. Le premier est un fichier (par exemple mysources) dans le répertoire de script où nous avons enregistré une liste de nos sources logicielles selon les spécifications d'une source.list par exemple:

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

Remplacer toutes les variables par les valeurs souhaitées

Le deuxième argument est un fichier (par exemple packages) avec une liste de packages que nous souhaitons installer au format par exemple:

packagename
otherpackage
...

Enregistrez le script avec par exemple le nom uptodate, rendez-le exécutable et exécutez-le à partir d'un terminal:

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

Que fait le script?

Il copie simplement notre mysourcesliste /etc/sources.list.d/mysources.list, met à jour les informations sur les packages et installe tous les packages de la packagesliste que nous avons fournie en utilisant xargs .

Remarque: il se peut que nous devions également télécharger une clé valide depuis le serveur de clés du tableau de bord pour pouvoir l'installer à partir du ppa que nous avons ajouté.

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

Remplacez la clé de signature (ici 72D340A3) par la clé appropriée

Note 2: C'est une bonne idée d'exécuter le script dans un terminal et non par un double-clic car nous voulons connaître les erreurs.

Takkat
la source
C'est vraiment utile pour sauvegarder et restaurer mes propres listes de sources et packages. Mais pourriez-vous élaborer sur la partie du serveur de clés. Dois-je inclure le dernier code dans le script, ou l'exécuter séparément? Dois-je le faire pour la clé de signature de tous les AAE?
mloman
En fait, puisque je peux écrire ma propre liste de sources et ma liste de paquets, cela pourrait être une méthode d'installation encore plus facile, mais veuillez développer la partie du serveur de clés. Comment savoir quelle est la clé de signature "appropriée"?
mloman
vous pouvez vérifier sur la page d'accueil de ppa ou vous obtiendrez une erreur d'apt-get vous le disant. Une fois la clé sur la machine, elle ne demandera plus. Ce n'est pas à inclure dans le script. Vous ne connaissez pas encore les chiffres.
Takkat
Ok, tout est clair pour moi maintenant. J'ai trouvé ce lien pour une sauvegarde rapide des fichiers clés.
mloman