Грязный патч CoW на CentOS 7.2 - kernel-debuginfo
Работая над временным исправлением для моих серверов, для Dirty-COW, я обнаружил, что кажется ошибкой в CentOS 7. Ошибка, похоже, неверная версия ядра пакета kernel-debuginfo. Вот версия ядра:
# uname -r
3.10.0-327.36.2.el7.x86_64
Сказанное выше похоже на версию ядра devel:
# 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?
1 ответ
Поведение чего? Это довольно странный вывод yum: когда вы пытаетесь установить пакет с более низкой версией, которую вы уже установили, он говорит: "Пакет, соответствующий XXX, уже установлен". Когда вы удалили новые пакеты, вы успешно установили более старую версию с 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