My only real experience with BSD-style packages is with MacPorts. I have no idea what their relation really is, but BSD ports can't possibly be this bad and have such a rabid following.
First off, it has to compile everything from fucking source. This is great until you want to install something like GnuCash and it has to compile the entire universe. Build deps, particularly with GUI software, are aways way bigger than runtime deps. Ugg. This is particularly stupid for a single architecture package system. Sure, I can compile binaries with MacPorts, but that defeats the point. Maybe there's some hidden MacPorts binary archive somewhere I'm missing, but why is it hidden? Can I have a command to uninstall a package and all its dependencies? $ port uninstall p5-scalar-list-utils ---> Unable to uninstall p5-scalar-list-utils 1.19_1, the following ports depend on it: ---> p5-io-compress-base Error: port uninstall failed: Please uninstall the ports that depend on p5-scalar-list-utils first. $ port uninstall p5-io-compress-base ---> Unable to uninstall p5-io-compress-base 2.015_0, the following ports depend on it: ---> p5-compress-zlib ---> p5-io-compress-zlib ---> p5-archive-tar Error: port uninstall failed: Please uninstall the ports that depend on p5-io-compress-base first. $ port uninstall p5-archive-tar ---> Unable to uninstall p5-archive-tar 1.40_0, the following ports depend on it: ---> p5-module-build Error: port uninstall failed: Please uninstall the ports that depend on p5-archive-tar first. etc.. No, I don't want to walk down the dependency tree manually deleting each leaf, just figure it out and let me know what's going to be uninstalled. Oh, there's --follow-dependents but this is basically package management Russian Roulette. $ sudo port uninstall --follow-dependents p5-scalar-list-utils ---> Deactivating git-core @1.6.0.5_0+bash_completion+doc+gitweb+svn Wait, what?! NO, I NEED THAT! Speaking of letting me know, when I go to install a package and it has dependencies, give me a heads up before you just start installing shit! Does this package have six dependencies or six million? I don't know! $ sudo port install xmms ---> Fetching audiofile I asked for xmms, why are you installing audiofile? What else are you going to install? How long is this going to take? ARGH!! AFAIK there's no way to get the full dependency tree of a package. You only get a single level. $ port dependents p5-scalar-list-utils p5-io-compress-base depends on p5-scalar-list-utils Well that's just peachy. God forbid I wanted to fix any of this because it's a 3250 line program written in TEE CEE ELLLLLLLLL!!!!
