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
...

使用此文本文件,有没有办法安装列出的每个软件包?我怀疑该列表实际上是在最初设置操作系统时可能已经安装的“所有”软件包的列表。

Answers:


28

是的,这样做:

yum -y install $(cat file_name)


这样会更好,因为它将同时查看所有依赖关系,而不是为每个单独的软件包都找出它们。
Marcin 2012年

是的,这是真的。
paintbox 2012年

这是一个非常老的问题,但这无疑对我有所帮助。如果您有一个文件,其中的包用换行符分隔,则需要执行以下操作:yum -y install $(cat filename cat | tr'\ n''')
SteveM 2014年

哇。如此简单,我只能用Google搜索它,而不能自己想到它。
bgStack15

2
遗憾的是,如果软件包列表超过了命令行的最大长度,这将不能很好地工作。
克里斯·科格登

3

尝试xargs

cat textfile | xargs yum -y install

 


2
没有要串联的内容-因此,这< textfile xargs yum -y install是等效的并节省了fork / exec。
maxschlepzig

0

您也可以在命令行中尝试此操作。

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

对于文本文件中的每个i,它都会执行yum -y安装。


2
如前所述,这将对每个软件包进行依赖检查。每行。
paintbox 2012年

0

cat YOURFILE | xargs yum -y install

这与@daisy的解决方案几乎相同,不同之处在于,如果软件包列表对于命令行而言太长,则会将其分解为单独的yum install命令。


这与@JucaPirama的答案重复-该答案在一年前发布。
maxschlepzig
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.