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

Re: [RFC] Allow to force or skip Recommends with apt-install



On Tuesday 08 December 2009, Frans Pop wrote:
> D-I now always installs Recommends by default, except when
> base-installer/install-recommends is preseeded to false.
>
> However, there are a few specific cases where we want to force
> installing or not installing Recommends with specific packages,
> irrespective of what the default setting is.
[...]
> Attached a patchseries that makes apt-install recognize two options,
> --no-recommends and --with-recommends, which allow us to force the
> correct behavior in such cases. The options are preserved in the queue
> file [1] if installation of the package is delayed to base-installer.

That's now implemented.

> Note that use of these options should remain the exception. Normally we
> should just honor the general setting.

I've looked at the consequences of this and things are quite complex.
IMO our main goal must be to have installations be as consistent as 
possible.

One complication is that if packages have already been installed by 
debootstrap, any recommends they may have will never get installed.
Example is psmisc which is recommended by initscripts (required) and procps 
(important). Both these rdepends get installed by debootstrap, but psmisc 
is not installed.
For the same reason uuid-runtime will never get installed.

Installation order is also important.
Example: A depends C, B depends C, C recommends D
apt-install --with-recommends A; apt-install --without-recommends B
   => D is installed
apt-install --without-recommends B; apt-install --with-recommends A
   => D is not installed

This is particularly relevant for initramfs-tools and udev. Both have 
various packages depending on them.

So far the introduction, now the actual issues and proposals.

*** popularity-contest (pkgsel; pre-pkgsel.d)
Because it gets installed before tasksel, it would pull in exim4 
prematurely. Add --no-recommends to avoid that.

*** installation-report (save-logs; pre-pkgsel.d)
Because it gets installed before tasksel, it would pull in reportbug, which 
means reportbug would be marked as "automatically installed", which it 
shouldn't be.  Add --no-recommends to avoid that.

*** console-setup (kbd-chooser; post-base-installer.d)
Recommends kbd. IMO it's worthwhile ensuring that kbd always gets installed 
for consistency. Add --with-recommends to achieve that.

*** grub-{legacy,pc,efi,ieee1275} (grub-installer)
All depend on grub-common which recommends os-prober.
- At least for grub-legacy os-prober should not be installed in the target
  system. I've already added --no-recommends to avoid that in SVN.
- For grub-pc I think we can leave it up to the global setting for
  installing recommends.
- For the other two I have no idea...

*** mdadm (base-installer)
Recommends "default-mta" and would thus pull in exim4 prematurely. Needs
--no-recommends to avoid that. But that means it could also install udev 
without recommends, so...

*** udev and initramfstools
It's IMO essential that packages related to booting the system get 
installed consistently, whatever the choices made by the user. Otherwise 
we'll end up at some point with issues that are hard to trace.
As we already ensure that everything that's needed gets apt-installed, the 
most consistent result will be guaranteed by installing all such packages 
with --no-recommends.
This means adding --no-recommends for the following packages:
- udev, initramfs-tools (+ busybox), yaird
- sysconfig-hardware
- flash-kernel, mkvmlinuz
- cryptsetup, lvm2, mdadm, dmsetup, dmraid, multipath-tools-boot
- loop-aes-utils (means we miss sharutils, but we've never needed that)
- pcmciautils

If there are no comments in the next few days I'll commit the changes 
proposed above.

The alternative would be to go back to always installing without 
Recommends.

Cheers,
FJP

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: