1 |
On Mon, 2 Jan 2012 11:20:19 -0500 |
2 |
Michael Mol <mikemol@×××××.com> wrote: |
3 |
|
4 |
> On Mon, Jan 2, 2012 at 11:16 AM, Michael Mol <mikemol@×××××.com> |
5 |
> wrote: |
6 |
> > On Mon, Jan 2, 2012 at 11:09 AM, Michael Orlitzky |
7 |
> > <michael@××××××××.com> wrote: |
8 |
> >> On 01/02/2012 11:01 AM, Mark Knecht wrote: |
9 |
> >>> |
10 |
> >>> |
11 |
> >>> I tell by knowing which files I want in @world. Everything in |
12 |
> >>> world should be a package __I__ specifically want to use. |
13 |
> >>> Everything in world (on my machines anyway) is something: |
14 |
> >>> |
15 |
> >>> 1) I'd call from the command line |
16 |
> >>> 2) Need to write a little software myself, most specifically a |
17 |
> >>> library 3) Aid in displaying things, like font packages |
18 |
> >>> 4) Something required by Gentoo that I don't totally understand, |
19 |
> >>> like a virtual package. |
20 |
> >>> |
21 |
> >>> I just look through every so often and make sure everything seems |
22 |
> >>> to meet those sorts of requirements. When I find a library or |
23 |
> >>> something else then: |
24 |
> >>> |
25 |
> >>> 1) I make sure I'm clean with emerge -DuN @world AND emerge -p |
26 |
> >>> --depclean 2) I'll delete the questionable item |
27 |
> >>> 3) I'll see what happens with the two commands in #1 |
28 |
> >>> |
29 |
> >>> To me it's pretty straight forward, but I'm also not bothered at |
30 |
> >>> all by the idea that emerge package and emerge -u package do the |
31 |
> >>> same thing. A machine that doesn't have a package, when updated, |
32 |
> >>> should have the package and it should (IMO) be in world, but |
33 |
> >>> that's just me. |
34 |
> >> |
35 |
> >> |
36 |
> >> Fine for your home PC, doesn't cut it on servers. I have the |
37 |
> >> following in one of my world files: |
38 |
> >> |
39 |
> >> dev-php/PEAR-Mail |
40 |
> >> dev-php/PEAR-Mail_Mime |
41 |
> >> dev-php/PEAR-PEAR |
42 |
> >> dev-php/PEAR-Structures_Graph |
43 |
> >> |
44 |
> >> which of those do I want? At least one of them was installed to |
45 |
> >> support a customer's custom PHP application. Maybe all of them |
46 |
> >> were and they all belong in world. No one knows, this server is |
47 |
> >> older than the current --update behavior. |
48 |
> >> |
49 |
> >> So which ones can I remove? |
50 |
> >> |
51 |
> >> Solutions involving time travel and/or losing customers will be |
52 |
> >> disqualified. |
53 |
> > |
54 |
> > Make a backup copy of your world file. |
55 |
> > |
56 |
> > 1a. Remove those four lines. |
57 |
> > 2a. emerge -p --depclean |
58 |
> > 3a. Did any of those show up in the to-be-removed set? Add them |
59 |
> > back. |
60 |
> > |
61 |
> > Alternately: |
62 |
> > 1b. emerge -pev --tree --with-bdeps=y @world |
63 |
> > 2b Find those packages in the output. The tree form of the display |
64 |
> > will help you see if anything is depending on them. |
65 |
> > 3b. If anything is depending on them, you should be able to safely |
66 |
> > remove them from your world file. I'd follow up with the 1a, 2a, 3a |
67 |
> > solution to be sure. |
68 |
> |
69 |
> It just occurred to me...in the future, you might be able to build |
70 |
> ebuilds for managing customer requests, to ensure that dependencies on |
71 |
> particular packages with USE flags and version requirements are met. |
72 |
> |
73 |
> I haven't built ebuilds myself yet, but it's on my TODO list. |
74 |
> |
75 |
|
76 |
It's quite easy actually, doubly so if the package follows some sane |
77 |
rational build process (like eg configure && make && make install). In |
78 |
that case the ebuild is very small as the portage framework does all |
79 |
the heavy lifting automagically. |
80 |
|
81 |
I'd move that TODO item higher up on the priority list if I were you, |
82 |
you'll be glad you did :-) |
83 |
|
84 |
|
85 |
|
86 |
-- |
87 |
Alan McKinnnon |
88 |
alan.mckinnon@×××××.com |