Jak zainstalować wiele PPA i aplikacji jednocześnie?

9

Zamierzam zainstalować kilka komputerów ogólnego użytku na jednej z ławek w moim laboratorium.

Istnieje cała masa repozytoriów PPA i aplikacji z repozytoriów Ubuntu, które chciałbym zainstalować po początkowej instalacji Ubuntu.

Czy można napisać skrypt, który zainstaluje wszystkie aplikacje i umowy PPA za jednym razem, wymagając ode mnie tylko dwukrotnego kliknięcia skryptu wykonywalnego i wpisania hasła administratora?

Wyobrażam sobie, że byłoby to dość proste. Czy ktoś mógłby wskazać mi krótki samouczek, a może nawet dostarczyć skrypt szablonu, aby dodać nazwy PPA i pakiety instalacyjne apt-get?

Dzięki.

mloman
źródło

Odpowiedzi:

7

Użyłem prostego skryptu poniżej, aby dodać texworks i Ubuntu GIS PPA, a następnie zainstalować texworks i Quantum Gis z ich odpowiedniego źródła, możesz go rozwinąć, dodając inne PPA i dodając nazwy pakietów do wiersza polecenia 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
źródło
add-apt-repository często prosi mnie o wpisanie Y, aby wyrazić zgodę na dodanie go do listy źródeł. Czy wpłynie to na automatyczny przepływ skryptu?
mloman
W moim teście nie wydano żadnych pytań, wszystko zostało dodane i zainstalowane automatycznie.
Sabacon
Brak monitu w 11.04, denerwujące pytanie „Naciśnij Y, aby dodać” w 11.10. Nie wiem jednak, jak się tego pozbyć - przepraszam.
Scaine,
2
Powinienem był wspomnieć - jeśli jesteś pewien, co zostanie zainstalowane przez apt-get, możesz przekazać apt-get install -yi nie wyświetli się monit o kontynuację „Y”. Może add-apt-repositoryobsługuje tę samą opcję?
Scaine
3
@Scaine Tak, add-apt-repositoryobsługuje-y
jcollado,
2

Skrypt bash zrobiłby to, o co prosisz.

Oto link do dobrego przewodnika skryptowego bash, którego używam: http://tldp.org/LDP/abs/html/

Mówiąc prosto, musisz wywołać 3 polecenia instalacji z PPA

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

Jeśli chcesz przejść bezpośrednio do jednego z nich, napisałem artykuł na blogu o jednym z takich automatycznych skryptów bash, aby zainstalować aplikacje z różnych źródeł:

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

W skrypcie z góry pytam o uprawnienia roota dla skryptu, aby polecenia nie musiały być uruchamiane z sudo przed nim, tak jak prosiłeś.

Konkretny przykład instalacji z PPA pokazano w artykule podczas instalowania innej wersji libnotify.

Gautham C.
źródło
0

Instalacja nienadzorowana z listy

Do nienadzorowanej instalacji listy pakietów i dodania kilku ppa do naszego systemu możemy użyć następującego skryptu:

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

Skrypt ma dwa argumenty. Pierwszy to plik (np. mysources) W katalogu skryptów, w którym zapisaliśmy listę naszych źródeł oprogramowania zgodnie ze specyfikacjami dla pliku sources.list np .:

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

Zastąp wszystkie zmienne żądanymi wartościami

Drugi argument to plik (np. packages) Z listą pakietów, które chcemy zainstalować w formacie np .:

packagename
otherpackage
...

Zapisz skrypt z np. Nazwą uptodate, uczyń go wykonywalnym i uruchom z terminala:

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

Co robi skrypt?

Po prostu kopiuje naszą mysourceslistę /etc/sources.list.d/mysources.list, aktualizuje informacje o pakiecie i instaluje wszystkie pakiety z packageslisty, którą udostępniliśmy za pomocą xargs .

Uwaga: może być konieczne pobranie ważnego klucza z serwera kluczy startera, aby móc zainstalować z dodanego ppa.

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

Wymień klucz podpisujący (tutaj 72D340A3) na odpowiedni

Uwaga 2: Dobrym pomysłem jest uruchomienie skryptu w terminalu, a nie dwukrotne kliknięcie, ponieważ chcemy wiedzieć o błędach.

Takkat
źródło
Jest to bardzo przydatne do tworzenia kopii zapasowych i przywracania własnych list źródeł i pakietów. Ale czy mógłbyś rozwinąć część dotyczącą keyserver? Czy dołączę ostatni kod do skryptu, czy uruchomię go osobno? Czy muszę to zrobić dla klucza podpisywania wszystkich umów PPA?
mloman
Właściwie, ponieważ mogę napisać własną listę źródeł i listę pakietów, może to być jeszcze łatwiejsza metoda instalacji, ale proszę o rozwinięcie części keyserver. Skąd mam wiedzieć, co to jest „odpowiedni” klucz do podpisywania?
mloman
możesz to sprawdzić albo na stronie głównej ppa, albo otrzymasz błąd od apt-get telling. Gdy klucz znajduje się w maszynie, nie pyta ponownie. To nie jest do włączenia w skrypcie. Nie znasz jeszcze liczb.
Takkat
Ok, wszystko jest dla mnie teraz jasne. Znalazłem ten link do szybkiego tworzenia kopii zapasowych plików kluczy.
mloman