8

I've got an up to date Ubuntu install (13.10).

When I run /usr/lib/update-notifier/apt-check it returns 7:0, ie 7 updates available, none of them security.

However when I then try to upgrade, I get the following:

sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages have been kept back:
  linux-generic linux-headers-generic linux-image-generic
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Can anyone explain why and how to get apt-check to return the correct values? If apt-check had returned 3:0 then that would have seemed to make sense, but where did the 7 come from?

Btw, apt-check is installed with sudo apt-get install update-notifier.

Eric Carvalho
  • 54,385
Luke Cousins
  • 251
  • 1
  • 4
  • 11

1 Answers1

9
/usr/lib/update-notifier/apt-check 

is actually equivalent to stats returned by

apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"

and not

apt-get upgrade|grep "^[[:digit:]]\+ upgraded"

For Example

/usr/lib/update-notifier/apt-check --human-readable

returns

22 packages can be updated.
0 updates are security updates.

whereas

apt-get -s dist-upgrade | grep "^[[:digit:]]\+ upgraded"

returns

18 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.

It actually 18+4 which amounts to 22.

From apt-get manual:

upgrade
       upgrade is used to install the newest versions of all packages
       currently installed on the system from the sources enumerated in
       /etc/apt/sources.list. Packages currently installed with new
       versions available are retrieved and upgraded; under no
       circumstances are currently installed packages removed, or packages
       not already installed retrieved and installed. New versions of
       currently installed packages that cannot be upgraded without
       changing the install status of another package will be left at
       their current version. An update must be performed first so that
       apt-get knows that new versions of packages are available.

   dist-upgrade
       dist-upgrade in addition to performing the function of upgrade,
       also intelligently handles changing dependencies with new versions
       of packages; apt-get has a "smart" conflict resolution system, and
       it will attempt to upgrade the most important packages at the
       expense of less important ones if necessary. So, dist-upgrade
       command may remove some packages. The /etc/apt/sources.list file
       contains a list of locations from which to retrieve desired package
       files. See also apt_preferences(5) for a mechanism for overriding
       the general settings for individual packages.

source

Stormvirux
  • 4,466
  • 1
    Thanks, that makes perfect sense. Given the latest LTS version is coming out in a couple of weeks, I'll just put up with it until then. – Luke Cousins Apr 01 '14 at 13:23