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)


นี่เป็นสิ่งที่ดีกว่ามากเพราะมันจะดูการพึ่งพาทั้งหมดในเวลาเดียวกันแทนที่จะมองมันในทุก ๆ แพ็คเกจ
Marcin

ใช่มันเป็นเรื่องจริง
paintbox

นี่เป็นคำถามที่เก่ามาก แต่นี่ช่วยฉันได้อย่างแน่นอน หากคุณมีไฟล์ที่มีแพ็กเกจคั่นด้วยฟีดบรรทัดคุณต้องทำสิ่งต่อไปนี้: yum -y install $ (cat filename cat | tr '\ n' '')
SteveM

ว้าว. ง่ายมากฉันทำได้แค่ google เท่านั้นแทนที่จะคิดเอง
bgStack15

2
อนิจจาสิ่งนี้จะใช้งานไม่ได้หากรายการแพ็กเกจเกินความยาวสูงสุดของบรรทัดคำสั่ง
Chris Cogdon

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 ทุกไฟล์ใน textfile จะทำการติดตั้ง yum -y


2
ดังที่ Mafcin ระบุไว้ข้างต้นนี้จะทำการตรวจสอบการพึ่งพาในทุกแพ็คเกจเช่น สำหรับแต่ละบรรทัด
paintbox

0

cat YOURFILE | xargs yum -y install

นี่เกือบจะเหมือนกับโซลูชันของ @ daisy ยกเว้นว่าถ้ารายการของแพ็คเกจยาวเกินไปสำหรับบรรทัดคำสั่งมันจะแยกมันออกเป็นyum installคำสั่งแยกต่างหาก


คำตอบของ @JucaPirama ซ้ำซ้อน - ซึ่งโพสต์เมื่อ 1 ปีก่อน
maxschlepzig
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.