Встановіть список пакунків за допомогою apt-get


8

У мене є нова установка Lubuntu, і я хотів би встановити пакети із заданого списку, не потребуючи введення sudo apt-get install package_name. Це можливо?

Я не говорю про сценарії після встановлення, це щось зовсім інше.


Відповіді:


5

Так, просто перерахуйте всі пакунки в рядку, розділеному пробілом. напр

sudo apt-get install package_name1 package_name2 package_name3 package_name4

Дякую, як я можу зупинити 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інсталяційного розділу.


2
Якщо ви хочете, щоб це встановилось у відповідності з будь-якими вимогами, вам доведеться це зробитиxargs sudo apt-get -y install < pkglist
Emanuel Ey

+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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.