Ezequiel Tolnay wrote:

> Hi,
>
>    I have a gentoo system that I've installed (stage 2) a few months
> ago with the default options, no optimisations. After some research I
> decided to add some optimisations in the CFLAGS and USE variables on
> the make.conf. I'll take my chances with the following configuration
> in CFLAGS:
>
>    -march=athlon-xp -O3 -fomit-frame-pointer -pipe -m3dnow -mmmx -msse
> -mfpmath=sse
>    -fforce-addr -ftracer -fmove-all-movables -fprefetch-loop-arrays
> -maccumulate-outgoing-args
>    -ffast-math


Ok, but don't bother to post any questions or bug reports about
"such-n-such fails to build/crashes/etc".  They will probably get
ignored! ;->

>    * My system is a bit outdated, so if I emerge --update and emerge
> --emptytree (in whichever order) I'll spend many unnecessary hours
> compiling many packages all over again (mostly all the kde 3.4.1).
> Question: Is there a way to do a mix of both?


Your best bet is probably "emerge --emptytree world".  That will
basically emerge the current version of world and all dependancies. 
Nothing will be built twice.

>    * I decided to emerge -f -e world on one session (to speed things
> up), and after a few packages were downloaded start emerge -e world in
> another. Question: Is it any dangerous to run more than one emerge
> simultaneously? Wouldn't it be a good idea to have emerge download all
> the required packages in the background while compiling?


As long as you can download faster than you can compile, this is not a
problem.  I do it myself frequently.

>    * emerge failed while testing the glibc (due to the noatime setting
> in /, which seems to be a bug in the testing script). By this time the
> emerge -f -e world had finished downloading all the packages. I
> remounted the partitions with atime and diratime and attempted to
> --resume, but it would not resume it. Question: did it fail because
> the other emerge had finished? How/where does portage store the
> details of the current emerge to allow resuming? Is there a way to
> resume starting at a particular point?


When I last rebuilt everything, I did it by:

emerge --emptytree --pretend world \
    | grep "/" \
    | awk -F']' '{ print $2 }' >buildlist.txt

This will give you a complete list of packages to be rebuilt, in order,
including dependancies.  You can then do:

for x in `cat buildlist.txt`; do
    emerge --oneshot $x
    if test $? -ne 0; then
       echo "package $x failed"
       break
    fi
done

Thus, if something fails, you just edit the list to remove everything
that was built, and continue on. 

>    * I saved the output of emerge -e world --pretend to a file,
> removed the brackets and their contents and prefixed each package with
> an = (equal sign), deleting all the 65 packages that I had previously
> emerged successfully. Then attempted to emerge ` cat packages.txt `
> and to my surprise the list included the required updates, so I wen't
> for it. Question: is it expected to have some packages upgraded when
> the packages emerged were specified as =package-x.y?

Well, the "emerge -e world --pretend" is going to show you the required
updates.  If you double check the output, you will probably see that the
version you specified with the '=' _is_ the updated version.

A word of warning...add "--oneshot" to your emerge command if you do
things this way.  Otherwise you will add a bunch of crap to your world
file that you almost certainly do _not_ want there!

>    * I tried " emerge `qpkg -I -nc |grep -oe '^[^ ]*' ` --pretend "
> and it seems to do the job, but it looks like there are more packages
> there than in the list of  " emerge --emptytree world --pretend ",
> some violating dependencies, others blocking while requirying the ~x86
> flag. Question: Are absolutely all the packages recompiled with emerge
> --emptytree world?
>

Rebuilding with --emptytree world will rebuild everything in the world
file, or is a dependancy of something in the world file.  This is not
quite the same as all installed packages, because some packages may have
been added as dependancies of packages that you have since unmerged. 
For example, if you emerge evolution, you get a bunch of gnome stuff
that is not removed if you unmerge it.  You can view what packages are
'leftovers' by running "emerge --depclean --pretend"

BTW, this is why you want --oneshot.  In the example above, if you had
emerged each dependancy of evolution explicitly, the dependancies would
be added to your world file and would not show up in --depclean output.

-Richard

-- 
gentoo-user@gentoo.org mailing list

Reply via email to