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


18

패키지 세트 (* .rpm)가 있습니다. 각 패키지마다 rpm -qRp <package>요구 사항을 나열 할 수 있지만 패키지 자체를 설치하지 않고 패키지를 설치하고 싶습니다 (필요한 경우). 모든 활성화 된 리포지토리에 있어야합니다. rpm -qRp ...예를 들어 출력을 구문 분석하는 자체 스크립트를 작성하지 않고이 작업을 수행하는 쉬운 방법이 있습니까?

require ( yum localinstall)로 모든 것을 설치 한 다음 원래 패키지를 제거하여 할 수 있다는 것을 알고 있지만 문제는 내 세트에 종속성과 충돌이있는 패키지가 포함되어 있다는 것입니다. 그러나 필요한 패키지는 충돌하지 않습니다. 여러 개의 수행해야 yum localinstall <list>다음에 yum remove <list>있는지 목록에서 패키지가 충돌하지 않는합니다.

더 좋은 방법이 있습니까? 나는 기본적으로와 같은 것을 원 yum-builddep하지만 buildrequires는 필요하지 않습니다.

내 배포판은 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 파일에서도 작동하는 것 같습니다. 정확히 내가 찾던 것.
Miroslav Franc

1
누구든지 -1을 소유하고 싶습니까? 내가 고칠 수있는 것이 있습니까?
Larsks

4

가장 좋은 방법은 다음과 같습니다.

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

... deplist / etc 사용 대부분 작동하지만 정확히 동일한 결과를 얻을 수는 없습니다.


yum -y필요할 수 있습니다.
caot

-y는 몇 가지 이유로 기본값이 아니며 중요한 것은 위와 같이 변경되지 않습니다.
James Antill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.