Установите список пакетов, используя apt-get

8

Я недавно установил Lubuntu и хотел бы установить пакеты из заданного списка, без необходимости печатать sudo apt-get install package_name. Является ли это возможным?

Я не говорю о сценариях после установки, это нечто совершенно другое.

синтагма
источник

Ответы:

5

Да, просто перечислите все пакеты в строке через пробел. например

sudo apt-get install package_name1 package_name2 package_name3 package_name4
Sparhawk
источник
Спасибо, как я могу помешать apt-get задать мне вопросы Y / n, действительно ли я хочу установить пакет?
синтагма
2
Добавьте -yопцию. Это довольно долго, но вы можете прочитать man apt-getдля получения дополнительной информации.
Sparhawk
23

Если у вас есть файл (скажем pkglist), который содержит список пакетов для установки, как:

pkg1
pkg2
pkg3

или

pkg1 pkg2 pkg3

Затем вы можете установить эти пакеты, aptиспользуя следующую команду:

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

Для получения дополнительной информации apt-get installпосетите man apt-getраздел установки.

Pandya
источник
2
Если вы хотите, чтобы это установилось в соответствии с любыми требованиями, которые вам нужно будет выполнитьxargs sudo apt-get -y install < pkglist
Эмануэль Эй
+1 Если вы перечисляете один пакет на строку, файл должен использовать окончания строк Unix, иначе apt-get не удастся.
Рат
Кроме того, можно передать имя файла непосредственно xargs с -a или опцией --arg-файла: xargs -a pkglist sudo apt install.
Райан
1

Поместите все имена пакетов в файл (одно имя пакета для каждой строки). А затем выполните приведенную ниже команду для автоматической установки указанных пакетов.

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

Пример:

$ 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^
Авинаш Радж
источник
Разве это не будет намного медленнее, чем просто поместить пакеты в одну строку, поскольку он должен читать списки пакетов и строить деревья зависимостей и т. Д. Для каждого пакета, а не делать это один раз?
Sparhawk