วิธีการติดตั้งการพึ่งพาของแพ็คเกจ rpm โดยไม่ต้องติดตั้งแพ็คเกจเอง? (RHEL / หมวก)


18

ฉันมีชุดแพ็กเกจ (* .rpm) สำหรับแต่ละแพ็คเกจฉันสามารถทำrpm -qRp <package>รายการที่ต้องการได้ แต่ฉันต้องการติดตั้ง (ที่จำเป็น) โดยไม่ต้องติดตั้งแพ็คเกจเอง ต้องใช้การถ่ายทอดสดทั้งหมดในที่เก็บที่เปิดใช้งาน มีวิธีง่ายๆในการทำเช่นนี้โดยไม่ต้องเขียนสคริปต์ของตัวเองที่จะแยกออกrpm -qRp ...ตัวอย่างเช่น

ฉันรู้ว่าฉันสามารถทำได้โดยติดตั้งทุกอย่างที่ต้องการ ( yum localinstall) จากนั้นถอนการติดตั้งแพ็กเกจเดิม แต่ปัญหาคือชุดของฉันมีแพ็คเกจที่มีทั้งการพึ่งพาและความขัดแย้งระหว่างพวกเขา แพ็คเกจที่ต้องการ แต่จะไม่ขัดแย้งกัน ฉันจะต้องทำหลายอย่างyum localinstall <list>ตามด้วยyum remove <list>และตรวจสอบให้แน่ใจว่าแพ็คเกจในรายการไม่ขัดแย้งกัน

ฉันมีวิธีที่ดีกว่า โดยทั่วไปฉันต้องการบางสิ่งบางอย่างเช่นyum-builddepแต่สำหรับความต้องการไม่ใช่สิ่งสร้าง

distros ของฉันคือFedora/RHEL

คำตอบ:


24

คุณสามารถใช้yum deplistคำสั่งเพื่อสร้างรายการการพึ่งพาแพ็คเกจ:

$ yum deplist bind
  dependency: /bin/bash
   provider: bash.x86_64 4.3.39-5.fc21
  dependency: /bin/sh
   provider: bash.x86_64 4.3.39-5.fc21
  dependency: bind-libs(x86-64) = 32:9.9.6-10.P1.fc21
   provider: bind-libs.x86_64 32:9.9.6-10.P1.fc21
  dependency: coreutils
   provider: coreutils.x86_64 8.22-22.fc21
[...]

คว้าprovider:สายจากนี้สำหรับรายการแพคเกจ:

$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u
bash.x86_64
bind-libs.x86_64
coreutils.x86_64
glibc.i686
glibc.x86_64
grep.x86_64
krb5-libs.x86_64
libcap.x86_64
libcom_err.x86_64
libxml2.x86_64
openssl-libs.x86_64
shadow-utils.x86_64
systemd.x86_64
zlib.x86_64

ส่งเอาต์พุตนี้ไปyum installยังเพื่อติดตั้งแพ็กเกจ:

$ yum deplist bind | awk '/provider:/ {print $2}' | sort -u |
  xargs yum -y install

1
ขอบคุณ ดูเหมือนว่าจะทำงานได้แม้ในไฟล์ rpm สิ่งที่ฉันกำลังมองหา
Miroslav Franc

1
ใครต้องการเป็นเจ้าของ -1 มีบางอย่างที่ฉันสามารถแก้ไขได้หรือไม่
larsks

4

วิธีที่ดีที่สุดคือ:

yum shell <<EOF
install foo
ts solve
remove foo
run
EOF

... ใช้ deplist / etc ส่วนใหญ่จะทำงาน แต่ไม่รับประกันว่าจะได้รับผลลัพธ์ที่แน่นอนเหมือนกัน


yum -yอาจจำเป็น
caot

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