1 |
On 08/08/2014 15:11, gottlieb@×××.edu wrote: |
2 |
> On Fri, Aug 08 2014, wraeth@×××××××××.au wrote: |
3 |
> |
4 |
>> On Fri, 2014-08-08 at 08:23 +0200, J. Roeleveld wrote: |
5 |
>>> I notice a few perl blockers. |
6 |
>>> You could try the following: |
7 |
>>> |
8 |
>>> # emerge -vuD1 $(qlist -IC 'virtual/perl-*') |
9 |
>>> # perl-cleaner --all -v -- -v |
10 |
>>> |
11 |
>>> And then retry to update world. |
12 |
>>> I've been encountering some perl blockages myself, and this cleared it up for |
13 |
>>> me. |
14 |
>> |
15 |
>> I also notice a conflict between |
16 |
>> |
17 |
>> media-video/ffmpeg-1.2.6-r1::gentoo, ebuild scheduled for merge |
18 |
>> |
19 |
>> media-video/libav-9.14::gentoo, installed |
20 |
>> |
21 |
>> You may want to include which one you prefer (ffmpeg or libav) in your |
22 |
>> call to emerge, and possibly include "--with-bdeps=y": |
23 |
>> |
24 |
>> `emerge -1uDNav --with-bdeps=y @world media-video/<selection>` |
25 |
>> |
26 |
>> Note the addition of the '-1' or "--oneshot" option - you should always |
27 |
>> use this when specifying libraries to emerge. |
28 |
> |
29 |
> (Yes about --oneshot) |
30 |
> |
31 |
> The choice of ffmpeg vs libav seems non-deterministic ?? |
32 |
> |
33 |
> I have a shell open directly on the machine e6510 and am ssh'ed |
34 |
> into e6510 from another machine |
35 |
> |
36 |
> On the direct shell two successive runs of |
37 |
> |
38 |
> e6510 ~ # emerge --update --changed-use --deep @world |
39 |
> (I have EMERGE_DEFAULT_OPTS="--ask --deep --tree --verbose --jobs |
40 |
> --load-average=5") |
41 |
> |
42 |
> gave different results. The first one gave the error msg about libav |
43 |
> and ffmpeg conflicting; the second gave no error and is ready to go. I |
44 |
> looked at the tree output and see that the successful one has an |
45 |
> uninstall of libav right before the install line for ffmpeg. The |
46 |
> unsuccessful one does not have that line. |
47 |
> |
48 |
> On the ssh shell, the first few tries gave the conflict error msg; but |
49 |
> then one succeeded (again proposing to uninstall libav). |
50 |
> |
51 |
> Perhaps the dependency search uses multiple threads?? |
52 |
> |
53 |
> Since I must choose between libav and ffmpeg, I will use the choice that |
54 |
> portage (sometimes) makes and run the successful emerge command, |
55 |
> i.e. say yes to the question from --ask. |
56 |
> |
57 |
> Is this nondeterminism documented or have I done something wrong. |
58 |
|
59 |
It's working as designed. The various deps for ffmpeg vs libav allow |
60 |
either one to satisfy the dep, especially if you have virtual/ffmpeg in |
61 |
world. |
62 |
|
63 |
This new dynamic dep stuff allows portage a degree of freedom in |
64 |
selecting such providers and sometimes it decides to use the one you |
65 |
don't have. To satisfy that decision, it must then uninstall what you |
66 |
have. I suspect the root cause of such apparently random behaviour is |
67 |
that portage is loading your installed apps into an associative array, |
68 |
and the order if items in those are random. |
69 |
|
70 |
Two solutions:: |
71 |
|
72 |
1. use --backtrack <some big number> |
73 |
this tells portage to search deeper and hopefully realize you |
74 |
already have libav |
75 |
|
76 |
2. Put libav in world, this will stop portage from trying to be helpful |
77 |
|
78 |
|
79 |
|
80 |
I prefer the second choice as it makes things very explicit. |
81 |
|
82 |
|
83 |
-- |
84 |
Alan McKinnon |
85 |
alan.mckinnon@×××××.com |