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를 사용하는 것보다 단점이 없습니다.