Pacho Ramos posted on Sat, 16 Jun 2012 18:30:55 +0200 as excerpted: >> > 2. If user emerges ppp, it will be recorded in world file and, then, >> > if in the future he removes bluez, emerge --depclean want clean no >> > longer needed ppp and then, people end up with a lot of packages they >> > needed to manually emerge some year but that they problem no longer >> > need at all. >> >> It's not our job to maintain users world files. >> >> >> > Even for me I tend to periodically check world files of machines I > maintain, and it's tedious, we shouldn't promote people to easily > contaminate their world files. Currently, most people will end up having > a lot of unneeded packages installed in their systems after years of > usage due this way of happily telling people to install some random > packages to get extra support.
Looking at the broader picture, the problem of extraneous packages in the world file has always concerned me. If it were to be done over again, and I think Zac would likely agree, emerge would use --oneshot by default, so as not to contaminate the world file unnecessarily. Then there'd be a different option (say -2) to add the package to the world file if that's what was actually intended. That's actually how I have my emerge front-end scriptlets/aliases setup here. -1 is the default; if I want it in the world file I use the *2 script variant, which omits the -1. But of course changing behavior in mid-stream doesn't work so well, so emerge continues to stick stuff in the world file by default. Meanwhile, one coming solution to this, in portage 2.2 anyway, is sets. Since I've been working with kde4 since it was overlay-only and sets- only, no meta-packages, I've been using sets for quite awhile and it's now entirely integrated into how I work with portage. When I setup my netbook on gentoo, I wanted most of the same setup as on my main machine, but with some differences, so I had to go thru the main machine's world file and pick and choose what I needed. What I quickly realized is that my kde packages were already nicely categorized into sets, so all I really needed to do was split up the rest of the world file into a bunch of other sets, by category. So for instance: $>>cat /etc/portage/sets/jed.dev dev-util/ccache dev-util/desktop-file-utils dev-vcs/git sys-devel/bin86 sys-devel/gcc sys-devel/gdb I have 24 such sets including my (customized) kde sets. All packages formerly listed in the world file are found in these sets, instead, and of course the sets are in turn listed in /var/lib/portage/world_sets. My world file is normally entirely empty, tho I do use it occasionally for packages I haven't decided whether I want to keep or not, but want to protect from --depclean, which I run after each update. So my world file serves as a kind of package purgatory, until I decide whether it's going to be a part of my normal system, or removed. The sets, meanwhile, break the former world file down into much more manageable categorized chunks, each of which is short enough and categorized specifically enough that if a package is no longer needed, it immediately sticks out like a sore thumb, as it's not lost among the noise of hundreds of "twisty packages, all different". =:^) While not a direct solution to the problem at hand, proper use of sets WILL and DOES dramatically ease gentoo world-package administration, going a long way toward eliminating crufty world lists simply by allowing them to be cut into nice little chunks that can be categorized in ways that make sense for an individual site, so the cruft sticks out like the sore thumb it can really be, and is thus easily found and removed. Meanwhile, another bonus of sets is the extra protection it gives you if you try to emerge -C something in a sets file (as opposed to the world file itself). =:^) Seeing that warning that the package is in a set and can't be directly unmerged is rather like seeing the warning that it's in @system, except that user sets are easier to directly manage, and it has saved my butt a couple times when I was really too sleepy to be adminning the system in the first place. But it's easy enough to remove (or comment) that line from the set, if removal is really intended, and that's what would ultimately need to be done anyway, to prevent it getting remerged. Unfortunately, it has begun to look like sets are where baselayout2 and openrc were for many years, "forever coming, never getting here", at least for stable or even unmasked into ~arch. =:^( -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman