yum에게 단일 종속성을 무시하도록 지시하십시오. winswitch를 설치하려고합니다. ‘nxagent’가 필요합니다.

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



답변

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

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


답변

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

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

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


답변

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

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

requires: nx
provides: nxagent

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


답변

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