1 |
Michael Orlitzky posted on Thu, 17 Jan 2013 11:31:53 -0500 as excerpted: |
2 |
|
3 |
> In either case, to keep your world file accurate, you have to remember |
4 |
> to type an additional useless parameter every time you run the command. |
5 |
> When you're running depclean, you have to cross your fingers and hope |
6 |
> nobody forgot the magic --dont-break-world parameter. |
7 |
> |
8 |
> I've "solved" this by installing every single package as a dependency |
9 |
> of something in our company repo. So we emerge |
10 |
> dev-util/mike_wants_to_be_able_to_run_strace_on_apache (depending on |
11 |
> strace) instead of dev-util/strace. This makes it obvious what can be |
12 |
> removed; we don't have normal packages listed in the world file, so if |
13 |
> you see one, it was a mistake. |
14 |
|
15 |
Different (and IMO nicer, but it requires portage sets support) solution |
16 |
here, same problem. |
17 |
|
18 |
Two part solution: |
19 |
|
20 |
1) For years, I've had a set of aliases to emerge, most of which add -1, |
21 |
so I don't have to worry about world-file pollution. The aliases break |
22 |
down into two sets, ea* and ep*, emerge --ask and emerge --pretend. |
23 |
|
24 |
Examples: |
25 |
|
26 |
eaw emerge --ask @world (--update --deep --newuse are there too, and |
27 |
--jobs, etc, --with-bdeps=y is in my emerge defaults) |
28 |
|
29 |
epw same thing basically, but --pretend instead of --ask. |
30 |
|
31 |
eptw emerge --pretend --tree @world |
32 |
|
33 |
ea emerge -av1 $* |
34 |
|
35 |
epl emerge -pvlO $* (see the changelog for an upgrade before I do it) |
36 |
|
37 |
Significant to this discussion: |
38 |
|
39 |
ea2 emerge -av --select $* (the 2 being shorthand for NOT oneshot) |
40 |
|
41 |
(I have tab-completion stubs built on the normal emerge completions, too, |
42 |
so get full tab-completion on my short forms. =:^) |
43 |
|
44 |
|
45 |
I don't even /use/ the long forms any longer, except for copying to bugs, |
46 |
etc, only my short forms. So no weird stuff in @world, as I have -1 on |
47 |
my short forms by default, and specifically use the e*2 forms when I WANT |
48 |
it in world. As I said, I've been doing this for years now. |
49 |
|
50 |
2) Portage sets support made things even better. They first appeared |
51 |
shortly before I setup my netbook, and in the process of going thru my |
52 |
existing world file to figure out what I wanted on the netbook, I simply |
53 |
split the world file into a bunch of categorized sets, beginning with the |
54 |
kde sets, which I manage in parallel to the ones found in the kde overlay |
55 |
(but with some package entries commented out), but extended to dev, |
56 |
net.admin, net.user, etc. |
57 |
|
58 |
Now my world-file is normally empty, with all packages that would |
59 |
normally be in world listed in a set instead, with the sets in turn |
60 |
listed in the world_sets file. |
61 |
|
62 |
So there's only two conditions under which a package would be listed in |
63 |
the world file instead of in a set to be found in world_sets: |
64 |
|
65 |
2a) I sometimes use the world file as a "package purgatory", for packages |
66 |
I'm testing so I don't want them removed by depclean, but I've not yet |
67 |
decided to keep, so I don't want them in my normal sets, either. The |
68 |
world file is thus a very convenient middle ground. =:^) |
69 |
|
70 |
2b) I somehow made a mistake, and something ended up in world that |
71 |
shouldn't have. (Due to my longstanding alias usage, this case has so |
72 |
far been entirely theoretical; I've not made that mistake since the |
73 |
introduction of sets... yet. But I'm glad the protection's there, in |
74 |
case I do. =:^) |
75 |
|
76 |
-- |
77 |
Duncan - List replies preferred. No HTML msgs. |
78 |
"Every nonfree program has a lord, a master -- |
79 |
and if you use the program, he is your master." Richard Stallman |