Wie installiere ich mehrere PPAs und Anwendungen gleichzeitig?

9

Ich werde ein paar Computer für den allgemeinen Gebrauch auf einer der Werkbänke meines Labors aufstellen.

Es gibt eine ganze Reihe von PPA-Repositorys und -Anwendungen aus den Ubuntu-Repositorys, die ich nach einer ersten Ubuntu-Installation installieren möchte.

Ist es möglich, ein Skript zu schreiben, das alle diese Apps und PPAs auf einmal installiert, sodass ich nur auf das ausführbare Skript doppelklicken und das Administratorkennwort eingeben muss?

Ich stelle mir vor, es wäre ziemlich einfach. Könnte mich jemand auf ein kurzes Tutorial verweisen oder vielleicht sogar ein Vorlagenskript bereitstellen, damit ich die PPA-Namen und apt-get-Installationspakete hinzufügen kann?

Vielen Dank.

mloman
quelle

Antworten:

7

Ich habe das folgende einfache Skript verwendet, um die PPAs texworks und Ubuntu GIS hinzuzufügen und dann texworks und Quantum Gis von ihrer jeweiligen Quelle zu installieren. Sie können es erweitern, indem Sie die anderen PPAs hinzufügen und die Paketnamen zur Befehlszeile apt-get install hinzufügen.

#!/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
quelle
add-apt-repository fordert mich häufig auf, Y einzugeben, um dem Hinzufügen zur Quellenliste zuzustimmen. Wird dies den automatischen Ablauf des Skripts beeinflussen?
mloman
In meinem Test wurden keine Fragen gestellt, alles wurde automatisch hinzugefügt und installiert.
Sabacon
Keine Eingabeaufforderung in 11.04, ärgerliche Eingabeaufforderung "Drücken Sie Y, um hinzuzufügen" in 11.10. Ich weiß allerdings nicht, wie ich das loswerden soll - sorry.
Scaine
2
Sollte erwähnt haben - wenn Sie sicher sind, was von apt-get installiert wird, können Sie bestehen apt-get install -yund es fordert Sie nicht auf, das "Y" fortzusetzen. add-apt-repositoryUnterstützt vielleicht die gleiche Option?
Scaine
3
@ Caine Ja, add-apt-repositoryunterstützt-y
jcollado
2

Ein Bash-Skript würde das, was Sie verlangen, sehr einfach tun.

Hier ist ein Link zu einem guten Bash-Skript-Handbuch, das ich verwende: http://tldp.org/LDP/abs/html/

Um es einfach auszudrücken, müssen Sie 3 Befehle aufrufen, um von einem PPA zu installieren

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

Wenn Sie direkt in ein Beispiel springen möchten, habe ich einen Blog-Artikel über ein solches automatisiertes Bash-Skript geschrieben, um Apps aus verschiedenen Quellen zu installieren:

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

Im Skript frage ich vorab nach Root-Berechtigungen für das Skript, damit die Befehle nicht wie gewünscht mit sudo davor ausgeführt werden müssen.

Ein spezielles Beispiel für die Installation von einem PPA wird im Artikel gezeigt, wenn eine andere Version von libnotify installiert wird.

Gautham C.
quelle
0

Unbeaufsichtigte Installation aus einer Liste

Für eine unbeaufsichtigte Installation einer Liste von Paketen und das Hinzufügen mehrerer ppa zu unserem System können wir das folgende Skript verwenden:

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

Das Skript hat zwei Argumente. Die erste ist eine Datei (z. B. mysources) im Skriptverzeichnis, in der wir eine Liste unserer Softwarequellen gemäß den Spezifikationen für eine Quellenliste gespeichert haben, z . B.:

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

Ersetzen Sie alle Variablen durch die gewünschten Werte

Das zweite Argument ist eine Datei (z. B. packages) mit einer Liste von Paketen, die wir im folgenden Format installieren möchten:

packagename
otherpackage
...

Speichern Sie das Skript mit z. B. dem Namen uptodate, machen Sie es ausführbar und führen Sie es von einem Terminal aus:

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

Was macht das Skript?

Es kopiert einfach unsere mysourcesListe in /etc/sources.list.d/mysources.list, aktualisiert die Paketinformationen und installiert alle Pakete aus der packagesListe, die wir mithilfe von xargs bereitgestellt haben .

Hinweis: Möglicherweise müssen wir auch einen gültigen Schlüssel vom Launchpad-Keyserver herunterladen, um ihn von dem von uns hinzugefügten ppa installieren zu können.

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

Ersetzen Sie den Signaturschlüssel (hier 72D340A3) durch den entsprechenden

Hinweis 2: Es ist eine gute Idee, das Skript in einem Terminal und nicht durch einen Doppelklick auszuführen, da wir über Fehler informiert werden möchten.

Takkat
quelle
Dies ist sehr nützlich, um meine eigenen Quellenlisten und Pakete zu sichern und wiederherzustellen. Aber könnten Sie den Keyserver-Teil näher erläutern? Würde ich den letzten Code in das Skript aufnehmen oder separat ausführen? Muss ich dies für den Signaturschlüssel aller PPAs tun?
mloman
Da ich meine eigene Quellen- und Paketliste erstellen kann, ist dies möglicherweise eine noch einfachere Installationsmethode. Bitte erläutern Sie den Keyserver-Teil. Wie würde ich wissen, was der "passende" Signaturschlüssel ist?
mloman
Sie können dies entweder auf der ppa-Homepage überprüfen oder Sie erhalten eine Fehlermeldung von apt-get. Sobald der Schlüssel an der Maschine ist, wird er nicht mehr gefragt. Es ist nicht für die Aufnahme in das Skript. Sie kennen die Zahlen noch nicht.
Takkat
Ok, jetzt ist mir alles klar. Ich habe diesen Link für die schnelle Sicherung von Schlüsseldateien gefunden.
mloman