nodejs-0.10.33-1nodesource.fc20.x86_64
과 사이에 거래 확인 오류가 발생합니다 nodejs-semver-2.1.0-1.fc20.noarch
. 정확한 오류는 다음 위치에 있습니다. 핵심 포인트: 8998690a05100b1f6085
yum list nodejs를 실행하면 다음과 같은 결과가 나타납니다.
Installed Packages
nodejs.x86_64 0.10.32-1.fc20 @updates
Available Packages
nodejs.i686 0.10.32-1.fc20 updates
nodejs.x86_64
패키지를 하나만 설치하면 왜 충돌이 발생합니까? 그리고, 어떻게 해야 하나요?
답변1
제가 본 바로는 이는 실제로 트랜잭션 오류가 아니라 파일 충돌입니다. IMO(누군가가 나를 고칠 수 있음) 패키지를 거의 삭제해야 합니다 npm
. 물리적으로 또는 RPM 데이터베이스에서.
이에 만족한다면
rpm -e npm
패키지를 제거하고 파일 시스템에서 충돌하는 파일을 제거할 수 있습니다. 이로 인해 데이터가 손실되지만nodejs
패키지를 완전히 교체하여 충돌이 발생하는 경우npm
설치 제거로 인해 손실된 파일이 설치로 대체되므로 손실이 크지 않습니다nodejs
.패키지를 제거할 수 없다고 생각하는 경우(다른 패키지에 없는 파일이 포함되어 있음)
--justdb
옵션이 있습니다rpm -e
. 이로 인해 즉시 표시되지 않는 충돌이 발생할 수 있습니다(충돌하는 파일 버전이 동시에 설치됨). 시간이나 오래된 패키지 조각이 시스템에 남아 있는 경우 등). 파일을 덮어쓰는 한 모든 것이 괜찮을지 추측만 하면 됩니다.
예:
[root@vml-lvprod04 ~]# ll -h /usr/bin/nc
-rwxr-xr-x 1 root root 22K Feb 9 2010 /usr/bin/nc
[root@vml-lvprod04 ~]# rpm -e --justdb nc
[root@vml-lvprod04 ~]# rpm -ql nc
package nc is not installed
[root@vml-lvprod04 ~]# ll -h /usr/bin/nc
-rwxr-xr-x 1 root root 22K Feb 9 2010 /usr/bin/nc
[root@vml-lvprod04 ~]# yum install -y nc
[ ...snip... ]
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : nc-1.84-22.el6.x86_64 1/1
Verifying : nc-1.84-22.el6.x86_64 1/1
Installed:
nc.x86_64 0:1.84-22.el6
Complete!
보시다시피 실제 파일 자체는 건드리지 않고 데이터베이스에서 패키지를 삭제했습니다. 이렇게 하면 rpm
파일 충돌이 발생하는 것을 방지할 수 있습니다 . 그런 다음 yum 오류 없이 동일한 위치에 파일이 포함된 패키지를 설치할 수 있었습니다. rpm
충돌을 예측하도록 설계되었으므로 재사용에 따른 책임은 사용자에게 있습니다.