Keith C. Perry on 20 Nov 2015 07:54:25 -0800


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

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


This is a question I've always had too.  Granted grub now hides all the older kernels but I've noticed this in Kubuntu was well.  Its only through the release upgrade process that they seem to get purged.

I never thought about the space concern- that's a good point so thank you to pointing out the manual method to clean up but I would also like to know why there isn't a more regular clean up process.

Paging Dr. Fisher... Dr. Jim Fisher please come to room 103 for a consult  :D

~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 
Keith C. Perry, MS E.E. 
Owner, DAO Technologies LLC 
(O) +1.215.525.4165 x2033 
(M) +1.215.432.5167 
www.daotechnologies.com

----- Original Message -----
From: "JP Vossen" <jp@jpsdomain.org>
To: "Philadelphia Linux User's Group Discussion List" <plug@lists.phillylinux.org>
Sent: Thursday, November 19, 2015 11:45:11 PM
Subject: [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
___________________________________________________________________________
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