Rather than wipe out my existing software installation, I bought a new 2.5 laptop hard drive. Whenever I decide to reinstall an operation system from scratch on an important system, I usually buy a new hard drive and place the old one in a safe place. Hard drives are very cheap compared to the data on them. Although I do back up my data to other systems, you never know what you might need off the old hard drive. I usually forget some item in the boot loader or some configuration script, neither of which are found in /home.
My typical partitioning strategy is a variation of the following:
/ 2048 MB
swap twice RAM
/usr 4096 MB
/var 10240 MB
/home 1024 MB (more for workstations, enough for servers)
/tmp 1024 MB
/nsm remainder (if needed)
That strategy works well on a 20 GB HDD, which is comfortable in today's computing world.
When I installed FreeBSD 5.3, I didn't install any packages beyond the defaults. I didn't see bash3 in the list of available packages in the /stand/sysinstall menu, so I decided I would add that later. I am glad to be using bash3 and not bash2, as I noticed an infrequent problem with bash2 core dumping if I tried to cancel an operation and then quickly scroll back through the command history.
Before I install any software I like to run ntpdate to set the time on the system:
janney:/root# ntpdate clock.isc.org
Looking for host clock.isc.org and service ntp
host found : clock.isc.org
8 Nov 16:28:24 ntpdate: step time
server 220.127.116.11 offset -18014.552297 sec
These are the sorts of packages I installed immediately after the OS was ready. I ended up with a lot more software than listed here, because some of the applications (like gedit or gimp) require lots of supporting libraries.
- bash (which is bash3)
- fluxbox-devel (my no-nonsense window manager)
- firefox (Web browser)
- thunderbird (mail client)
- mutt (mail client, good for system mail)
- aterm (I like this client better than xterm)
- cmdwatch (dynamically watch shell command output, like ls -al)
- portaudit (security application to check for vulnerable installed applications)
- portupgrade (upgrade software installed via port or package)
- pkg_cutleaves (delete packages, starting from end "leaves" and moving toward the core)
- xv (simple image viewer)
- gtksee (more complex image viewer)
- gedit2 (good GTK text editor)
- gimp (image editor)
- cdrtools (CD burning application)
I was able to install all of these applications using precomplied packages. However, in some cases I had to install applications via port because the package was not available in the ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-5.3-release/Latest/ directory. Examples include mplayer, a media viewer, and screen, providing multiple screens within a single terminal.
I was able to use the basic xorg.conf file created by running 'startx', but had to tweak it. I saved an example of it at xorg.conf.orr. I actually built this file with xorgconfig and then modified it by hand. I uncommented the xtt and glx sections but found dri was broken. I also uncommented the TrueType and freefont Fontpaths. My .xinitrc for my user accounts has a single line:
My .xserverrc enables 100x100 dpi and no listening X server:
exec X :0 -dpi 100 -nolisten tcp
I add the following to my .profile to give a prompt with present working directory for bash3 users:
PS1='`hostname -s`:$PWD$ '; export PS1
I replace the 'set prompt' in root's .cshrc with the following to show present working directory for csh users like root:
set prompt = "%m:%/# "
I also enable tab completion with this:
To ensure I read important mail for the root user, like portaudit results, I edit /etc/aliases as shown:
# root: firstname.lastname@example.org
I then run 'newaliases':
/etc/mail/aliases: 27 aliases, longest 23 bytes, 293 bytes total
I installed Sguil from CVS and tested the new install documentation I wrote.
Previously I avoided using acpi with FreeBSD 5.2. I am currently able to use acpi in this manner. To suspend the laptop I issue as root 'acpiconf -s 3'. I can resume the laptop by hitting the 'Fn' key. At this point moused is dead, so I have to 'killall -HUP moused' to bring it back. I also have to re-config the network interfaces. I've combined some of these actions into scripts I run upon resuming the laptop.