On 10/17/2013 04:00 AM, Stefan Monnier wrote: >> 1: In fact, I think that meta-packages should only have recommendations and >> suggestions, since they are automatically installed by a default Debian >> configuration. > > I agree that Debian's dependency management would benefit from some > extra refinements. The above suggestion is not quite sufficient, since > for those users (like me) which don't want to auto-install > recommendations, it means that "aptitude install gnome" becomes a no-op, > whereas the user's intention is very clearly different. > > So, my take on it is that Debian should add a new sort of dependency > (call it "important"), which is stronger than a "recommendation", but > which the user can disable. But she couldn't disable them all-at-once > like "recommendations", instead she would have to disable them one at > a time.
Remember that "Recommends" is already a very strong dependency, quoting from http://www.debian.org/doc/debian-policy/ch-relationships.html#s-binarydeps: Recommends This declares a strong, but not absolute, dependency. The Recommends field should list packages that would be found together with this one in all but unusual installations. I will not turn of automatic installation of "Recommends" because I do not consider my installation to be so "unusual". In my opinion a new level of dependency is not needed; Packages should just declare less "Recommends" in order not to lead to people disabling all recommends. > Further along this route, I'd like APT to let me specify the packages > I want declaratively, with a file in which I list: Most of this can be done by using a metapackage (see below). > - the packages that need to be installed (equivalent to the packages > that are marked as manually installed rather than auto-installed as > part of dependencies). A metapackage could declare "Depends: package-list" > - the dependencies that should be ignored/overruled. This is indeed not possible with the packaging system but I also find it very dangerous: Packages assume that their dependencies are installed (this is the point of dependencies after all). > - the "pin <foo> to version <bar>" (where <bar> ideally could also be > "stable", "testing", ...). Explicitly declaring versions is possible via (meta)package "Depends" as well. > - plus more constraints like "stay away from <foo>" (so that if <foo> is > needed by some chain of dependencies, then I want APT to give me an > error rather than to install it, so I can try and work around the > problem). Just let your metapackage declare "Conflicts". As you can see, some of the features you want are already implemented in the Debian packaging system. You might just want to create a simple metapackage to make use of it. Just my point of view Linux-Fan -- http://masysma.ohost.de/
signature.asc
Description: OpenPGP digital signature