JP Vossen on 20 Nov 2015 09:16:19 -0800


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

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


>
https://askubuntu.com/questions/563483/why-doesnt-apt-get-autoremove-remove-my-old-kernels

Nope, that's not it.  I already found that one, and many similar links,
and that's how I found the general mechanism.  But as I said below
'/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'.  It's also important to note
that '/etc/apt/apt.conf.d/01autoremove' is identical across all 3 distros!

I know who is doing it (Canonical/Ubuntu), and I know why they are doing
it, though I think it's totally wrong and misguided, since it works just
fine for Debian and Mint.  What I want to know is HOW Ubuntu is
overriding Debian, and/or how Mint is overriding Ubuntu's override.

Thanks for thinking about this though!

The other interesting note to Keith's point is that most of the "how do
I clean it up" stuff I've ever seen talks about manually running
something like `apt-get remove linux-image-3.13.0-4{3,4,5}-generic
linux-image-3.13.0-4{3,4,5}-generic`.  The "autoremove" advice is rare.

And as for space, I have some old machines that are limited, and/or I
have dedicated boot partitions that date back to before you could boot
certain LVM and/or mdadm configs (I forget the details).

I just run `ansible all -a 'bash -c "ls -l /boot/vmlinuz*"'` or `ansible
all -a 'apt-get autoremove --purge --dry-run'` and eyeball the results
and I've got one machine with 12 old kernels! :-(

But again, it's JUST Ubuntu and immediate family (Mythbuntu, Xubuntu)!
Debian and Mint Just Work, even though Ubuntu is built on Debian and
Mint is build on Ubuntu.


On 11/20/2015 11:00 AM, Rich Mingin (PLUG) wrote:
> While I am loathe to simply throw a link at a question, it looks like
> this was a decision made by Ubuntu (doubtlessly to protect users from
> themselves), and it's being affected by several configs. There's a lot
> of good and relevant info in the linked thread.
> 
> https://askubuntu.com/questions/563483/why-doesnt-apt-get-autoremove-remove-my-old-kernels



> On Fri, Nov 20, 2015 at 10:54 AM, Keith C. Perry
> <kperry@daotechnologies.com <mailto:kperry@daotechnologies.com>> wrote:
> 
>     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


>     ----- Original Message -----
>     From: "JP Vossen" <jp@jpsdomain.org <mailto:jp@jpsdomain.org>>
>     To: "Philadelphia Linux User's Group Discussion List"
>     <plug@lists.phillylinux.org <mailto: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