取引エラーを修正するには?

取引エラーを修正するには?

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つだけインストールすると、なぜ競合が発生するのですか?そして、どうすればいいですか?

ベストアンサー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競合を予測するように設計されているため、再利用による責任はユーザーにあります。

おすすめ記事