(apologies to Johannes for initially replying to him and not the list
on accident)
On 6/8/07, Johannes Winkelmann <jw(a)smts.ch> wrote:
* snip *
> c. Some package may have no dependent packages, but you want to keep
> them nevertheless. Consider this real world example: the window manager
> 'openbox' comes with a configuration tool, called 'obconf'. The
> 'obconf' port from the portdb depends on 'openbox'. Now imagine you've
> had openbox installed before, and decide to try 'obconf'; after a
> while you realize you don't like it. 'prt-get remove obconf' as you
> imagine it would then remove openbox as well, since there are no
> other packages depending on it on the system. Here, you have to bring
> in external knowledge about the user's preferences.
>
> One of my credos for prt-get has always been "If you can't do it right,
> don't do it at all", and with that in mind, adding a 'depremove' feature
> which would potentially do the wrong thing at times seemed a bad idea.
I think you'd need a way to separate 'libraries' (packages that merely
exist to add functionality to other packages) from 'binaries'
(packages which contain actual applications the user runs). Of
course, for example, the sqlite library also contains a binary tool
for manipulating sqlite databases.
So, you'd basically have to add metadata to Pkgfiles in the comment
section, in which case you'd run the risk of being burnt by a ports
update breaking your system. Or, you could add metadata to the
package database, which would really start turning the package manager
into something more like rpm or dpkg.
I've really been frustrated by this problem for years, and the only
solutions I've come up with are:
1. Stop caring that you may have some extra packages you don't need
lying around (this is actually the best approach unless you are
crammed for space). If you run prt-get depinst gnome-terminal, don't
expect to get your system back to the pristine state it started in
when you first installed crux.
2. Be very careful about installing software. Understand what exactly
goes on when you do a prt-get depinst, and keep track of the
dependencies on your own.
3. Every now and then, list all your installed ports and find any
ports you don't need any more.
Nathan