Hi, For quite a bit I'm using this script to update my stable Gentoo system:
$ cat $(which sysupdate) #!/bin/sh # Update the whole system set -e echo "==> Syncing Portage tree..." emerge --sync --quiet echo "==> Updating world..." emerge -auDU --with-bdeps=y @world echo "==> Removing old dependencies..." emerge -qc echo "==> Upgrading Perl packages (if needed)..." perl-cleaner --quiet --modules --ph-clean --delete-leftovers # TODO: Check errors cur_kver=$(readlink /usr/src/linux | sed 's/linux-//') new_kver=$(cd /usr/src && ls -1d linux-* | sort -Vr | head -1 | sed 's/linux-//') if [ "${cur_kver}" != "${new_kver}" ]; then echo "==> Switching to kernel ${new_kver}..." eselect kernel set linux-${new_kver} if [ ! -e "/boot/vmlinuz-${new_kver}" ]; then echo "==> Building kernel ${new_kver}..." genkernel kernel fi else # Rebuild initramfs if third-party modules were updated if [ -n $(find /lib/modules/${cur_kver} \ -newer /boot/initramfs-${cur_kver}.img) ]; then dracut -f fi fi Still, it won't catch some issues with Go or Haskell (as there are separate app-admin/go-updater and app-admin/haskell-updater ebuilds still around in the Tree) + there is a separate genkernel post-install script that cleans up old kernels during the kernel update. So, I was wondering -- maybe there is a fool-proof-one-command-that-do-it-all solution wondering somewhere?