パッケージ自体をインストールせずにrpmパッケージの依存関係をインストールする方法は?(rhel / fedora)


17

パッケージ(* .rpm)のセットがあります。rpm -qRp <package>必要なものをリストするためにできるパッケージごとに、パッケージ自体をインストールせずに(必要なものを)インストールしたいと思います。すべての有効なリポジトリにライブが必要です。rpm -qRp ...たとえば、出力を解析する独自のスクリプトを作成せずにこれを行う簡単な方法はありますか。

require(yum localinstall)ですべてをインストールしてから元のパッケージをアンインストールすることでそれができることはわかっていますが、問題はセットに依存関係と競合の両方があるパッケージが含まれていることです。ただし、必要なパッケージは競合しません。複数回実行したyum localinstall <list>yum remove <list>、リスト内のパッケージが競合しないことを確認する必要があります。

もっと良い方法はありますか?基本的にのようなものが欲しいのyum-builddepですが、buildrequiresではなくrequireが必要です。

私のディストリビューションはFedora/RHEL

回答:


23

この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 / etcを使用 ほとんどが機能しますが、まったく同じ結果が得られるとは限りません。


yum -y必要かもしれません。
caot

-yはいくつかの理由でデフォルトではありません。重要なものは上記によって変更されません。
ジェームズ・アンティル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.