Gentoo Archives: gentoo-user

From: Alan McKinnon <alan.mckinnon@×××××.com>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] "emerge -ef world" and "eclean --destructive distfiles" do not agree
Date: Sat, 23 Feb 2008 09:48:15
Message-Id: 200802231144.30139.alan.mckinnon@gmail.com
In Reply to: Re: [gentoo-user] "emerge -ef world" and "eclean --destructive distfiles" do not agree by Erik
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