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

Re: Dependencies of metapackages

On Tue, Aug 30, 2011 at 12:32 +0200, Cyril Brulebois wrote:
> Wolodja Wentland <babilen@gmail.com> (30/08/2011):
> > It is my impression that the problems mentioned in my initial mail can
> > be solved by changing metapackages (like those mentioned by Cyril in
> > his reply) to use Recommends instead of Depends.
> > 
> > I am, however, not entirely sure if there are any good reasons for not
> > doing this and therefore hoped to spur a discussion of this topic.
> > What is problematic about this change or a general suggestion that
> > metapackages should use Recommends instead of Depends?
> If you do that, you lose the distinction between packages that are
> absolutely required, and those that are only a recommendation, and can
> be skipped by the experienced users.
> If you look at xfce4, you can see it pulls by default xorg (which pulls
> in turn an X server and drivers), and a few extra items which are not
> strictly needed. For example, if you want to run xfce4 with an exported
> display, you don't really need an X server. Or desktop-base support. So
> if you know what you're doing, you can still use the meta package to
> pull the Depends, but skip some if not all Recommends.

Thank you Cyril for mentioning this important point, which unfortunately also
means that almost everything that can be done right now to remedy the
situation is a compromise.

It seems to me that the typical victims of this behaviour are not experienced
users, but those that installed Debian in the default configuration with the
Desktop task. After some time they might have enough experience to decide that
they do not want a certain set of packages, but know nothing about
metapackages and the way they behave. All they see is that "apt" is removing a
huge number of packages if they attempt to remove one of the dependencies.
They would, in the optimal case, know enough about Debian and the various
number of metapackages to be able to work around this problem. Solutions (for
gnome) include:

    * Mark all dependencies of the metapackage as manually installed:

        aptitude unmarkauto '~R^gnome$' '~RRecommends:^gnome$'

    * Install one of the smaller metapackages like gnome-session and/or
      explicitly mark packages they want to keep as manually installed.

    * Accept the "fact" that a particular package can not be removed without
      "breaking" their system.

You are completely right that the distinction between required packages and
recommendations is lost if the (large?) metapackages use Recommends for both
types of dependencies. I see metapackages as convenience packages that allow
the user to easily specify a set of related packages and would argue that what
is really needed for, say, Gnome is specified in the gnome-session metapackage
not the gnome package.

IMHO it is much easier for experienced users to achieve what you described in
your penultimate sentence than it is for inexperienced users to slim down
their system. So, what can be done to make life easier for all those users
that are bitten by this?

    * Change large metapackages to Recommend rather then Depend on sets of
      packages that comprise a certain task.

      - Experienced users can not use these packages to only install required

        → What is really essential in these packages that is not already
          combined in a smaller metapackage?
        → Experienced users can easily specify the exact set of packages
          they want without these metapackages.

      + Inexperienced users can easily trim down their system without seeing
        the interface they use to communicate with the computer being removed.

    * Change the way metapackages are treated by packaging tools

      - I really dislike this idea (cf. DEP-6 thread)

    * Change d-i to incorporate a more fine-grained package/task selection

        - More complicated installation
        - Complete removal of "gnome" is harder as multiple metapackage might
          have to be removed. (i.e. all manually selected)
        - Only applies to initial installations

    * Do not change anything.
    * ... (?)

I agree that a general change of all metapackages is probably not a good idea,
but I think that changing the root-nodes of the metapackage tree (i.e.
metapackages like gnome, xfce4, kde-full, ...) is a sensible change. It is in
particular one that solves the problems without the need to introduce new
package fields, change packaging tools or their semantics.
Wolodja <babilen@gmail.com>

081C B7CD FF04 2BA9 94EA  36B2 8B7F 7D30 CAF1 4EFC

Attachment: signature.asc
Description: Digital signature

Reply to: