Installieren Sie die Liste der Pakete mit apt-get

8

Ich habe eine Neuinstallation von Lubuntu und möchte Pakete aus einer bestimmten Liste installieren, ohne sie eingeben zu müssen sudo apt-get install package_name. Ist es möglich?

Ich spreche nicht von den Skripten nach der Installation, das ist etwas ganz anderes.

Syntagma
quelle

Antworten:

5

Ja, listen Sie einfach alle Pakete in einer durch ein Leerzeichen getrennten Zeile auf. z.B

sudo apt-get install package_name1 package_name2 package_name3 package_name4
Sparhawk
quelle
Vielen Dank, wie kann ich verhindern, dass apt-get mir J / N-Fragen stellt, ob ich das Paket wirklich installieren möchte?
Syntagma
2
Fügen Sie die -yOption hinzu. Es ist ziemlich lang, aber Sie können man apt-getfür weitere Informationen lesen .
Sparhawk
23

Wenn Sie eine Datei (z. B. pkglist) haben, die eine Liste der zu installierenden Pakete enthält, wie:

pkg1
pkg2
pkg3

oder

pkg1 pkg2 pkg3

Anschließend können Sie diese Pakete aptmit dem folgenden Befehl installieren :

  1. sudo apt-get install $(cat pkglist)
  2. xargs sudo apt-get install < pkglist

Weitere infromation auf apt-get installBesuch man apt-getinstalliert Abschnitt.

Pandya
quelle
2
Wenn Sie möchten, dass dies gemäß den Anforderungen installiert wird, müssen Sie dies tunxargs sudo apt-get -y install < pkglist
Emanuel Ey,
+1 Wenn Sie ein Paket pro Zeile auflisten, muss die Datei Unix-Zeilenenden verwenden, sonst schlägt apt-get fehl.
Rath
Sie können den Dateinamen auch direkt an xargs mit der Option -a oder --arg-file übergeben : xargs -a pkglist sudo apt install.
Ryan
1

Fügen Sie alle Paketnamen in eine Datei ein (ein Paketname für jede Zeile). Führen Sie dann den folgenden Befehl aus, um die angegebenen Pakete automatisch zu installieren.

while read -r line; do sudo apt-get -y install "$line"; done < /path/to/the/packages/file

Beispiel:

$ cat file
vlc
firefox
$ while read -r line; do sudo apt-get install "$line"; done < file
[sudo] password for avinash: 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
vlc is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 499 not upgraded.
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Suggested packages:
  ttf-lyx
The following packages will be upgraded:
  firefox
1 upgraded, 0 newly installed, 0 to remove and 498 not upgraded.
Need to get 35.8 MB of archives.
After this operation, 24.3 MB of additional disk space will be used.
Get:1 http://ftp.cuhk.edu.hk/pub/Linux/ubuntu/ trusty-updates/main firefox amd64 33.0+build2-0ubuntu0.14.04.1 [35.8 MB]
0% [1 firefox 67.0 kB/35.8 MB 0%]                           10.4 kB/s 57min 16s^
Avinash Raj
quelle
Wäre dies nicht viel langsamer als nur das Einfügen der Pakete in eine Zeile, da für jedes Paket Paketlisten gelesen und Abhängigkeitsbäume usw. erstellt werden müssen, anstatt dies einmal zu tun?
Sparhawk