[sisyphus] Странный apt-get remove

Sergey Vlasov vsu на altlinux.ru
Чт Июл 14 19:52:19 UTC 2011


On Thu, Jul 14, 2011 at 12:22:57AM +0400, Alexei V. Mezin wrote:
> Сделал
> 
> apt-get remove kernel-image-std-pae#XXX kernel-image-std-pae#YYY 
> kernel-image-std-pae#ZZZ
> 
> то есть удаление трех ядер одного типа за один раз.
> 
> Все исправно удалилось, но! Из lilo.conf убралось упоминание только 
> первого ядра, и в процессе lilo выполнился только ОДИН раз, сразу после 
> удаления пакетов первого ядра. В итоге ядер нет, а lilo.conf на них 
> указывает.

Действительно, раньше при удалении пакетов с ядрами из %postun делался
вызов /sbin/installkernel --remove $VERSION.  Сейчас вместо этого
перешли на использование файлтриггеров, которые обрабатываются только
один раз в конце успешной транзакции (кстати, если в процессе
установки и удаления пакетов происходит какой-то сбой, файлтриггеры не
обрабатываются - список обновлённых файлов остаётся лежать до
следующего раза).  Однако скрипт /usr/lib/rpm/boot_kernel.filetrigger
не умеет вызывать /sbin/installkernel --remove - при удалении ядра
производится только переключение ядра по умолчанию (/boot/vmlinuz) и
ссылок /boot/vmlinuz-$flavour на одну из оставшихся доступными версий,
если ядро, на которые указывали ссылки, было удалено.

В случае использования загрузчика grub2 эта проблема не возникает,
поскольку для этого загрузчика файл конфигурации /boot/grub/grub.cfg
при необходимости его изменения перегенерируется полностью (кстати,
тоже файлтриггером /usr/lib/rpm/grub2.filetrigger).  Однако для старых
загрузчиков (lilo, grub) такая перегенерация файла конфигурации с нуля
не предусмотрена - для них скрипты из bootloader-utils редактируют
существующий файл конфигурации, добавляя или удаляя по одной записи
при каждом вызове.

В случае lilo проблема частично скрывается ещё и тем, что все пункты,
ссылающиеся на конкретную версию ядра (которые должны были бы
удаляться), имеют флаг optional, поэтому их наличие после удаления
соответствующих ядер не мешает работе, а из отображаемого при загрузке
меню они всё-таки удаляются.  В grub этого не происходит - в меню
загрузчика остаются неработающие пункты.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 198 байтов
Описание: Digital signature
Url     : <http://lists.altlinux.org/pipermail/sisyphus/attachments/20110714/ca53c6bd/attachment.bin>


Подробная информация о списке рассылки Sisyphus