web-dev-qa-db-ja.com

dnfがクラッシュし、トランザクションエラーが発生しました

Gnomeがクラッシュし、dnfの実行が中断されたとき、Fedora22システムでdnf updateを実行していました。ここで、再試行すると、次のエラーが発生します。

The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Error: Transaction check error:
  file /usr/share/licenses/libpng/LICENSE from install of libpng-2:1.6.19-1.fc22.i686 conflicts with file from package libpng-2:1.6.16-3.fc22.x86_64
  file /usr/share/man/man5/png.5.gz from install of libpng-2:1.6.19-1.fc22.i686 conflicts with file from package libpng-2:1.6.16-3.fc22.x86_64
  file /usr/share/doc/libgpg-error/README from install of libgpg-error-1.21-1.fc22.i686 conflicts with file from package libgpg-error-1.17-2.fc22.x86_64
  [... many more ...]
  file /usr/share/doc/libgpg-error/AUTHORS from install of libgpg-error-1.21-1.fc22.i686 conflicts with file from package libgpg-error-1.17-2.fc22.x86_64
  file /usr/share/doc/pcre/NEWS from install of pcre-8.38-1.fc22.i686 conflicts with file from package pcre-8.37-4.fc22.x86_64
  file /usr/share/doc/pcre/ChangeLog from install of pcre-8.38-1.fc22.i686 conflicts with file from package pcre-8.37-4.fc22.x86_64

Error Summary
-------------

dnfに新しいバージョンのインストールを続行させるにはどうすればよいですか?

3

Multilibシステムがあるようです—i686パッケージもインストールされたx86_64。多くの場合、このようなパッケージはファイルを共有しますが、完全に同一である限り問題はありません。ここでは、一方のアーキテクチャは更新されましたが、もう一方は更新されておらず、共有ファイルが変更されているようです。

これを回避する最も簡単な方法は、i686パッケージを削除することです。この場合、

Sudo dnf remove libpng.i686 libgpg-error.i686 pcre.i686

それをする必要があります。また、i686の依存関係の束を削除する可能性もありますが、これは問題ありません。いつでも元に戻すことができます。これを実行してからアップグレードしてから、本当に必要な32ビットプログラムを元に戻します。

1
mattdm

最初にi686パッケージを削除せずに、rpmを使用してアップグレードを強制しました。 dnfはRPMファイルを/var/cache/dnf/updates-<tx-id>/packages/に保存します。

Sudo rpm -i --force /var/cache/dnf/updates-<tx-id>/packages/<package>.rpm
2
Dan Berindei