I’m a Linux nut. Gentoo is my flavor of choice for the high level of configurability ( if that’s not a word, I just made it one. 😀 ). I also love automation, that’s why my .bashrc file has a good amount of aliases and a full bin directory that does just about everything I need. When it comes to keeping Gentoo up to date, I have an “update” alias that is as follows:
$ alias update="sudo layman -S && sudo eix-sync && remerge"
- First thing first: you may ask…
sudo? This allows me to run this command as any user who’s allowed to gain root privs. From there, any following commands are able to sudo without a password.
&&allows me to queue commands but halt the whole sequence with a
C or upon failure of one of the commands ( where a
;will just move on to the next command ).
- First thing I do is
layman -S. If you don’t have any overlays and/or don’t know what layman is, remove that.
- After syncing layman, we do an eix-sync which gives you a nice diff at the end of the sync. You’ll need to emerge eix if you haven’t already.
- Last but definitely not least… is remerge… What’s this you say? well.. it’s an alias that actually goes before the update alias. It’s a command that I can run at any time knowing it won’t sync, so I don’t have to worry “will I get banned from the portage server I’m syncing from because I’m syncing too often???”
remerge alias (belongs before the update alias b/c it’s used in update.):
$ alias remerge="sudo emerge --update --newuse --deep --with-bdeps=y --tree @world && sudo eix-update && sudo dispatch-conf && sudo emerge --depclean && sudo eclean distfiles && sudo revdep-rebuild"
So there you have it. In your .bashrc, put the remerge alias on one line, then update on the line that follows. This will practically do a full system update.
One thing to watch out for is kernel updates. When you get those, emerge –depclean will trigger a removal of the old kernel. When I see that, I open a new tab and run the following:
$ su $ cd /usr/src/linux/ $ make oldconfig $ makekernel
$ alias makekernel="sudo make -j5 && sudo make modules_install && sudo make install && sudo cp arch/x86_64/boot/bzImage /boot/kernel && sudo module-rebuild rebuild"
That builds the the kernel and places the new bzImage where I have my grub confguration expecting it. I know some people modify the /boot/grub/grub.conf file and have version numbers and what not but I get enough kernel updates that doing so is a pain. In my configs, grub is simply expecting /boot/kernel.
module-rebuild rebuild comes in very handy with Virtualbox, as after a kernel update, virtualbox-guest-additions usually wants to be recompiled.