パッケージセット(* .rpm)があります。各パッケージについてrpm -qRp <package>
を実行して必要なものを一覧表示できますが、パッケージ自体をインストールせずにそれらをインストールしたい(必要なもの)。はすべて、有効なリポジトリに存在する必要があります。たとえば、rpm -qRp ...
の出力を解析する独自のスクリプトを記述せずに、これを行う簡単な方法はありますか?.
Require(yum localinstall
)を使用してすべてをインストールし、元のパッケージをアンインストールすることでそれを実行できることはわかっていますが、問題は、セットに依存関係とそれらの間の競合の両方を持つパッケージが含まれていることです。ただし、必要なパッケージは競合しません。複数のyum localinstall <list>
の後にyum remove <list>
を実行し、リスト内のパッケージが競合しないようにする必要があります。
私にはもっと良い方法がありますか?私は基本的にyum-builddep
のようなものを望みますが、requiresではなく、buildrequiresではありません。
私のディストリビューションはFedora
/RHEL
です
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
最善の方法は:
yum Shell <<EOF
install foo
ts solve
remove foo
run
EOF
... deplistなどを使用します。ほとんどは機能しますが、まったく同じ結果が得られるとは限りません。