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 встановити $ (cat
file name

Ого. Настільки простий, що я міг лише погуглювати його, а не думати про це сам.
bgStack15

2
На жаль, це буде не надто добре, якщо список пакунків перевищує максимальну довжину командного рядка.
Кріс Когдон

3

Спробуйте xargs:

cat textfile | xargs yum -y install

 


2
З'єднувати нічого не можна - таким чином, < textfile xargs yum -y installрівнозначно і економить вилку / exec.
maxschlepzig

0

Ви також можете спробувати це в командному рядку.

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

Для кожного я в текстовому файлі він робить yum -y встановлення.


2
як зазначено вище Mafcin, це зробить перевірку залежності для кожного пакету, тобто. для кожного рядка.
фарба

0

cat YOURFILE | xargs yum -y install

Це майже те саме, що рішення @ daisy, за винятком того, що якщо список пакетів занадто довгий для командного рядка, він розбиває його на окремі yum installкоманди.


Це дублює відповідь @ JucaPirama - який був опублікований на 1 рік раніше.
maxschlepzig
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.