CentOS: zainstalować pakiety wymienione w pliku tekstowym?

16

Mam istniejącą instalację CentOS, w której chciałbym zainstalować dodatkowe pakiety. Pakiety do zainstalowania zostały dostarczone mi na liście, po jednej paczce na linię, która wygląda następująco:

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

Czy korzystając z tego pliku tekstowego można zainstalować każdy wymieniony pakiet? Podejrzewam, że lista jest w rzeczywistości listą „wszystkich” pakietów, które mogły zostać zainstalowane, gdy system operacyjny był pierwotnie skonfigurowany.

Liam M.
źródło

Odpowiedzi:

28

Tak, zrób to:

yum -y install $(cat file_name)

stokrotka
źródło
Jest to o wiele ładniejsze, ponieważ będzie przeglądać wszystkie zależności jednocześnie, zamiast rozróżniać je dla każdego pakietu.
Marcin,
tak to prawda.
paintbox
To naprawdę stare pytanie, ale z pewnością mi pomogło. Jeśli masz plik z pakietami oddzielonymi kanałami, musisz wykonać następujące czynności: yum -y install $ (cat cat cat | tr '\ n' ')
SteveM
Łał. Tak proste, że mogłem tylko google, zamiast myśleć o tym sam.
bgStack15
2
Niestety, nie zadziała to zbyt dobrze, jeśli lista pakietów przekroczy maksymalną długość wiersza poleceń.
Chris Cogdon,
3

Wypróbuj z xargs:

cat textfile | xargs yum -y install

 

JucaPirama
źródło
2
Nie ma nic do konkatenacji - dlatego < textfile xargs yum -y installjest równoważne i zapisuje fork / exec.
maxschlepzig
0

Możesz także spróbować tego w wierszu poleceń.

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

Dla każdego i w pliku tekstowym instaluje mniam-y.

paintbox
źródło
2
jak stwierdzono powyżej Mafcin, spowoduje to sprawdzenie zależności każdego pakietu, tj. dla każdej linii.
paintbox
0

cat YOURFILE | xargs yum -y install

Jest to prawie to samo, co rozwiązanie @ daisy, z tym wyjątkiem, że jeśli lista pakietów jest zbyt długa dla wiersza poleceń, podzieli ją na osobne yum installpolecenia.

Chris Cogdon
źródło
To powiela odpowiedź @ JucaPirama - która została opublikowana 1 rok wcześniej.
maxschlepzig