| Version 12 (modified by , 17 years ago) ( diff ) |
|---|
Start by making a static snapshot of the current state of the portage tree.
On gentoo.ifa.hawaii.edu,
rsync -avp /usr/portage/ /usr/portage-$DATE
then point the portage-ipp synlink to the new directory
gentoo usr # ls -lad portage* drwxr-xr-x 162 root root 4096 Jun 30 07:38 portage drwxr-xr-x 159 root root 4096 Aug 27 2008 portage-2008-08-27 drwxr-xr-x 3 root root 4096 Apr 22 12:26 portage-2009-04-22 drwxr-xr-x 162 root root 4096 Jun 23 13:46 portage-2009-06-23 lrwxrwxrwx 1 root root 18 Jun 23 13:44 portage-ipp -> portage-2009-06-23
On the binpkg build master (currently master.ipp), update the portage tree
emerge --sync -q
Then make sure you have the latest version of portage installed
emerge -1 portage
Update the kernel to the new deserved rev and make sure the /usr/src/linux symlink is correct. This is because some packages actually need a configured version of the kernel sources and not sure the linux headers package.
# XXX
Check to see if your using the latest Gentoo profile and switch to the latest if necessary
master ~ # profile-config list Available profile symlink targets: [1] default/linux/amd64/2008.0 * [2] default/linux/amd64/2008.0/desktop [3] default/linux/amd64/2008.0/developer [4] default/linux/amd64/2008.0/no-multilib [5] default/linux/amd64/2008.0/server [6] hardened/amd64 [7] hardened/amd64/multilib [8] selinux/2007.0/amd64 [9] selinux/2007.0/amd64/hardened [10] hardened/linux/amd64
Update packages (particular Perl packages) under /usr/src/portage_overlay as needed and check with the equery tool to see if you can remove entries from /etc/portage.*
Then update the 'system' target to so the build tool chain is up to date.
emerge -e system
Make sure the current stable version of gcc is being used.
master ~ # gcc-config -l [1] x86_64-pc-linux-gnu-4.3.2 *
Start the world package rebuild.
emerge -e world
You will have to deal with varius package build problems and failures during the build. It's highly recommended that you run this under screen as it may take over a day to do the complete build. When the build is finished, removed all orphaned packages
emerge -p --prune
Then re-run the world build to make sure there are any phantom dependencies
emerge -e world
Cleanup any old binpkgs that are laying around
qpkg -cp
ipp 0.5 update commands
# wipe out any extra packages that ended up in the world file
echo "sys-apps/ipp-node" > /var/lib/portage/world
emerge -K1 /data/portage/packages/All/portage-2.1.6.13.tbz2
emerge -C sys-apps/man-pages dev-db/mysql
emerge -K1 /data/portage/packages/All/mysql-5.0.tbz2
# required by net-ftp/ftpbase
rm /etc/ftpusers /etc/pam.d/ftp
# conflicts with texlive
emerge -C app-text/tetex
equery list -i 2> /dev/null | grep perl-gcpan | xargs emerge -C
# nagios 2.x conficts with nagios 3.x
emerge -C nagios
emerge -K1 /data/portage/packages/All/*
# we just broke nagios so restart it
/etc/init.d/nrpe restart
# remove packages now outside the 'world' set
emerge --prune
# cleanup dead symlinks
find /bin /usr/bin /sbin /usr/sbin -type l ! -xtype f ! -xtype d -exec rm -f {} \;
