Centos 7のdnfアップグレードカーネル...

Centos 7のdnfアップグレードカーネル...

1 つのインストールでdnfカーネルが正常にアップグレードされました。最新のシステム(今日のインストールとアップグレード)では失敗します。どうしてそんなのか分からない… …

完全な実行は次のとおりです。

; sudo dnf upgrade -y
Last metadata expiration check: 5:42:13 ago on Wed 06 Mar 2019 10:56:30 GMT.
Dependencies resolved.

 Problem 1: cannot install both kernel-3.10.0-957.5.1.el7.x86_64 and kernel-3.10.0-957.5.1.el7.x86_64
  - cannot install the best update candidate for package kernel-3.10.0-957.5.1.el7.x86_64
  - cannot install the best update candidate for package kernel-3.10.0-957.el7.x86_64
 Problem 2: cannot install both kernel-devel-3.10.0-957.5.1.el7.x86_64 and kernel-devel-3.10.0-957.5.1.el7.x86_64
  - cannot install the best update candidate for package kernel-devel-3.10.0-957.5.1.el7.x86_64
  - cannot install the best update candidate for package kernel-devel-3.10.0-957.el7.x86_64
================================================================================
 Package            Arch         Version                    Repository     Size
================================================================================
Reinstalling:
 kernel             x86_64       3.10.0-957.5.1.el7         updates        48 M
 kernel-devel       x86_64       3.10.0-957.5.1.el7         updates        17 M
     replacing  kernel-devel.x86_64 3.10.0-957.5.1.el7

Transaction Summary
================================================================================

Total size: 65 M
Downloading Packages:
[SKIPPED] kernel-3.10.0-957.5.1.el7.x86_64.rpm: Already downloaded
[SKIPPED] kernel-devel-3.10.0-957.5.1.el7.x86_64.rpm: Already downloaded
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1
  Reinstalling     : kernel-devel-3.10.0-957.5.1.el7.x86_64                 1/4
  Running scriptlet: kernel-devel-3.10.0-957.5.1.el7.x86_64                 1/4
  Reinstalling     : kernel-3.10.0-957.5.1.el7.x86_64                       2/4
  Running scriptlet: kernel-3.10.0-957.5.1.el7.x86_64                       2/4
  Obsoleting       : kernel-devel-3.10.0-957.5.1.el7.x86_64                 3/4
  Running scriptlet: kernel-3.10.0-957.5.1.el7.x86_64                       4/4
  Cleanup          : kernel-3.10.0-957.5.1.el7.x86_64                       4/4
  Running scriptlet: kernel-3.10.0-957.5.1.el7.x86_64                       4/4
  Verifying        : kernel-3.10.0-957.5.1.el7.x86_64                       1/5
  Verifying        : kernel-3.10.0-957.5.1.el7.x86_64                       2/5
  Verifying        : kernel-devel-3.10.0-957.5.1.el7.x86_64                 3/5
  Verifying        : kernel-devel-3.10.0-957.el7.x86_64                     4/5
  Verifying        : kernel-devel-3.10.0-957.5.1.el7.x86_64                 5/5
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 "/bin/dnf", line 58, in <module>
    main.user_main(sys.argv[1:], exit_code=True)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 179, in user_main
    errcode = main(args)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 64, in main
    return _main(base, args, cli_class, option_parser_class)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 99, in _main
    return cli_run(cli, base)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 123, in cli_run
    ret = resolving(cli, base)
  File "/usr/lib/python2.7/site-packages/dnf/cli/main.py", line 154, in resolving
    base.do_transaction(display=displays)
  File "/usr/lib/python2.7/site-packages/dnf/cli/cli.py", line 240, in do_transaction
    tid = super(BaseCli, self).do_transaction(display)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 872, in do_transaction
    tid = self._run_transaction(cb=cb)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 1021, in _run_transaction
    self._verify_transaction(cb.verify_tsi_package)
  File "/usr/lib/python2.7/site-packages/dnf/base.py", line 1059, in _verify_transaction
    self.history.end(rpmdbv, 0)
  File "/usr/lib/python2.7/site-packages/dnf/db/history.py", line 504, in end
    bool(return_code)
  File "/usr/lib64/python2.7/site-packages/libdnf/transaction.py", line 758, in endTransaction
    return _transaction.Swdb_endTransaction(self, dtEnd, rpmdbVersionEnd, state)
RuntimeError: TransactionItem state is not set: kernel-devel-3.10.0-957.el7.x86_64

コメント作成者の要求に応じて:

; dnf repolist
Extra Packages for Enterprise Linux 7 - x86_64  3.6 MB/s |  16 MB     00:04    
CentOS-7 - Base                                 5.6 MB/s |  10 MB     00:01    
CentOS-7 - Updates                              4.1 MB/s | 5.2 MB     00:01    
IUS Community Packages for Enterprise Linux 7 - 3.9 MB/s | 941 kB     00:00    
slack                                            29 kB/s |  33 kB     00:01    
CentOS-7 - Extras                               1.2 MB/s | 339 kB     00:00    
repo id      repo name                                                    status
base         CentOS-7 - Base                                              10,019
*epel        Extra Packages for Enterprise Linux 7 - x86_64               13,008
extras       CentOS-7 - Extras                                               382
ius          IUS Community Packages for Enterprise Linux 7 - x86_64          570
slack        slack                                                            47
updates      CentOS-7 - Updates                                            1,457

そして

; dnf repolist -v | grep "^Repo-filename" | awk '{print $2}' | sort ; ls /etc/yum.repos.d
/etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/CentOS-Base.repo
/etc/yum.repos.d/epel.repo
/etc/yum.repos.d/ius.repo
/etc/yum.repos.d/slack.repo
total 60K
4.0K CentOS-Base.repo       8.0K CentOS-Vault.repo      4.0K ius-archive.repo
4.0K CentOS-CR.repo         4.0K CentOS-fasttrack.repo  4.0K ius-dev.repo
4.0K CentOS-Debuginfo.repo  4.0K epel.repo              4.0K ius-testing.repo
4.0K CentOS-Media.repo      4.0K epel-testing.repo      4.0K slack.repo
4.0K CentOS-Sources.repo    4.0K ius.repo

答え1

Sardathrionと私が知っている限り、私たちは各EL7ディストリビューションの現在リリースされたバージョンでdnfの損傷を集中的に経験しています。 SardathrionはPythonのバックトレースを得て、私も1つ得ますbasic_string::_S_construct null not valid, ignoring this repo(dnfコードに入れることはできません)。どちらの場合も、dnfがcannot install both <kernel> and <same-kernel>メッセージと混同して予期しないことをすることがわかります。

私の場合、dnfをダウングレードしたところ、症状は消えました。

dnf downgrade --allowerasing dnf

これにより、Scientific Linux 7.6のdnfが4.0.9から2.7.5に減少します。 CentOSリポジトリに同じSRPMがあります。これは、CentOSユーザーが同じ操作を実行できることを意味します。

dnf 4.1.0 がリリースされた Fedora 29 ではそのような問題を観察できなかったので、最初のフォローアップは libdnf 管理者に ping を送信する前に配布管理者に問い合わせることです。

編集する:TUVは、古いカーネルを再インストールするためのdnf提案に関連する問題を知っています。。無効なストレージの問題は解決されておらslず、Sardathrionの大きなバックトラッキングも解決されていません。

関連情報