거래 오류를 수정하는 방법은 무엇입니까?

거래 오류를 수정하는 방법은 무엇입니까?

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충돌을 예측하도록 설계되었으므로 재사용에 따른 책임은 사용자에게 있습니다.

관련 정보