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