पैकेज स्थापित किए बिना आरपीएम पैकेज की निर्भरता कैसे स्थापित करें? (Redhat / फेडोरा)


18

मेरे पास पैकेज का एक सेट है (* .rpm)। प्रत्येक पैकेज के लिए मैं rpm -qRp <package>सूची की आवश्यकता कर सकता हूं , लेकिन मैं खुद पैकेज स्थापित किए बिना उन्हें (उन आवश्यकताएं) स्थापित करना चाहूंगा। सभी को सक्षम रिपॉजिटरी में रहने की आवश्यकता है। क्या मेरी स्क्रिप्ट लिखने के बिना ऐसा करने का कुछ आसान तरीका है जो rpm -qRp ...उदाहरण के लिए आउटपुट को पार्स करेगा ।

मुझे पता है कि मैं इसकी आवश्यकता के साथ सब कुछ स्थापित करके कर सकता हूं ( yum localinstall) और फिर मूल पैकेजों की स्थापना रद्द करें, लेकिन समस्या यह है कि मेरे सेट में निर्भरता और संघर्ष दोनों के साथ पैकेज हैं। आवश्यक पैकेज हालांकि संघर्ष नहीं करते हैं। मैं कई के yum localinstall <list>बाद करना होगा yum remove <list>और सुनिश्चित करें कि सूची में संकुल संघर्ष नहीं करते हैं।

मैं वहाँ एक बेहतर तरीका है? मैं मूल रूप से कुछ पसंद करूंगा yum-builddep, लेकिन आवश्यकता के लिए, बिल्डरेक्वायर नहीं।

मेरे डिस्ट्रोस हैं 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 फ़ाइलों पर भी काम करने लगता है। ठीक वही जो मेरे द्वारा खोजा जा रहा था।
मिरोस्लाव फ्रैंक

1
किसी को भी -1 करना चाहते हैं? क्या ऐसा कुछ है जिसे मैं ठीक कर सकता हूं?
लार्क्स

4

सबसे अच्छा तरीका है:

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

... deplist / etc का उपयोग करना। ज्यादातर काम करेगा, लेकिन सटीक परिणाम प्राप्त करने की गारंटी नहीं है।


yum -yजरूरत हो सकती है।
caot

-वह कुछ कारणों से डिफ़ॉल्ट नहीं है, और महत्वपूर्ण लोग ऊपर से नहीं बदलते हैं।
जेम्स एंटिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.