Gentoo
Contents
Update, Cleaning & Rebuild
Update:
etc-update
eix-sync
emerge -avuNDt --with-bdeps=y --keep-going=y --verbose-conflicts --changed-deps @world
emerge -av1 @preserved-rebuild
emerge -ac
etc-update
Cleaning:
./update
eix-test-obsolete ### handle the output manually
portpeek -aq
perl-cleaner --reallyall
eclean -d distfiles -f
eclean -d packages
### /var/tmp/portage clean?
Rebuild:
./cleaner # including ./update
emerge -v sys-devel/gcc
emerge -ev --keep-going=y @system
emerge -ev --keep-going=y @world
# Kernel rebuild
While the above commands rebuild @system and @world in one run, that cannot be interrupted, we might want to use the following script to rebuild the system. The script emerges all installed packages that have not been build after the last merge of the gcc compiler. Please note that it assumes, you have exactly one version of the gcc compiler installed.
#!/bin/bash
gccWithVersion=$(eix sys-devel/gcc --format '<installedversions:NAMEASLOT>' | grep "sys-devel/gcc:")
if [ $(echo "$gccWithVersion" | wc -l) != 1 ]; then
echo "seems we found more than one gcc installed"
exit 1
fi
packageListLastCompileBeforeGCC=$(eix '-I*' --format '<installedversions:DATESORT>' | sort -n | cut -f3 | grep -B 100000 $gccWithVersion | head -n -1)
nbPackages=$(echo -n "$packageListLastCompileBeforeGCC" | wc -l)
echo "found $nbPackages package(s) to rebuild"
if [ $nbPackages = 0 ]; then
exit 0
fi
packageListEmerge=$(echo "$packageListLastCompileBeforeGCC" | tr '\n' ' ')
emerge -av1 --keep-going=y $packageListEmerge
Kernel Update
eselect kernel set <n>
cd /usr/src/linux
cp ../linux-<oldVersion>-gentoo/.config .
make oldconfig
make clean && make all -j3 && make modules_install && emerge -v1 @module-rebuild
cp arch/x86/boot/bzImage /boot/kernel-<thisVersion>-gentoo
# build new initramfs