apt install <список пакетов из файла>
Это выглядит хорошо:
for i in package1 package2 package3; do
sudo apt-get install -y $i
done
но с пакетами, перечисленными в файле:
package1
package2
..
каждый на своей линии. Ищете простейший скрипт для чтения, производительность на самом деле не проблема. Конечно, странный пакет потребует некоторого вмешательства человека во время установки для согласования или настройки.
Кроме того, каков "реальный" способ работы с большими списками пакетов, которые нужно установить? Я просто ищу обезьяну.
2 ответа
Здесь xargs
Программа, которая преобразует файл в аргументы командной строки. Просто готовый xargs
к команде (со всеми аргументами), для которой вы хотите предоставить дополнительные аргументы из файла (давайте назовем это list.txt
) и разреши xargs
читать ваш файл, используя стандартное перенаправление ввода.
< list.txt xargs sudo apt-get install -y
Вы можете проверить это, поставив echo
до (или вместо) sudo
или удаляя -y
вариант.
Что-то вроде этого?
# check that the filename was supplied (keeping it simple for the example)
set -o nounset
packagefile=$1
# initialize the package variable
packages=''
# read the lines of the package file
while IFS= read -r line; do
packs+=" $line"
done < $packagefile
# apt install all of the packages
apt install -y $packs