ดาวน์โหลดแพ็คเกจ RPM สำหรับคำสั่งที่ติดตั้งไว้แล้ว


12

ฉันมีเครื่อง CentOS ที่ฉันติดตั้ง openssl-devel โดยใช้แล้ว

$ yum install openssl-devel 

มันดาวน์โหลดและติดตั้งแพคเกจการอ้างอิงทั้งหมด ตอนนี้ฉันต้องการแพ็คเกจ RPM ทั้งหมด เป็นไปได้หรือไม่ที่จะดาวน์โหลดแพ็คเกจ RPM เท่านั้น? เมื่อฉันทำสิ่งนี้:

 $ yum install  openssl-devel -y --downloadonly 

มันบอกว่า

Package 1:openssl-devel-1.0.1e-4.fc18.x86_64 already installed and latest version

เนื่องจากมันติดตั้งแล้ว

ไม่มีใครรู้วิธีดาวน์โหลดแพ็คเกจ RPM เหล่านั้นในระบบเดียวกัน

คำตอบ:


13

เป็นไปได้ที่จะดาวน์โหลดแพ็คเกจของ RPM ที่ติดตั้งไว้แล้วโดยใช้--downloadonlyสวิตช์ ฉันไม่แน่ใจว่าทำไม yum ไม่ตรวจสอบการตั้งค่านี้ก่อนที่จะตรวจสอบว่ามีการติดตั้งแพคเกจไว้แล้ว แต่ฉันคิดว่าอาจเกิดจากสถาปัตยกรรมพื้นฐานของเครื่องมือ

อย่างไรก็ตามสิ่งที่คุณต้องทำคือบอกให้ yum ติดตั้งแพคเกจใหม่:

yum --downloadonly --downloaddir=/tmp/rpm_files/ reinstall package_name

แน่นอนว่า yum จะไม่ทราบว่ามีการติดตั้งการพึ่งพาใดสำหรับแพคเกจนี้ดังนั้นหากคุณใช้ RPM และลองติดตั้งในระบบอื่นการอ้างอิงบางอย่างอาจหายไป มีวิธีการสำรวจกราฟการพึ่งพาทั้งหมดและฉันแน่ใจว่านี่ถูกอธิบายไว้แล้วที่อื่นใน SE


7

yumdownloaderในyum-utilsจะดาวน์โหลดแพ็คเกจใด ๆ ที่คุณส่งไปหรือสร้างทางเลือกที่ URL ที่สามารถดาวน์โหลดได้


มันไม่ได้แก้ปัญหาการพึ่งพาเพียงแค่ดาวน์โหลด openssl-devel.x86_64.rpm
abubacker

ไม่มันไม่ได้แก้ปัญหาการพึ่งพา แต่คุณต้องการให้เครื่องมือย้อนกลับไปไกลแค่ไหนแล้ว glibc? filesystem?
Ignacio Vazquez-Abrams

1
ความต้องการของฉันนั้นง่ายฉันต้องได้รับรายชื่อ rpms เพื่อติดตั้งในเครื่องอื่นซึ่งอยู่ในสถานะออฟไลน์
abubacker

คุณพูดว่า "เรียบง่าย" แต่จริงๆแล้วมันไม่ง่ายอย่างที่คุณคิด ไม่มีเครื่องมือที่จะแก้ปัญหาการพึ่งพาที่ระบุเพียงรายการที่ติดตั้งแพคเกจไว้แล้ว
Ignacio Vazquez-Abrams

1
จริงๆแล้วมันง่ายติดตั้ง yum openssl-devel -y --download เฉพาะถ้าฉันทำคำสั่งนี้ในเครื่องอื่นมันจะแก้ไขการพึ่งพาทั้งหมด แต่คำถามของฉันคือว่าเป็นไปได้ที่จะทำแบบเดียวกันในเครื่องที่เราติดตั้งคำสั่งนั้น เรียบร้อยแล้ว
abubacker

3

คุณสามารถใช้คำสั่งrepotrackจากแพ็คเกจ yum-utils มันจะดาวน์โหลดต้นไม้พึ่งพาทั้งหมด - แม้ว่าจะมีการติดตั้งไว้แล้ว

