On Saturday 23 February 2008, Erik wrote:
> Alan McKinnon skrev:
> > On Saturday 23 February 2008, Erik wrote:
> >> I am running
> >> emerge -ef world
> >> eclean --destructive distfiles'
> >> emerge -ef world
> >> eclean --destructive distfiles
> >> ...
> >>
> >> Each time eclean removes the following files:
> >>  * Building file list for distfiles cleaning...
> >>  * Cleaning distfiles...
> >>  [ 258.9 K ] XML-LibXML-1.65.tar.gz
> >>  [ 478.6 K ] klibc-1.5.8.tar.bz2
> >>  [ 290.2 K ] libassuan-1.0.4.tar.bz2
> >>  [  67.7 K ] mftrace-1.2.9.tar.gz
> >>  [   9.2 M ] patch-2.6.24-rc7.bz2
> >>  [ 243.4 K ] setuptools-0.6c7.tar.gz
> >>  * Total space that has been freed in distfiles directory: 10.5 M
> >>
> >> Then emerge downloads them again. I had expected that those 2
> >> programs should agree on which files belong in the set of
> >> distfiles.
> >
> > What happens if you use 'emerge -uNDf world" instead of 'emerge -ef
> > world'
> >
> > -e is a special case and does not equate to the same thing as -uND
>
> "emerge -uNDf world" does nothing because the system is up to date.
> Even if all distfiles are missing, it does nothing (try to move the
> distfiles directory away while executing it). That command is
> supposed to "download everything that is missing to update the
> system". And since the system is up to date, nothing is needed to
> update it and it will therefore not download anything.
>
> What I wanted was "download everything that is missing to reinstall
> everything that is currently installed". That is what "emerge -ef
> world" should do. Then I wanted to "remove everything that is not
> needed to reinstall everything that is currently installed". That is
> what "eclean --destructive distfiles" should do. Doing both should
> result in a set of distfiles that is "what is needed and only what is
> needed to reinstall everything that is currently installed (assuming
> that the system is up to date)". But since the 2 commands do not
> agree, something is broken somewhere.

from man emerge:

      --emptytree (-e)
              Reinstalls all world packages and their dependencies to 
the current USE specifications while dif-
              fering  from  the installed set of packages as little as 
possible.  You should run with --pretend
              first to make sure the result is what you expect.

There's that little bit about "differing from the installed set of 
packages as little as possible". So obviously an --update 
and --emptytree can produce an (unstated) different list of actions to 
be taken, and emerge and eclean are both working correctly according to 
their design specs.

I think you are taking the wrong approach, and should be using -uNDF 
instead. -F fetches everything in src_uri
-- 
Alan McKinnon
alan dot mckinnon at gmail dot com

-- 
gentoo-user@lists.gentoo.org mailing list

Reply via email to