rpm 패키지 자체를 설치하지 않고 rpm 패키지의 종속성을 설치하는 방법은 무엇입니까? (RHEL/페도라)

rpm 패키지 자체를 설치하지 않고 rpm 패키지의 종속성을 설치하는 방법은 무엇입니까? (RHEL/페도라)

패키지 세트(*.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 등을 사용합니다. 대부분의 경우 작동하지만 정확히 동일한 결과를 얻는다는 보장은 없습니다.

관련 정보