FS#4845 - New pacman.conf category: NoInstall
Attached to Project:
Pacman
Opened by name withheld (Gullible Jones) - Wednesday, 21 June 2006, 18:49 GMT
Last edited by Roman Kyrylych (Romashka) - Saturday, 09 February 2008, 11:40 GMT
Opened by name withheld (Gullible Jones) - Wednesday, 21 June 2006, 18:49 GMT
Last edited by Roman Kyrylych (Romashka) - Saturday, 09 February 2008, 11:40 GMT
|
Details
I think it would be nice to have a "NoInstall" category for
pacman.conf... Like IgnorePkg, but instead of preventing an
upgrade, it would do exactly what it said - prevent a (not
yet installed) package from being installed, even if another
package depended on it. This could be useful if, say,
someone didn't want to install archlinux-menus, or wanted to
use the Testing kernel but didn't feel like bothering with
mkinitcpio.
(Actually, come to think of it, it might make more sense to modify IgnorePkg so that it also blocks the installation of listed packages that aren't already installed, on top of what it does now.) |
This task depends upon
Closed by Roman Kyrylych (Romashka)
Saturday, 09 February 2008, 11:40 GMT
Reason for closing: Implemented
Additional comments about closing: Partially implemented as optdepends already, and anyone is welcome to step forward and improve that framework.
See also FS#6430
Saturday, 09 February 2008, 11:40 GMT
Reason for closing: Implemented
Additional comments about closing: Partially implemented as optdepends already, and anyone is welcome to step forward and improve that framework.
See also
(Remember: Keep It Simple.)
As for USE variable: IMHO it would be better to add uses=() functionality to PKGBUILDs. For example:
depends=(glibc openssl pam)
uses=(openldap postgresql mysql)
Then pacman can (optionally) ask user if he/she wants to install those _optional_ dependencies, like this way:
pkgA can make use of the following packages: openldap postgresql mysql
Install openldap? [y/N]:
Install postgresql? [y/N]:
Install mysql? [y/N]:
These questions should be asked only when installing package, not when upgrading. (Of cource this behaviour could be extended to support more fine-grained control in future).
Right now some packages have dependencies in depends=() array that are, in fact, optional. Either such packages should be fixed, or proposed uses=() array functionality (or something similar) should be added.
Oh, I've got slightly offtopic here, sorry. :-)
Once again: NoInstall would be very useful option, at least for me. :-)
and remove the unwanted deps by brute force. Probably the user should know the significance of what he is removing. But then that is ArchLinux for you - Experienced linux users, common sense and KISS policy!
This would, of course, spit off a warning about potential breakage... something like:
warning: package 'foo' is marked as ignored. This could cause applications to stop working.
It is recommended to install 'foo' unless you know what you're doing.
http://bugs.archlinux.org/task/6094#comment13357
and comments below it. Then feel free to close #6094.
About warning message - I think when user uses IgnorePkg (I mean improved version that matches proposed NoInstall) - he/she already knows what he/she is doing (how is this different from -Rd, for example?), so warning messages will be annoying, IMO. :-/
it would be nice to have something like -Sur to install all missed dependencies (those that was removed with -Rd or not installed/updated because of --ignorepkg).
This would be really good solution in cases of breakages due to dependency problems. What do you think about this?
Should I do separate feature request for this?
FS#6430left besides this one) should be closed now, for the same reason thanFS#6626:"Implemented as optdepends already, and anyone is welcome to step forward and improve that framework."
So it is also possible to post a new Feature Request for improving that framework.
But in my opinion, if something needs to be done, it should simply be about printing the optional dependencies during install.
That is, replacing the current way post_install is used by a cleaner, more consistent and controlled way using optdepends.