yum에게 단일 종속성을 무시하도록 지시하십시오.


37

CentOs 6에 winswitch를 설치하려고합니다. 'nxagent'가 필요합니다. 그러나 centos에서 패키지 이름은 'nx'입니다. yum에게 'nxagent'종속성 검사를 건너 뛰라고 지시하는 방법이 있습니까 (이미 'nx'를 설치했습니다)? --skip-broken을 지정하면 전체를 건너 뜁니다.

답변:


14

일반적으로 yum종속성에서 단일 패키지를 무시하는 옵션이 없습니다. 옵션 --skip-broken은 해결되지 않은 모든 종속성을 무시합니다.

시도 할 수는 yum --exclude=packagename있지만 종속성이 아닌 모든 리포지토리의 업데이트에서 이름이나 glob별로 특정 패키지를 제외합니다.


1
yum --exclude의존성에는 영향을주지 않습니다
DrStrangepork

2
@DrStrangepork 예 나는 내 대답에 그것을 썼다는 것을 알고 있습니다
B14D3

5
어느 쪽 --exclude--skip-broken길에서 하나 이상의 종속성을 우회하는 데 도움이되지 rpm --nodeps않습니다.
Acumenus

3
두 번째 답변으로 이동하십시오.
brthornbury

49

rpm명령에는 --nodeps사용할 수 있는 옵션이 있습니다. 문제는 그 rpm자체로 yum 저장소를 인식하지 못한다는 것입니다. 다음 명령은 패키지를 설치 또는 업데이트하여 종속성을 무시하고 package에있는 리포지토리에서 다운로드 URL을 자동으로 조회 repoquery합니다 yum-utils.

rpm -Uvh --nodeps $(repoquery --location winswitch)

그 후, 규칙 yum update은 종속성 오류없이 성공할 것입니다.


$ (repoquery --location winswitch)가 작동하지 않았습니다. 그러나 "yumdownloader --destdir =. package-name"을 통해 .rpm 패키지를 다운로드 할 수 있습니다. "rpm -U"는 업그레이드를 의미합니다. 패키지가 설치되지 않은 경우 "rpm -i"를 사용할 수 있습니다. yumdownloader는 yum-utils (내 경우에는 dnf-utils)에서 가져 왔습니다.
Yaroslav Nikitenko

2

OS 용으로 설계되지 않은 패키지를 설치하려고하는 nx것 같습니다. CentOS 용으로 설계된 경우 올바르게 요구 됩니다.

이 문제의 또 다른 해결 방법은 파일이없는 작은 shim RPM 패키지를 작성하고 설치하는 것이지만 spec 파일에는 다음과 같은 행이 포함되어 있습니다.

requires: nx
provides: nxagent

이렇게하면 종속성이 충족되어야하지만 파일 nxagent이 설치 될 것으로 예상되는 nx패키지와 CentOS가 제공 하는 패키지가 다른 위치에 파일이있을 것으로 예상 할 수 있습니다 .


0

rpmrebuild를 사용하여 새 패키지 이름을 가리 키도록 rpm 메타 데이터를 변경할 수도 있습니다. 그러면 "귀하의"패키지가되지만 rpm 종속성이있는 한 더 깨끗합니다. --nodeps를 사용하는 것보다 단점이 없습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.