패키지 세트(*.rpm)가 있습니다. 각 패키지에 대해 요구 사항을 나열할 수 있지만 rpm -qRp <package>
패키지 자체를 설치하지 않고 필요한 요구 사항만 설치하고 싶습니다. 모든 콘텐츠가 활성화된 저장소에 있어야 합니다. rpm -qRp ...
예를 들어 출력을 구문 분석하기 위해 자체 스크립트를 작성하지 않고도 이 작업을 수행할 수 있는 쉬운 방법이 있습니까?
require( )를 사용하여 yum localinstall
모든 것을 설치한 다음 원래 패키지를 제거하면 이 작업을 수행 할 수 있다는 것을 알고 있지만 문제는 내 컬렉션에 종속성과 충돌이 있는 패키지가 포함되어 있다는 것입니다. 그러나 필수 패키지는 충돌하지 않습니다. 여러 yum localinstall <list>
작업을 수행 yum remove <list>
하고 목록의 패키지가 충돌하지 않는지 확인해야 합니다.
더 좋은 생각이 있나요? 나는 기본적으로 비슷한 것을 원 yum-builddep
하지만 buildrequires 대신에 need가 필요합니다.
내 배포판은 Fedora
/RHEL
답변1
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
답변2
가장 좋은 방법은 다음과 같습니다.
yum shell <<EOF
install foo
ts solve
remove foo
run
EOF
...deplist 등을 사용합니다. 대부분의 경우 작동하지만 정확히 동일한 결과를 얻는다는 보장은 없습니다.