जो पहले से स्थापित है, कमांड के लिए RPM पैकेज डाउनलोड करें


12

मेरे पास एक CentOS मशीन है जिसमें मैंने पहले से ही Opensl-devel का उपयोग करके स्थापित किया है

$ yum install openssl-devel 

यह सभी निर्भरता संकुल को डाउनलोड और स्थापित करता है। अब मुझे उन सभी 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

आरपीएम के संकुल को डाउनलोड करना संभव है जो पहले से ही --downloadonlyस्विच का उपयोग करके स्थापित है । मुझे यकीन नहीं है कि yum इस सेटिंग की जाँच करने से पहले यह जाँच नहीं करता है कि क्या पैकेज पहले से स्थापित है, लेकिन मुझे लगता है कि यह टूल के अंतर्निहित आर्किटेक्चर के कारण हो सकता है।

वैसे भी, आपको केवल पैकेज को फिर से स्थापित करने के लिए यम को बताना होगा :

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

बेशक, यम को पता नहीं होगा कि इस पैकेज के लिए कौन सी निर्भरताएं स्थापित की गई थीं, इसलिए यदि आप आरपीएम लेते हैं और उन्हें एक अलग सिस्टम पर स्थापित करने का प्रयास करते हैं, तो कुछ निर्भरताएं गायब हो सकती हैं। पूरे निर्भरता ग्राफ का पता लगाने के तरीके हैं और मुझे यकीन है कि यह पहले से ही एसई पर कहीं और वर्णित किया गया था।


7

yumdownloader, yum-utilsआपके द्वारा पास किए गए किसी भी पैकेज को डाउनलोड करेगा, या उन URL को वैकल्पिक रूप से जनरेट करेगा जिनसे पैकेज डाउनलोड किए जा सकते हैं।


यह निर्भरता को हल नहीं कर रहा है, यह सिर्फ डाउनलोड को खोलता
devel.x86_64.rpm

नहीं, यह निर्भरता को हल नहीं करता है। लेकिन आप कितनी दूर निर्भरता को हल करने के लिए उपकरण चाहेंगे? glibc? filesystem?
इग्नासियो वाज़क्वेज़-अब्राम्स

1
मेरी आवश्यकता सरल है, मुझे rpms की सूची प्राप्त करने की आवश्यकता है, इसे दूसरी मशीन पर स्थापित करने के लिए, जो ऑफ़लाइन में है
abubacker

आप "सरल" कहते हैं, लेकिन यह वास्तव में उतना आसान नहीं है जितना आप सोचते हैं। ऐसा कोई उपकरण नहीं है, जो केवल पहले से स्थापित किए गए पैकेजों की एक सूची दी गई निर्भरता को हल करेगा।
इग्नासियो वाज़क्वेज़-अब्राम्स

1
वास्तव में यह आसान है, yum installssl-devel -y --downloadonly इंस्टॉल करता है यदि मैं यह कमांड किसी अन्य मशीन पर करता हूं, तो यह सभी निर्भरता को हल करेगा, लेकिन मेरा सवाल यह है कि क्या मशीन में वही करना संभव है जिसे हमने स्थापित किया था पहले से ही
अबुबकर

3

आप 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 i686 का एक सुपरसेट है, यही वजह है कि कमांड भी i686 पैकेज डाउनलोड करता है) अधिक जानकारी के लिए यह और यह लेख देखें ।
सामी बदरा

2

लंबी अवधि में एक संभावना इंटरनेट से डाउनलोड करने के लिए एक मशीन को नामित करने की हो सकती है, फिर आंतरिक मेजबान को / var / cache / yum को बेनकाब करने के लिए उस पर NFS (या एक वेबसर्वर) चलाएं।

फिर आपको अपना यम कॉन्फिगर अपडेट करने की आवश्यकता होगी, जोड़ने के लिए:

[main]
keepcache = 1

प्रति https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Working_with_Yum_Cache.html :

एक बार जब आप कैशिंग सक्षम कर लेते हैं, तो प्रत्येक यम ऑपरेशन कॉन्फ़िगर किए गए रिपॉजिटरी से पैकेज डेटा डाउनलोड कर सकता है।

अधिक व्यावहारिक शब्दों में:

$ 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आप पहले से मौजूद पैकेजों के लिए चलेंगे और आरपीएम के लिए चाहते हैं।


0

यहाँ मैं क्या कर रहा हूँ:

sudo yum install --config = / yum.conf --installroot = / tmp / f541Sdex --downloadonly --downloaddir / tmp / DL-e25xds $ (कैट लिस्ट-ऑफ-पैकेज)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.