Zainstaluj listę pakietów za pomocą apt-get

8

Mam świeżą instalację Lubuntu i chciałbym zainstalować pakiety z podanej listy, bez konieczności pisania sudo apt-get install package_name. Czy to możliwe?

Nie mówię o skryptach poinstalacyjnych, to coś zupełnie innego.

syntagma
źródło
możliwy duplikat Jak zrobić skrypty poinstalacyjne?
Alvar,

Odpowiedzi:

5

Tak, po prostu wypisz wszystkie paczki w linii oddzielonej spacją. na przykład

sudo apt-get install package_name1 package_name2 package_name3 package_name4
Krogulec
źródło
Dzięki, jak mogę przestać apt-get zadawać mi pytania Y / n, czy naprawdę chcę zainstalować pakiet?
syntagma
2
Dodaj -yopcję. Jest dość długi, ale możesz przeczytać man apt-getwięcej informacji.
Sparhawk
23

Jeśli masz plik (powiedzmy pkglist), który zawiera listę pakietów do zainstalowania, takich jak:

pkg1
pkg2
pkg3

lub

pkg1 pkg2 pkg3

Następnie możesz zainstalować te pakiety za aptpomocą następującego polecenia:

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

Aby uzyskać więcej informacji, apt-get installodwiedź man apt-getsekcję instalacji.

Pandya
źródło
2
Jeśli chcesz zainstalować to zgodnie z dowolnymi wymaganiami, musisz zrobićxargs sudo apt-get -y install < pkglist
Emanuel Ey
+1 Jeśli podasz jeden pakiet w linii, plik musi zawierać uniksowe zakończenia linii, inaczej apt-get zakończy się niepowodzeniem.
rath
Można również przekazać nazwę pliku bezpośrednio do xargs z opcją -a lub --arg-pliku: xargs -a pkglist sudo apt install.
Ryan
1

Umieść wszystkie nazwy pakietów w pliku (jedna nazwa pakietu dla każdej linii). Następnie uruchom poniższe polecenie, aby automatycznie zainstalować podane pakiety.

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

Przykład:

$ 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
źródło
Czy nie byłoby to o wiele wolniejsze niż umieszczanie pakietów w jednym wierszu, ponieważ trzeba czytać listy pakietów i budować drzewa zależności itp. Dla każdego pakietu, zamiast robić to raz?
Sparhawk