- Безопасно ли удалять старые пакеты linux-headers и linux-image?
- 4 ответа
- Удаление лишних ядер на примере Ubuntu 10.04 LTS
- Заголовки
- Комментарии
- [тупой вопрос] Зачем нужен linux-headers?
- Обновление ядра Ubuntu 18.04 LTS
- Устанавливаем новое ядро
- Удаляем старые ядра
- Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?
Безопасно ли удалять старые пакеты linux-headers и linux-image?
4 ответа
Да, Майкл — полностью безопасно удалить это старое ядро. По умолчанию Ubuntu хранит два ядра — текущее и предыдущее. Один набор пакетов ядра занимает около 335 МБ дискового пространства, поэтому вы получаете информацию о свободном пространстве. Чтобы полностью удалить эти старые пакеты ядра, включая все файлы конфигурации, выполните эту команду ( purge вместо autoremove ):
Да, это совершенно безопасно, оно предназначено для очистки неиспользуемых ядер. Если вы выполните:
в терминале, вы увидите, что существует более двух версий ядра. Ubuntu держит 2 нормально, так что вы можете вернуться на одну версию. Если у вас больше 2,
sudo apt autoremove
очистит самый старый пакет, так как другие пакеты остались и больше не используются из-за измененных зависимостей.
Да, это безопасно.
И вот то, как определить ответ для себя с помощью uname команда:
В этом случае Вы видите, что моя рабочая система 4.15.0-34, несколько версий выше-29. Таким образом, если мои аппаратные средства работают правильно над-34, то-29 безопасно удалить. Ubuntu сохраняет более старые версии ядра так, чтобы можно было все еще загрузить систему в случае, если новое ядро вызывает проблемы (это очень редко, но произошло),
Давайте предпримем шаги назад и посмотрим на предложенные удаления немного более тщательно:
пакеты изображения — то, что выполняет Ваша система — они — двоичные файлы. Это — важные.
пакеты заголовка используются для компиляции ядер и модулей. Они не исполняемый файл и могут быть удалены в любое время.
Наконец, давайте объясним, что продолжается под капотом: существует некоторое волшебство управления пакета и действительно умный сценарий, связывающий все это.
Кв. управляет Вашими изображениями ядра с помощью метапакета, обычно linux-image-generic метапакет.
Когда новое ядро выпущено, метапакет обновляется с новой зависимостью и способными загрузками что новая зависимость (новый пакет ядра).
Сценарий постустановки инициировал GRUB для обновления и чтобы Вы получили это, «необходимо перезагрузить» уведомление.
Другой сценарий постустановки отмечает некоторых (не все) более старые ядра как имеющих право на удаление.
В следующий раз способные выполнения, это замечает, что те более старые пакеты ядра являются осиротевшими и имеют право на автоудаление, и говорит Вам так.
Ubuntu использовала тот сценарий постустановки для маркировки более старых пакетов ядра в течение довольно многих лет теперь с большим успехом. Это сохраняет новейшее ядро, и под управлением в настоящее время ядро (на всякий случай) и иногда одно более старое ядро. Сценарий мешает Вашей начальной загрузке / заполняться большим количеством старых изображений — одно изображение может составить более чем 300 МБ! На ограниченном пространством LLVM и зашифрованные системы, / начальная загрузка часто являются отдельным разделом, таким образом сохранение того свободного пространства важно!
Источник
Лифт не работает. Ближайший лифт — в соседнем доме.
Удаление лишних ядер на примере Ubuntu 10.04 LTS
13.01.11 18:47 / Обновлено 13.01.11 18:47 | Версия для печати | Ubuntu |
Если у тебя что-то работает — ничего не трогай и не улучшай!
Основное правило системного администратора
Скорострельность компании Canonical в плане выпуска новых ядер — поражает. Это безусловно хорошо: исправляются старые ошибки, добавляется поддержка оборудования, новые возможности.
При установке нового ядра — старые не удаляются автоматически. Это сделано для того, чтобы при каких-либо сбоях новой версии всегда была возможность откатиться назад и вернуть всё как было.
Но при этом:
1. Разрастается загрузочное меню grub (каждая версия ядра занимает 2 его строчки).
2. Уменьшается свободное место на диске, где старые файлы лежат мёртвым грузом (примерно 100 мегабайт для каждой версии)
Если это мешает, имеет смысл удалить старые версии вручную.
Смотрим установленные ядра:
dpkg -l | grep linux-image
У меня получился вот такой списочек:
Конечно же, нам столько не надо.
Достаточно оставить текущую версию и, на всякий случай, предыдущую.
apt-get remove linux-image-[номер_версии]-generic
apt-get remove linux-headers-[номер_версии]
linux-headers-[номер_версии] — это файлы заголовков для ядра. Без самого ядра бессмысленны. Пакет linux-headers-[] утянет с собой сопутствующий linux-headers-[]-generic, не волнуйтесь, так и должно быть.
Повторяем процедуру для каждого лишнего номера_версии.
Меню grub обновится автоматически.
linux-image-[номер_версии]-generic
Состоит из файлов:
- abi-[номер_версии]-generic
- config-[номер_версии]-generic
- initrd.img-[номер_версии]-generic
- System.map-[номер_версии]-generic
- vmcoreinfo-[номер_версии]-generic
- vmlinuz-[номер_версии]-generic
Файлы лежат в каталоге /boot и занимают в сумме 10-15 мегабайт.
Заголовки
linux-headers-[номер_версии]
linux-headers-[номер_версии]-generic
Находятся в /usr/src, занимают примерно 80 мегабайт.
Комментарии
2011.01.13 21:31:36 #cid1235 |
Вместо dpkg -l | grep linux-image, логичнее использовать aptitude search
ilinux-image.
Ну и aptitude лучше, да.
Ещё можно что-нибудь вроде aptitude purge $(aptitude search
ilinux-image -F %p | egrep -v «$(uname -r)|linux-image-generic»)
2011.01.14 16:41:17 #cid1248 |
Вместо dpkg -l | grep linux-image, логичнее использовать aptitude search
Да можно и synaptic, речь-то про убунту.
Кто бы спорил. Но Canonical приучает почему-то к apt-get.
Ещё можно что-нибудь вроде aptitude purge $(aptitude search
ilinux-image -F %p | egrep -v «$(uname -r)|linux-image-generic»)
А предпоследнее ядро?! )
Тем, кто так умеет — эта статья не нужна.
Максим
2013.07.05 01:54:41 #cid67545 |
А если после такое операции в \boot все равно много остается? при этом указание на такое ядро возвращает:
rc linux-image-2.6.32-24-generic-pae 2.6.32-24.43 Linux kernel image for version 2.6.32 on x86
rc linux-image-2.6.32-28-generic-pae 2.6.32-28.55 Linux kernel image for version 2.6.32 on x86
rc linux-image-2.6.32-29-generic-pae 2.6.32-29.58 Linux kernel image for version 2.6.32 on x86
rc linux-image-2.6.32-30-generic-pae 2.6.32-30.59 Linux kernel image for version 2.6.32 on x86
rc linux-image-2.6.32-31-generic-pae 2.6.32-31.61 Linux kernel image for version 2.6.32 on x86
rc linux-image-2.6.32-32-generic-pae 2.6.32-32.62 Linux kernel image for version 2.6.32 on x86
:/boot# apt-get remove linux-image-2.6.32-32-generic-pae
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Пакет linux-image-2.6.32-32-generic-pae не установлен, поэтому не может быть удалён
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
:/boot# apt-get remove linux-image-2.6.32-32-generic
Чтение списков пакетов. Готово
Построение дерева зависимостей
Чтение информации о состоянии. Готово
Пакет linux-image-2.6.32-32-generic не установлен, поэтому не может быть удалён
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Как в таком случае поступать?
Максим
2013.07.05 03:13:06 #cid67547 |
Разобрался, purge в помощь, для каждого пакета:
:/boot# dpkg —purge linux-image-2.6.32-47-generic-pae
Источник
[тупой вопрос] Зачем нужен linux-headers?
Если я компилирую ядро в домашней директории под юзером,из сырцов, скачанных из основных реп, то как добавить linux-headers, если он установлен в /usr/src/ ? Гуглил, но так и не понял, нужен ли linux-headers для компиляции. Если нужен, то для чего?
> Зачем нужен linux-headers?
Для сборки модулей ядра.
Дополнительных? Они же есть в linux-source.
Модули могу удалять или вставлять в ядро. Про linux-headers ничего не сказано.
А модуль для драйверов nvidia тоже в linux-source есть? Что-то не замечал.
а случайно ли не для сборки модулей nvidia, etc. для текущего ядра?
Скорее всего. У меня ати и открытые драйвера. Никогда не ставил linux-headers
исходники не нужны в таком случае.
make headers_install
find usr -name .install -delete
sudo cp -r usr /
или я тебя не правильно понял?
Компилять модули же.
не понимаю сути проблемы-вопроса.. казалось бы, пишешь, что надо, используешь необходимые заголовочные файлы с определениями, обьявлениями.. если таковых не оказывается, то либо ищутся наиболее подходящие, либо пишутся собственные реализации..
а в чём, собственно, суть вопроса?
Для компиляции ядра в твоей схеме linux-headers не нужен, все идет в архиве ядра.
linux-headers нужен для компиляции программ/библиотек плотно работающих с ядром, точнее работающих в некоторых случаях с ядром не через glibc. Ну вот утилита mount например. Модули тут дело десятое.
c scsi/ лучше это не делать, потом не соберутся ни sg_utils , ни писалки дисков, scsi/ предоставляется glibc
asm/
обычно используется гораздо чаще чем вы думаете )
как н странно, но, обычно, это просто ассоциируется с кривыми зависимостями..
соберутся. достаточно в scsi.h в struct scsi_varlen_cdb_hdr изменить u8 на __u8
Источник
Обновление ядра Ubuntu 18.04 LTS
Linux развивается очень быстро — регулярно появляются новые версии ядра, реализующие дополнительные возможности. Еще чаще появляются драйверы к новым устройствам и заплатки с исправлением обнаруженных ошибок (например, прорех в системе защиты). Давайте посмотрим, как можно обновить ядро в Ubuntu 18.04.
Устанавливаем новое ядро
Проверим текущую версию ядра:
Создаем временный каталог:
Переходим по ссылке и выбираем нужную версию ядра. Далее нужно скачать пакеты «generic» или «low latency» для архитектуры своего процессора:
- Пакеты «generic» предназначены для операционных систем, используемых для типовых задач.
- Пакеты «low latency» предназначены для операционных систем, используемых для работы с медиа.
Для архитектуры процессора amd64 , если операционная система используется для типовых задач, скачивать нужно пакеты, выделенные красным:
Для архитектуры процессора amd64 , если операционная система используется для работы с медиа, скачивать нужно пакеты, выделенные зеленым:
С пакетами определились, так что скачиваем только нужные:
Устанавливаем все скачанные пакеты с помощью команды:
Перезагружаем систему и проверяем версию ядра:
Удаляем старые ядра
Рекомендуется иметь в системе минимум две версии ядра — последнюю, используемую на данный момент, и предыдущую, на случай какой-либо неполадки. Смотрим, какие версии ядер были установлены:
На основе полученного списка можно удалить любую версию:
Эти команды удалят образ ядра, а также связанные с ним заголовочные файлы и файлы модулей. И напоследок удалим из системы все лишнее:
Источник
Правильная инструкция по установке linux-headers в Debian Stretch. uname -r|sed ‘s/[^-]*-[^-]*-//’ — работает неправильно?
(uname -r|sed ‘s/[^-]*-[^-]*-//’) — что вот это вот делает?
Но почему apt-get устанавливает linux-headers откуда-то отсюда:
Или нужно при установке обязательно указывать часть backports?
apt-get install -t stretch-backports linux-headers-`uname -r`
Я читал это, но не понял что вот это делает: (uname -r|sed ‘s/[^-]*-[^-]*-//’)? uname -r — понятно, но sed.. ‘s/[^-]*-[^-]*-//’)?!
Заменяет последовательность «[не минусы]минус[не минусы]минус» на пустую строку
Кстати, можно было написать uname -r | cut -d- -f3 , но люди почему-то любят использовать sed для всего.
Можно, но пока нет
А как желательно писать при установку пакетов для архитектуры процессора amd64?
apt-get install linux-image-amd64
apt-get install linux-image-$(uname -r|sed ‘s/[^-]*-[^-]*-//’)
Зачем это всё, когда есть мета-пакеты? Поставил мета-пакет и у тебя всегда будет актуальная версия ядра и хедеров после обновления.
для amd64 одинаково, но это-то заклинание именно такое, чтобы не задавать новичку лишний раз вопрос об архитектуре системы, чтобы работало везде.
замудрено больно, мне проще посмотреть что там есть вкусного
и потом полностью указать желаемое
Зачем это всё, когда есть мета-пакеты?
И какой мета-пакет нужен мне?
мне проще посмотреть что там есть вкусного
Ещё есть apt-cache policy
uname -r | cut -d- -f3-
linux-image-amd64 linux-headers-amd64 — если для обоих указать backports, то так и поставятся.
Вместо того, чтобы в гугле на первой странице найти ответ на вопрос, ты лезешь на форум спрашивать. Нет предела тупости.
А ну я уже поставил этот мета-пакет. Осталось только найти 5 пакетов для 390 драйвера. А эта установка мета-пакетов тоже нужна из backpor’ов насколько я понял.
Такой подход не всегда нужен. Иногда надо установить определённую версию, а не последнюю в случае указания мета-пакета.
Так для меня актуально ядро 4.17, а не 4.18, на который указывает мета-пакет.
в таком случае проще поставить нужную версию, чем колупать sed.
Правильная инструкция по установке linux-headers
Источник