Bir rpm paketinin bağımlılıkları paketin kendisini kurmadan nasıl kurulur? (RHEL / fötr)


18

Paketlerim var (* .rpm). Listelemek için yapabileceğim her paket rpm -qRp <package>için, ancak paketleri kendileri yüklemeden bunları yüklemek istiyorum (bu gerektirir). Gereksinimlerin tümü etkin depolarda yaşar. rpm -qRp ...Örneğin çıktısını ayrıştıracak kendi betiğimi yazmadan bunu yapmanın kolay bir yolu var mı ?

Ben her şeyi gerektirir ( yum localinstall) yükleyerek ve sonra orijinal paketleri kaldırarak yapabileceğini biliyorum , ama sorun benim küme aralarında hem bağımlılıkları ve çakışmaları olan paketleri içeriyor olmasıdır. Ancak gerekli paketler çakışmaz. Birden çok yum localinstall <list>takip etmek yum remove <list>ve listedeki paketlerin çakışmadığından emin olmak zorunda kalacağım .

Orada daha iyi bir yol var mı? Temelde böyle bir şey isterdim yum-builddep, ama gereksinimler için, inşa gerekmiyor.

Dağıtımlarım Fedora/RHEL

Yanıtlar:


24

yum deplistKomutu, paket bağımlılıklarının bir listesini oluşturmak için kullanabilirsiniz :

$ 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:Paketlerin bir listesi için bundan satırları alın:

$ 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 installPaketleri yüklemek için bu çıktıyı şu adrese gönderin :

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

1
Teşekkürler. Rpm dosyalarında bile çalışıyor gibi görünüyor. Tam aradığım şey.
Miroslav Franc

1
-1'e kadar sahip olmak isteyen var mı? Düzeltebileceğim bir şey var mı?
larsks

4

En iyi yol:

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

... deplist / etc kullanarak. çoğunlukla çalışır, ancak aynı sonucu alacağı garanti edilmez.


yum -ygerekebilir.
caot

-y birkaç nedenden dolayı varsayılan değil ve önemli olanlar yukarıdakilere göre değişmiyor.
James Antill
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.