[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Squeeze-updates not working



bd satish wrote:
> [~]:11 $ cat /proc/version
> Linux version 2.6.32-5-amd64 (Debian 2.6.32-39) (dannf@debian.org)
                                       ^^^^^^^^^2.6.32-39 is running

> [~]:12 $ apt-cache policy linux-image-2.6.32-5-amd64
> linux-image-2.6.32-5-amd64:
>  Installed: 2.6.32-39
>  Candidate: 2.6.32-39

2.6.32-39 is both installed and the latest candidate.

>  Version table:
>  *** 2.6.32-39 0
>        500 http://ftp.debian.org/debian/ squeeze-updates/main amd64 Packages
>        500 http://ftp.fi.debian.org/debian/ squeeze-proposed-updates/main amd64 Packages
>        100 /var/lib/dpkg/status

Version 2.6.32-39 exists in all three of those places, two network
repositories and one local cache directory.  This is an updated kernel
that was pushed into the stable-updates area.  It isn't a security
upgrade.  It is a point release upgrade.  The previous kernel isn't
being replaced for security reasons.  Instead the new kernel is being
release as a feature improvement.  Therefore this one goes into the
feature improvement repository of squeeze-updates.

In addition this tells me that you have squeeze-proposed-updates in
your sources.list file too.  Lots of packages are pushed into
squeeze-proposed-updates that never make it through the release
process and never actually make it into a release.  But probably
nothing bad there.  I don't know of anything causing trouble there.
So probably okay.  But I would not recommend doing that unless you
know what you are doing.  It isn't a repository that you would
normally have in your sources.list file.

>     2.6.32-38 0
>        500 http://ftp.fi.debian.org/debian/ squeeze/main amd64 Packages

2.6.32-38 is the kernel in the latest point release.  Seeing it here
in the standard squeeze repository at this point is normal.  In the
next point release the standard repository will be upgraded with the
latest package.  Until then it is available over in squeeze-updates.

>     2.6.32-35squeeze2 0
>        500 http://security.debian.org/ squeeze/updates/main amd64 Packages
>        500 http://security.debian.org/debian-security/ squeeze/updates/main amd64 Packages

This is the last security release kernel.  Because it was a security
release it went into the security.debian.org repository.  As a
security release it replaced the previous 2.6.32-35squeeze1 security
release and 2.6.32-35 released squeeze kernel.  It itself has been
superseded by the above 2.6.32-38 and 2.6.32-39 kernels but isn't
removed from the security archive.  Eventually it is likely that
another security advisory will need to be issued and yet a newer
kernel will be released as a security release.  In which case this one
will be superseded then.

> This is confusing. Linux image is 2.6.32-5 but "installed version" is
> 2.6.32-39 ! Am I missing something ?

Tom H wrote:
> It means that you have
> "linux-image-2.6.32-5-amd64_2.6.32-39_amd64.deb" installed and it's
> the latest amd64 kernel deb for squeeze.

Yes.  For one as Tom says you already have the latest kernel
installed.  That is why you are not seeing the upgrade being offered.
Because you already upgraded and already have the latest kernel
installed.  Not only that but you have rebooted since then and so are
running that kernel.  Usually there is a time window after install and
before rebooting when you would still be running the previous kernel.
That would be shown in the /proc/version information.

As to your specific question, well, I only have a fuzzy understanding
and can therefore only explain it partially.  But I will give
explaining it a go.  But think of this like the Bohr model of the
atom.  It is not correct but still useful until a more precise
understanding is needed.  If someone wants to jump in and give the
actual details that is fine.

The kernel presents an ABI (application binary interface) and an API
(application programming interface).  That is the combined set of
system calls and their interfaces.  As long as the API does not change
then kernel modules compiled with the kernel do not need to be
updated.  As long as the interface is maintained then kernel modules
compiled against it do not need to be recompiled.  But ever so often
the ABI must change due to development.  Mostly new system interfaces
are added.  But sometimes existing system interfaces are changed.  In
that case modules compiled with the kernel must be recompiled.  That
is an important point.  If compiled kernel modules can be continued to
be used or if they must be recompiled against the new kernel.

Debian names the kernel package linux-image-2.6.32-5-amd64 with a
version 2.6.32-39.  If the ABI/API does not change then the package
name is kept the same and the version is increased.  If the ABI/API
changes in an incompatible way and kernel modules need to be
recompiled then the package name is changed to a different name.

The package name, the package version will always have a part that
matches the upstream kernel version.  In this case 2.6.32.  Then the
part -5 signifies the version of the ABI/API in Debian.  The -amd64 is
obviously the architecture.  The -39 is the version of that ABI/API
package.

Again, I am sure the model I presented is imprecise.  Especially
around the hand waving I did around ABI/API.  If anyone wants to
correct this with actual details that is great.  Until then I hope it
is good enough to at least have some understanding of the process that
is involved and can make decisions based upon it to know when your
system kernel needs to be updated and when associated kernel modules
need to be rebuilt against it.  At least you can tell when your
running kernel matches the installed kernel and when the installed
kernel is the latest available or when there is an upgrade pending.

Hope that helps,
Bob

Attachment: signature.asc
Description: Digital signature


Reply to: