Однажы после установки очередной серверной Ubuntu 14.04 я обновил ядро и решил удалить файлы старого ядра, которые занимали изрядно много места. Обычно в этом случае идут в каталог /boot, узнают версии файлов, прописывают их в командной строке, одним словом всё очень муторно и неудобно.
Я задался целью минимизировать процедуру удаления старого ядра и свести её к одной короткой строке. Это оказалось довольно просто.
Заглянем в каталог /boot и посмотрим версии файлов старого и нового ядер. Файлы ядра называются по-разному, например, vmlinuz-3.19.0-47-generic, initrd.img-3.19.0-47-generic и т.п., но имеют один и тот же номер 3.19.0-47. Версии старого и нового ядер отличаются именно этими номерами, обычно в последних цифрах, например 3.19.0-47 и 3.19.0-25.
Если обозначить различающиеся цифры в маркировке ядер, как N1 (новое) и N2 (старое), то строка удаления старого ядра будет выглядеть следующим образом:
# apt-get -y purge `uname -r | sed s/N1/N2/` && apt-get -y autoremove
Операционная система сама подтянет все зависимости и удалит файлы старого ядра все до единого.
В нашем конкретном случае надо набрать:
# apt-get -y purge `uname -r | sed s/47/25/` && apt-get -y autoremove
Интересно, что аналогичным образом можно установить новое ядро, зная его версию, только номера N1 и N2 поменять местами:
# apt-get install `uname -r | sed s/25/47/`
Единственно, при этом будет установлено несколько больше пакетов, чем при конкретном указании основных из них, но по объёму это различие непринципиально (например, 292 вместо 288 Мб).