Як встановити залежності пакету rpm, не встановлюючи сам пакет? (Рель / Федора)


18

У мене є набір пакетів (* .rpm). Для кожного пакета, який я можу зробити, rpm -qRp <package>потрібно перелічити, але я хотів би встановити їх (необхідні) без встановлення самих пакетів. Потрібні всі живі в включених сховищах. Чи є якийсь простий спосіб зробити це без написання власного сценарію, який би розібрав, наприклад, вихід rpm -qRp ....

Я знаю, що міг би це зробити, встановивши все, що вимагає ( yum localinstall), а потім видалити оригінальні пакети, але проблема полягає в тому, що мій набір містить пакунки з обома залежностями та конфліктами між ними. Необхідні пакети, однак, не конфліктують. Мені доведеться зробити декілька, yum localinstall <list>а потім yum remove <list>переконатися, що пакети в списку не суперечать.

I там кращий шлях? Я б в основному хотів щось на кшталт 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? Чи можна щось виправити?
larsks

4

Найкращий спосіб:

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

... за допомогою deplist / тощо. здебільшого буде працювати, але не гарантовано отримати такий самий результат.


yum -yможе знадобитися.
кат

-я не є типовим з кількох причин, і важливі не змінюються вище.
Джеймс
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.