サーバーの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のバグである以外に、この動作を説明できる人はいますか?