Меня немного смущают обновления ядра Ubuntu / Linux. Исходя из фона Windows, я как бы ожидаю, что все обновления будут доступны через диспетчер обновлений, в случае Ubuntu. apt/aptitude
.
Тем не менее, если я посмотрю на версии ядра всех наших серверов (около 60 из них), я вижу, что у многих есть разные ядра между 3.13.0-24-generic
и 3.13.0-52-generic
хотя все они работают под управлением Ubuntu 14.04.2.
Если я войду на сервер с 3.13.0-24-generic
работает и запускает обновление, никаких обновлений ядра не предлагается.
Почему новые версии ядра не устанавливаются / не применяются с apt-get upgrade
и почему не do-release-upgrade
обновить ядро таким же (последним) ядром?
Может ли кто-нибудь рассказать немного о том, как работают обновления ядра linux / ubuntu?
Обратите внимание, я бегу apt-get update
перед apt-get upgrade
пока не установлены обновления ядра.
Большое спасибо!
Ваша проблема может быть связана с недопониманием относительно apt
. Репозитории Ubuntu содержат только один текущая версия пакета.
Перед тем как бежать apt-get upgrade
, вам нужно обновить apt
кеш пакетов. Он должен запрашивать у репозиториев актуальные метаданные. В противном случае, apt
не распознает наличие новой версии пакета (в вашем случае, пакета ядра linux). Следовательно, чтобы действительно обновить пакеты на ваших серверах до более новой версии, вы должны запустить
sudo apt-get update && sudo apt-get upgrade
Каждый выпуск Ubuntu содержит список предустановленных ядер, чтобы узнать об установленных ядрах, выполните следующую команду в терминале:
dpkg -l | grep -Ei "linux-headers|linux-image"
ядро состоит из таких файлов, как:
linux-headers-<version>_<version>_all.deb
linux-headers-<version>-generic_<version>_<architecture>.deb
linux-image-<version>-generic_<version>_<architecture>.deb
linux-image-extra-<version>-generic_<version>_<architecture>.deb
в зависимости от архитектуры системы (x86 или x64) do-release-upgrade или apt-get upgrade обновят все установленные пакеты, включая пакеты ядра, однако мы должны выбрать соответствующее ядро для загрузки с
чтобы загрузить новые ядра, перейдите в kernel.ubuntu.com
скачать файлы и установить их, используя dpkg -i
Вы также можете сделать следующее:
apt-cache search linux-image
Выберите тот, который вам нужен, а затем выполните:
sudo apt-get install linux-image-your_version_choice
Поскольку 4-й номер в версии ядра обычно считается патчем ... Я предполагаю, что система определила, что вам не нужен ЭТОТ патч, т.е. программное обеспечение, установленное в вашей системе, не имеет версии патча ядра в качестве зависимости. Он также говорит мне, что это не обновление безопасности.
Итак, если никакое программное обеспечение не зависит от патча 52, и все установленное программное обеспечение подходит для 24, то я предполагаю, что оно не будет установлено, и система оставит ядро 24 в покое.
Ящик получит новое ядро только после перезагрузки. Возможно, у вас уже установлено более новое ядро, но если ящик не перезагружен, у него еще не было возможности переключиться на него. В последних ядрах Linux разрабатывается технология, позволяющая обновлять ядро в реальном времени, но это все еще очень актуально.
Я не помню, в какой версии произошло изменение, но несколько лет назад apt-get и aptitude перестали предлагать обновления ядра по умолчанию, если вы не вошли на сервер локально. Если вы входите на серверы удаленно (через ssh), вы можете использовать команду
sudo apt-get update && sudo apt-get dist-upgrade
для включения обновлений ядра.