1 |
On Saturday 23 February 2008, Erik wrote: |
2 |
> Alan McKinnon skrev: |
3 |
> > On Saturday 23 February 2008, Erik wrote: |
4 |
> >> I am running |
5 |
> >> emerge -ef world |
6 |
> >> eclean --destructive distfiles' |
7 |
> >> emerge -ef world |
8 |
> >> eclean --destructive distfiles |
9 |
> >> ... |
10 |
> >> |
11 |
> >> Each time eclean removes the following files: |
12 |
> >> * Building file list for distfiles cleaning... |
13 |
> >> * Cleaning distfiles... |
14 |
> >> [ 258.9 K ] XML-LibXML-1.65.tar.gz |
15 |
> >> [ 478.6 K ] klibc-1.5.8.tar.bz2 |
16 |
> >> [ 290.2 K ] libassuan-1.0.4.tar.bz2 |
17 |
> >> [ 67.7 K ] mftrace-1.2.9.tar.gz |
18 |
> >> [ 9.2 M ] patch-2.6.24-rc7.bz2 |
19 |
> >> [ 243.4 K ] setuptools-0.6c7.tar.gz |
20 |
> >> * Total space that has been freed in distfiles directory: 10.5 M |
21 |
> >> |
22 |
> >> Then emerge downloads them again. I had expected that those 2 |
23 |
> >> programs should agree on which files belong in the set of |
24 |
> >> distfiles. |
25 |
> > |
26 |
> > What happens if you use 'emerge -uNDf world" instead of 'emerge -ef |
27 |
> > world' |
28 |
> > |
29 |
> > -e is a special case and does not equate to the same thing as -uND |
30 |
> |
31 |
> "emerge -uNDf world" does nothing because the system is up to date. |
32 |
> Even if all distfiles are missing, it does nothing (try to move the |
33 |
> distfiles directory away while executing it). That command is |
34 |
> supposed to "download everything that is missing to update the |
35 |
> system". And since the system is up to date, nothing is needed to |
36 |
> update it and it will therefore not download anything. |
37 |
> |
38 |
> What I wanted was "download everything that is missing to reinstall |
39 |
> everything that is currently installed". That is what "emerge -ef |
40 |
> world" should do. Then I wanted to "remove everything that is not |
41 |
> needed to reinstall everything that is currently installed". That is |
42 |
> what "eclean --destructive distfiles" should do. Doing both should |
43 |
> result in a set of distfiles that is "what is needed and only what is |
44 |
> needed to reinstall everything that is currently installed (assuming |
45 |
> that the system is up to date)". But since the 2 commands do not |
46 |
> agree, something is broken somewhere. |
47 |
|
48 |
from man emerge: |
49 |
|
50 |
--emptytree (-e) |
51 |
Reinstalls all world packages and their dependencies to |
52 |
the current USE specifications while dif- |
53 |
fering from the installed set of packages as little as |
54 |
possible. You should run with --pretend |
55 |
first to make sure the result is what you expect. |
56 |
|
57 |
There's that little bit about "differing from the installed set of |
58 |
packages as little as possible". So obviously an --update |
59 |
and --emptytree can produce an (unstated) different list of actions to |
60 |
be taken, and emerge and eclean are both working correctly according to |
61 |
their design specs. |
62 |
|
63 |
I think you are taking the wrong approach, and should be using -uNDF |
64 |
instead. -F fetches everything in src_uri |
65 |
-- |
66 |
Alan McKinnon |
67 |
alan dot mckinnon at gmail dot com |
68 |
|
69 |
-- |
70 |
gentoo-user@l.g.o mailing list |