John Vestrum wrote:
> Mark Panen wrote:
> > I noticed my kernel has been upgraded two or three times but i am still
> > sitting on the original:
>
> ... The typical advice to use dpkg/apt-query/aptitude only tells
> half the story - those tools only know which kernel is installed,
> not what is running. I finally found what I was looking for in
> /proc/version.
>
> $ cat /proc/version
> Linux version 2.6.32-5-amd64 (Debian 2.6.32-38) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Oct 3 03:59:20 UTC 2011
>
> Based on that I wrote a shell script to tell me if a machine needs a
> reboot, the heart of which is:
I do something similar and so took an interest in your script. :-)
> RUNNINGKERNEL=`awk '{print $5}' /proc/version | tr -d ')'`
> INSTALLEDKERNEL=`dpkg-query --show --showformat='${Version}\n' linux-base`
> ...
> At least this works on amd64 Squeeze.
Note that won't work after Squeeze. In Squeeze works. In Wheezy/Sid:
$ dpkg-query --show --showformat='${Version}\n' linux-base
3.3
A note that you will need something different between now and then.
There is plenty of time however.
You might consider using 'linux-image-$PKGARCH' instead. Where
$PKGARCH is created either depending upon $(uname -m) output or
$(dpkg --print-architecture) output created using /proc/version
output. I prefer to extract it from /proc/version and then it works
on subarchitectures.
$ uname -m
i586
$ cat /proc/version
Linux version 2.6.32-5-486 (Debian 2.6.32-38) (ben@decadent.org.uk) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 Mon Oct 3 03:34:28 UTC 2011
$ perl -lne '$_ =~ m/Linux version \S+-(\S+)/ && print $1;' /proc/version
486
Unfortunately linux-image-$PKGARCH isn't installed by the Squeeze
debian-installer and therefore isn't available unless explicitly
installed. You will have to deal with that problem first. I would
install it and then it would be there. It is one of the packages that
I routinely install manually after a fresh installation.
Bob
Attachment:
signature.asc
Description: Digital signature