1

サーバーのDirty-COWの一時的な修正に取り組んでいるときに、CentOS 7 のバグと思われるものを発見しました。バグは、kernel-debuginfo パッケージのカーネル バージョンが間違っているようです。カーネルのバージョンは次のとおりです。

# uname -r
3.10.0-327.36.2.el7.x86_64

上記はカーネル開発バージョンと一致するようです:

# yum install kernel-devel 
Package kernel-devel-3.10.0-327.36.2.el7.x86_64 already installed and latest version
Nothing to do

ただし、これは次のカーネル バージョンとは一致しません。

# rpm -qa |grep kernel-debuginfo
kernel-debuginfo-4.4.22-201.el7.centos.x86_64
kernel-debuginfo-common-x86_64-4.4.22-201.el7.centos.x86_64

正しいパッケージをインストールしようとすると、正しいパッケージが既にインストールされているという誤ったメッセージが表示されます。

# yum install kernel-debuginfo-common-x86_64-3.10.0-327.36.2.el7.x86_64 kernel-debuginfo-3.10.0-327.36.2.el7.x86_64
Loaded plugins: auto-update-debuginfo, fastestmirror
Loading mirror speeds from cached hostfile

Package matching kernel-debuginfo-common-x86_64-3.10.0-327.36.2.el7.x86_64 already installed. Checking for update.
Package matching kernel-debuginfo-3.10.0-327.36.2.el7.x86_64 already installed. Checking for update.
Nothing to do

これを解決するために、私は最初に試しました:

yum erase kernel-debuginfo kernel-debuginfo-common

それは共通パッケージを削除しませんでした。

# rpm -qa |grep kernel-debuginfo
kernel-debuginfo-common-x86_64-4.4.22-201.el7.centos.x86_64

私が使用したそのパッケージを削除するには:

# rpm -e kernel-debuginfo-common-x86_64-4.4.22-201.el7.centos.x86_64 

この後、インストールは正常に機能します。

# debuginfo-install kernel-$(uname -r)
Package yum-plugin-auto-update-debug-info-1.1.31-34.el7.noarch already installed and latest version
--> Running transaction check
---> Package kernel-debuginfo.x86_64 0:3.10.0-327.36.2.el7 will be installed
--> Processing Dependency: kernel-debuginfo-common-x86_64 = 3.10.0-327.36.2.el7 for package: kernel-debuginfo-3.10.0-327.36.2.el7.x86_64
--> Running transaction check
---> Package kernel-debuginfo-common-x86_64.x86_64 0:3.10.0-327.36.2.el7 will be installed
--> Finished Dependency Resolution

今私の質問は、これがCentOS 7のバグである以外に、この動作を説明できる人はいますか?

4

1 に答える 1

0

何の振る舞い?これはかなり奇妙な yum 出力です: 既にインストールされている下位バージョンのパッケージをインストールしようとすると、"Package matching XXX already installed" と表示されます。新しいパッケージを削除すると、古いバージョンが yum で正常にインストールされました。

簡単な例:

[root@10 test]# rpm -q atop
atop-1.27-3.1.el6.x86_64
[root@10 test]# yum install atop-1.26-3.el6

...

Package matching atop-1.26-3.el6.x86_64 already installed. Checking for update.
Nothing to do
于 2016-10-25T15:17:26.457 に答える