1 |
Duncan, |
2 |
Makes perfect sense. Thanks. |
3 |
|
4 |
I'll spend some time today grinding through all this stuff and get |
5 |
it cleaned up. |
6 |
|
7 |
Thanks, |
8 |
Mark |
9 |
|
10 |
On 12/31/06, Duncan <1i5t5.duncan@×××.net> wrote: |
11 |
> "Mark Knecht" <markknecht@×××××.com> posted |
12 |
> 5bdc1c8b0612301751k5f65c464nf8b9bd99c3b75091@××××××××××.com, excerpted |
13 |
> below, on Sat, 30 Dec 2006 17:51:29 -0800: |
14 |
> |
15 |
> > I haven't done this in quite awhile so this evening I started |
16 |
> > looking at dependencies a bit. I thought I might take a shot at |
17 |
> > cleaning things up old stuff left around from updates over the last |
18 |
> > year or so. I ran emerge -p --depclean and was told that there were |
19 |
> > about 45 things to remove so I decided I'd try removing a few |
20 |
> > one-at-a-time and see how it went. First I sync'ed and did an emerge |
21 |
> > -DuN world and made sure the machine was up to date. I then removed |
22 |
> > what seemed like a pretty random entry late on the list - imlib - and |
23 |
> > then a revdep-rebuild -p to see what it thought. I was then told I |
24 |
> > needed to emerge revisions of two new things - gnome-lib and |
25 |
> > gtk-pixbuf - neither of which existed according to both emerge and |
26 |
> > eix. I then re-emerged imlib, reran revdep-rebuild and now I see the |
27 |
> > machine is consistent again. |
28 |
> |
29 |
> gnome-lib and gtk-pixbuf are GNOME-1. Somewhere, you still have something |
30 |
> wanting GNOME-1 stuff, which has been removed from the tree as nothing |
31 |
> current depends on it. |
32 |
> |
33 |
> You can use equery -d <package> to get a list of merged packages depending |
34 |
> on <package>. Try that with gnome-lib and see what comes up. Maybe you |
35 |
> don't need it any more and can unmerge it. Or, if it's still in the tree |
36 |
> the dependencies must now be fixed, so remerging it should kill the |
37 |
> dependencies on gnome-lib. (equery is part of gentoolkit.) |
38 |
> |
39 |
> It's also possible you have "orphaned" libraries around that somehow got |
40 |
> left behind after an unmerge. Portage won't know about these so |
41 |
> --depclean won't consider them. However, revdep-rebuild does a scan of |
42 |
> the actual libraries and applications you have, including orphans and |
43 |
> binary-only packages (which remerging won't fix since you just remerge the |
44 |
> same binary libraries with the same compiled in dependencies), and thus |
45 |
> catches things portage wouldn't. |
46 |
> |
47 |
> > Is this a question that certain ebuilds are not written correctly |
48 |
> > and don't somehow call for the right dependencies, or is it something |
49 |
> > else? |
50 |
> |
51 |
> It's probably either packages that have changed since you merged them, or |
52 |
> orphans, as mentioned above. It could however also be just as you said, |
53 |
> dependencies that aren't properly noted in the ebuild. This can be either |
54 |
> a missed dependency that needs to be there, or something the package |
55 |
> configure script detected on its own, that wasn't part of the ebuild. |
56 |
> Gentoo devs try not to have any of those "autodetected" things, because it |
57 |
> causes problems exactly like what you are seeing. Instead, they try to |
58 |
> specify a hard dependency if the package really needs it, make it |
59 |
> conditional on a USE flag if it's optional, or unconditionally tell the |
60 |
> config script NOT to use it if Gentoo has a different way of handling it |
61 |
> or something, as sometimes happens. However, sometimes upstream changes |
62 |
> the dependencies or optional dependencies and the Gentoo devs don't catch |
63 |
> the changed config it until someone runs into problems and files a bug. |
64 |
> |
65 |
> > Also, is there any better tool these days for cleaning up stale |
66 |
> > packages left around than emerge --depclean? |
67 |
> |
68 |
> Not really... that I know of anyway. There are a few other tools such as |
69 |
> dep, from the udept package, but it's worse, not better. (From what I can |
70 |
> tell, it checks the dependencies in the ebuilds themselves but not the |
71 |
> ones brought in by the eclasses, so it misses some. It's quite a bit |
72 |
> faster, but it's also not anywhere near as dependable.) |
73 |
> |
74 |
> Basically, it's a process of using --depclean -p, and getting a list, then |
75 |
> using common sense and trial and error to figure out what's safe to remove |
76 |
> and what's not. It's not an easy or simple process, which is why there |
77 |
> are such big warnings on it. However, it's worthwhile to do once in |
78 |
> awhile, both because it helps keep the troubles away, and because stuff |
79 |
> that it says needs removed is stuff portage won't be regularly updating, |
80 |
> and that can quickly become a security issue if there's a vulnerability in |
81 |
> one of those packages. |
82 |
> |
83 |
> One thing that makes things MUCH easier, however, and you may already be |
84 |
> doing this, is using FEATURES=buildpkg. If you are, testing unmerges is |
85 |
> vastly easier, since if something needs the package, you can simply emerge |
86 |
> -k the binary package that was created during the initial merge -- that's |
87 |
> what the buildpkg feature DOES. |
88 |
> |
89 |
> If you haven't been using the buildpkg feature, it's also possible to |
90 |
> quickpkg the package already on your system before you remove it. Again, |
91 |
> if it turns out you actually need it, you don't have to spend all that |
92 |
> time recompiling it, all you have to do is emerge -k it, to remerge the |
93 |
> binary package you created using quickpkg. |
94 |
> |
95 |
> -- |
96 |
> Duncan - List replies preferred. No HTML msgs. |
97 |
> "Every nonfree program has a lord, a master -- |
98 |
> and if you use the program, he is your master." Richard Stallman |
99 |
> |
100 |
> -- |
101 |
> gentoo-amd64@g.o mailing list |
102 |
> |
103 |
> |
104 |
-- |
105 |
gentoo-amd64@g.o mailing list |