ตัวอย่าง:

sudo yum install yum-utils      # Install yum-utils
sudo repotrack openssl-devel    # Download all dependencies for openssl-devel


ตัวอย่างผลลัพธ์:

[sbadra@rhel6 ~]$ sudo yum install openssl-devel
Loaded plugins: product-id, search-disabled-repos, subscription-manager
Setting up Install Process
Package openssl-devel-1.0.1e-57.el6.x86_64 already installed and latest version
Nothing to do

[sbadra@rhel6 ~]$ sudo repotrack openssl-devel
Downloading audit-libs-2.4.5-6.el6.x86_64.rpm
Downloading audit-libs-2.4.5-6.el6.i686.rpm
Downloading basesystem-10.0-4.el6.noarch.rpm
Downloading bash-4.1.2-48.el6.x86_64.rpm
Downloading ca-certificates-2017.2.14-65.0.1.el6_9.noarch.rpm
Downloading chkconfig-1.3.49.5-1.el6.x86_64.rpm
Downloading coreutils-8.4-46.el6.x86_64.rpm
Downloading coreutils-libs-8.4-46.el6.x86_64.rpm
.... more packages ....
Downloading openssl-1.0.1e-57.el6.i686.rpm
Downloading openssl-1.0.1e-57.el6.x86_64.rpm
Downloading openssl-devel-1.0.1e-57.el6.i686.rpm
Downloading openssl-devel-1.0.1e-57.el6.x86_64.rpm
.... more packages ....
Downloading sed-4.2.1-10.el6.x86_64.rpm
Downloading setup-2.8.14-23.el6.noarch.rpm
Downloading tzdata-2018c-1.el6.noarch.rpm
Downloading zlib-1.2.3-29.el6.x86_64.rpm
Downloading zlib-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.i686.rpm
Downloading zlib-devel-1.2.3-29.el6.x86_64.rpm

1
ฉันเก็บบันทึกย่อเกี่ยวกับข้อผิดพลาดทางสถาปัตยกรรมเนื่องจากเป็นพฤติกรรมที่คาดหวัง (x86_64 เป็น superset ของ i686 ซึ่งเป็นเหตุผลที่คำสั่งยังดาวน์โหลดแพคเกจ i686) ดูนี้และนี้บทความสำหรับข้อมูลเพิ่มเติม
Sami Badra

2

ความเป็นไปได้อย่างหนึ่งในระยะยาวอาจเป็นการกำหนดให้เครื่องเป็นเครื่องที่จะดาวน์โหลดจากอินเทอร์เน็ตจากนั้นเรียกใช้ NFS (หรือเว็บเซิร์ฟเวอร์) บนเครื่องเพื่อแสดง / var / cache / yum ไปยังโฮสต์ภายใน

จากนั้นคุณจะต้องอัปเดตการกำหนดค่า yum ของคุณเพื่อเพิ่ม:

[main]
keepcache = 1

ต่อhttps://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html :

เมื่อคุณเปิดใช้งานการแคชทุกการดำเนินการ yum อาจดาวน์โหลดข้อมูลแพ็คเกจจากที่เก็บที่กำหนดค่าไว้

ในแง่การปฏิบัติมากขึ้น:

$ sudo yum install -y nginx
$ sudo find /var/cache/yum/ -type f -name '*.rpm'
<...snip....>
/var/cache/yum/x86_64/7/epel/packages/nginx-1.10.2-1.el7.x86_64.rpm

คำตอบอื่น ๆ จะจริงแก้ปัญหาของคุณได้ทันทีที่นี้จะช่วยเหลือเฉพาะถ้าคุณทำงานyum reinstallสำหรับแพคเกจที่คุณมีอยู่แล้วและต้องการ RPMs สำหรับ


0

นี่คือสิ่งที่ฉันทำ:

sudo yum install --config =. / yum.conf - installroot = / tmp / f541Sdex --downloadonly --downloaddir / tmp / DL-e25xds $ (รายการของแพ็คเกจ)

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