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