CentOS: Установить пакеты, перечисленные в текстовом файле?

16

У меня есть существующая установка CentOS, в которую я хотел бы установить дополнительные пакеты. Пакеты для установки были предоставлены мне в виде списка, по одному пакету на строку, который выглядит следующим образом:

....
Cluster_Administration-en-US.noarch
ElectricFence.x86_64
GConf2.i386
GConf2.x86_64
GConf2-devel.i386
GConf2-devel.x86_64
Global_File_System-en-US.noarch
ImageMagick.i386
...

Используя этот текстовый файл, есть ли способ установить каждый пакет в списке? Я подозреваю, что этот список фактически является списком «всех» пакетов, которые могли быть установлены при первоначальной настройке операционной системы.

Лиам М
источник

Ответы:

28

Да, сделайте это:

yum -y install $(cat file_name)

маргаритка
источник
Это гораздо приятнее, поскольку он будет рассматривать все зависимости одновременно, а не вычислять их для каждого отдельного пакета.
Марчин
Да, это правда.
Paintbox
Это действительно старый вопрос, но это, безусловно, помогло мне. Если у вас есть файл с пакетами, разделенными переводами строк, вы должны сделать следующее имя: yum -y install $ (cat filename cat | tr '\ n' '')
SteveM
Вау. Так просто, что я мог только гуглить, а не думать об этом сам.
bgStack15
2
Увы, это не сработает, если список пакетов превышает максимальную длину командной строки.
Крис Когдон
3

Попробуйте с xargs:

cat textfile | xargs yum -y install

 

JucaPirama
источник
2
Объединять нечего - таким образом, < textfile xargs yum -y installэто эквивалентно и сохраняет форк / exec.
maxschlepzig
0

Вы также можете попробовать это в командной строке.

for i in `cat textfile` ; do yum -y install $i; done

Для каждого i в текстовом файле он устанавливает yum -y.

коробка красок
источник
2
как сказал Mafcin выше, это сделает проверку зависимостей для каждого пакета, т.е. для каждой строки.
Paintbox
0

cat YOURFILE | xargs yum -y install

Это почти то же самое, что и решение @ daisy, за исключением того, что если список пакетов слишком длинный для командной строки, он разбивает его на отдельные yum installкоманды.

Крис Когдон
источник
Это дублирует ответ @ JucaPirama - который был размещен 1 год назад.
maxschlepzig