Kangarooo and Srinath: Ah ha, I get what you are on about now. My test system here doesn't have that package because of the same issue :-)
This is now fixed. The script should now only ever remove packages that match this pattern
"linux-image-|linux-headers-|linux-backports-modules-"
*and* show up in the 'dpkg -l' output as a 3 dotted number followed by a dash. This should prevent removal of the package that triggers updates (as it shows up as a 5 dotted number)
The running kernel is now never removed either, just as with the last-good-boot kernel (if present).
There is also an option to run the command.
I've also tweaked the output:
$ ./remove-old-kernels
/etc/kernel/postinst.d/remove-old-kernels:
Reading system config file /etc/remove-old-kernels.conf ...
Found last-good-boot, 2.6.32-23 will never be removed
Current kernel 2.6.32-24 will never be removed
Installed kernels 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37 2.6.32-24.42
Older than top 3: 2.6.32-21.32
Will remove packages for 2.6.32-21.32
Suggested command is ...
sudo apt-get remove linux-image-2.6.32-21-generic
$
if I change my number to keep:
$ ./remove-old-kernels
/etc/kernel/postinst.d/remove-old-kernels:
Reading system config file /etc/remove-old-kernels.conf ...
Found last-good-boot, 2.6.32-23 will never be removed
Current kernel 2.6.32-24 will never be removed
Installed kernels 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37 2.6.32-24.42
Older than top 1: 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37
Will remove packages for 2.6.32-21.32
Will remove packages for 2.6.32-22.36
Nothing can be done with 2.6.32-23.37
Suggested command is ...
sudo apt-get remove linux-image-2.6.32-21-generic linux-image-2.6.32-22-generic
$
This is with what I hope is a more normal set of packages (note 'linux' and 'linux-generic'):
$ dpkg -l | grep ^ii| grep 2.6.32
ii linux 2.6.32.24.25 Generic complete Linux kernel.
ii linux-generic 2.6.32.24.25 Complete Generic Linux kernel
ii linux-headers-2.6.32-23 2.6.32-23.37 Header files related to Linux kernel version
ii linux-headers-2.6.32-23-generic 2.6.32-23.37 Linux kernel headers for version 2.6.32 on x
ii linux-headers-2.6.32-24 2.6.32-24.42 Header files related to Linux kernel version
ii linux-headers-2.6.32-24-generic 2.6.32-24.42 Linux kernel headers for version 2.6.32 on x
ii linux-headers-generic 2.6.32.24.25 Generic Linux kernel headers
ii linux-image 2.6.32.24.25 Generic Linux kernel image.
ii linux-image-2.6.32-21-generic 2.6.32-21.32 Linux kernel image for version 2.6.32 on x86
ii linux-image-2.6.32-22-generic 2.6.32-22.36 Linux kernel image for version 2.6.32 on x86
ii linux-image-2.6.32-23-generic 2.6.32-23.37 Linux kernel image for version 2.6.32 on x86
ii linux-image-2.6.32-24-generic 2.6.32-24.42 Linux kernel image for version 2.6.32 on x86
ii linux-image-generic 2.6.32.24.25 Generic Linux kernel image
ii linux-libc-dev 2.6.32-24.42 Linux Kernel Headers for development
$
Kangarooo and Srinath: Ah ha, I get what you are on about now. My test system here doesn't have that package because of the same issue :-)
This is now fixed. The script should now only ever remove packages that match this pattern image-| linux-headers- |linux- backports- modules- "
"linux-
*and* show up in the 'dpkg -l' output as a 3 dotted number followed by a dash. This should prevent removal of the package that triggers updates (as it shows up as a 5 dotted number)
The running kernel is now never removed either, just as with the last-good-boot kernel (if present).
There is also an option to run the command.
I've also tweaked the output: old-kernels postinst. d/remove- old-kernels: old-kernels. conf ... 2.6.32- 21-generic
$ ./remove-
/etc/kernel/
Reading system config file /etc/remove-
Found last-good-boot, 2.6.32-23 will never be removed
Current kernel 2.6.32-24 will never be removed
Installed kernels 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37 2.6.32-24.42
Older than top 3: 2.6.32-21.32
Will remove packages for 2.6.32-21.32
Suggested command is ...
sudo apt-get remove linux-image-
$
if I change my number to keep:
$ ./remove- old-kernels postinst. d/remove- old-kernels: old-kernels. conf ... 2.6.32- 21-generic linux-image- 2.6.32- 22-generic
/etc/kernel/
Reading system config file /etc/remove-
Found last-good-boot, 2.6.32-23 will never be removed
Current kernel 2.6.32-24 will never be removed
Installed kernels 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37 2.6.32-24.42
Older than top 1: 2.6.32-21.32 2.6.32-22.36 2.6.32-23.37
Will remove packages for 2.6.32-21.32
Will remove packages for 2.6.32-22.36
Nothing can be done with 2.6.32-23.37
Suggested command is ...
sudo apt-get remove linux-image-
$
This is with what I hope is a more normal set of packages (note 'linux' and 'linux-generic'): 2.6.32- 23 2.6.32-23.37 Header files related to Linux kernel version 2.6.32- 23-generic 2.6.32-23.37 Linux kernel headers for version 2.6.32 on x 2.6.32- 24 2.6.32-24.42 Header files related to Linux kernel version 2.6.32- 24-generic 2.6.32-24.42 Linux kernel headers for version 2.6.32 on x generic 2.6.32.24.25 Generic Linux kernel headers 2.6.32- 21-generic 2.6.32-21.32 Linux kernel image for version 2.6.32 on x86 2.6.32- 22-generic 2.6.32-22.36 Linux kernel image for version 2.6.32 on x86 2.6.32- 23-generic 2.6.32-23.37 Linux kernel image for version 2.6.32 on x86 2.6.32- 24-generic 2.6.32-24.42 Linux kernel image for version 2.6.32 on x86
$ dpkg -l | grep ^ii| grep 2.6.32
ii linux 2.6.32.24.25 Generic complete Linux kernel.
ii linux-generic 2.6.32.24.25 Complete Generic Linux kernel
ii linux-headers-
ii linux-headers-
ii linux-headers-
ii linux-headers-
ii linux-headers-
ii linux-image 2.6.32.24.25 Generic Linux kernel image.
ii linux-image-
ii linux-image-
ii linux-image-
ii linux-image-
ii linux-image-generic 2.6.32.24.25 Generic Linux kernel image
ii linux-libc-dev 2.6.32-24.42 Linux Kernel Headers for development
$