在为我的服务器进行临时修复时,对于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 中的错误之外,任何人都可以解释这种行为吗?