JP Vossen on 19 Nov 2015 20:45:17 -0800


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

[PLUG] Kernel autoremove works on Debian & Mint, not Ubuntu


I've noticed that my Debian and Linux Mint 17 (based on Ubuntu 14.04)
autoremove all but the last 3 kernels, but my more "pure" Ubuntu
10.04/Mythbuntu 14.04 do not.  That's annoying since 2 of those machines
are old with small disks and they run out sometimes.

tl;dr: I know how to hack around this but can't figure out WHY it's
happening, any clues?

DETAILS:
Note I manually use `aptitude` on all of the nodes but these days do
most updates via Ansible(1.9.4)::Apt which can use either `apt-get` or
`aptitude` but which should be using `aptitude` since I'm calling it
like "apt: upgrade=full". [1]

I can solve the problem by just running `apt-get autoremove --purge
--yes` but it's REALLY bugging me and I want to understand WHY this is
happening and not just hack around it.

I thought the culprit was Ubuntu's '/etc/apt/apt.conf.d/05aptitude' but
after removing that file I still can't get `aptitude` to notice the
files it should automatically remove.  And out of 14 hosts, the 4
Ubuntu/Mythbuntu are a problem and only 3 had that file.  I also can't
figure out where that file is coming from, since the "aptitude" package
owns the file but the SAME package is on both:

Ubuntu:
$ dpkg-query --search /etc/apt/apt.conf.d/05aptitude
aptitude: /etc/apt/apt.conf.d/05aptitude

$ apt-cache policy aptitude
aptitude:
  Installed: 0.6.8.2-1ubuntu4
  Candidate: 0.6.8.2-1ubuntu4
  Version table:
 *** 0.6.8.2-1ubuntu4 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

$ apt-cache show aptitude | grep '^SHA256'
SHA256: 776d8f2314f5e1edef7fa06d5cbc1184a8a11d90b9fb35caa626032607a525bd

Mint:
$ dpkg-query --search /etc/apt/apt.conf.d/05aptitude
dpkg-query: no path found matching pattern /etc/apt/apt.conf.d/05aptitude

$ apt-cache policy aptitude
aptitude:
  Installed: 0.6.8.2-1ubuntu4
  Candidate: 0.6.8.2-1ubuntu4
  Version table:
 *** 0.6.8.2-1ubuntu4 0
        500 http://archive.ubuntu.com/ubuntu/ trusty/main amd64 Packages
        100 /var/lib/dpkg/status

$ apt-cache show aptitude | grep '^SHA256'
SHA256: 776d8f2314f5e1edef7fa06d5cbc1184a8a11d90b9fb35caa626032607a525bd

So how can one package only sometimes install a file?  Now, I know Mint
does some ugly hacks (like re-writing /etc/motd which causes lots of
"file locally modified" errors during updates), but I can't find one for
this:
# grep -Ri '05aptitude' /etc/linuxmint/* /usr/lib/linuxmint/*


Next, '/etc/kernel/postinst.d/apt-auto-removal' comes in 2 flavors,
Debian and UbMintu but in all cases generates a correct
'/etc/apt/apt.conf.d/01autoremove-kernels'.  There is a single 3
character difference between the files, but that does not seem to be the
problem.  Line 44 has:
	Deb: image-[0-9]+\./
	UbM: image-[0-9]/

'/etc/apt/apt.conf.d/01autoremove' is identical across all 3 distros.

But again, in all cases the generated
'/etc/apt/apt.conf.d/01autoremove-kernels' file is correct and keeps
only the last 2-3 kernels.  Yet old kernels not matching the file are
correctly removed on Debian and Mint but *not* on Ubuntu machines.

Also, on an affected machine `apt-get` will trigger a warning about "The
following packages were automatically installed and are no longer
required" but `aptitude` will not.  Yet I don't have this problem on the
Debian and Mint boxes and I am using `aptitude` there too.

I've diffed the entire '/etc/apt/' dirs from Mint and Ubuntu and none of
the trivial differences popped out at me.

What the heck am I missing?
JP

[1] Search for "aptitude" in http://docs.ansible.com/ansible/apt_module.html
----------------------------|:::======|-------------------------------
JP Vossen, CISSP            |:::======|      http://bashcookbook.com/
My Account, My Opinions     |=========|      http://www.jpsdomain.org/
----------------------------|=========|-------------------------------
"Microsoft Tax" = the additional hardware & yearly fees for the add-on
software required to protect Windows from its own poorly designed and
implemented self, while the overhead incidentally flattens Moore's Law.
___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug