Fedora 31 dnf はパッケージをインストールできません。

Fedora 31 dnf はパッケージをインストールできません。

私はFedora 31を使用しています。 dnfを使用して何かをインストールしようとすると、エラーが発生し続けます。たとえば、実行すると、sudo dnf install -y balena-etcher-electron次のように表示されます。

Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
The downloaded packages were saved in cache until the next successful transaction.
You can remove cached packages by executing 'dnf clean packages'.
Traceback (most recent call last):
  File "/usr/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 191, in user_main
    errcode = main(args)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 65, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 98, in _main
    return cli_run(cli, base)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 122, in cli_run
    ret = resolving(cli, base)
  File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 166, in resolving
    base.do_transaction(display=displays)
  File "/usr/lib/python3.7/site-packages/dnf/cli/cli.py", line 243, in do_transaction
    tid = super(BaseCli, self).do_transaction(display)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 882, in do_transaction
    tid = self._run_transaction(cb=cb)
  File "/usr/lib/python3.7/site-packages/dnf/base.py", line 954, in _run_transaction
    tid = self.history.beg(rpmdbv, using_pkgs, [], cmdline)
  File "/usr/lib/python3.7/site-packages/dnf/db/history.py", line 456, in beg
    int(misc.getloginuid())
  File "/usr/lib64/python3.7/site-packages/libdnf/transaction.py", line 641, in beginTransaction
    return _transaction.Swdb_beginTransaction(self, dtBegin, rpmdbVersionBegin, cmdline, userId)
RuntimeError: Step: database disk image is malformed in
INSERT INTO   rpm VALUES   (2560, 'balena-etcher-electron', 0, '1.5.76', '1', 'x86_64')

この問題の原因と解決策は何ですか?

ベストアンサー1

dnf upgradeインストールされているパッケージとインストールするパッケージ、またはインストールするパッケージとの間に競合があるため、失敗することがほとんどです。苦情を申し立てているファイルを確認し、rpm -qf TheOffendingFileそのファイルと共に(現在の)パッケージを提供してください。実行する操作、削除、--excludeアップグレード時に競合が発生するかどうかを確認してください(いくつか除外する必要があるかもしれません)。異なるアーキテクチャ(x86_64やi686など)に対する同じパッケージ間の競合はしばしば発生します。

破損したデータベースは次のことができます。よくrpm --rebuilddbデータベース自体を絶えず破壊するのではなく、回復に使用できます。

おすすめ記事