Having installed a fresh FreeBSD from scratch, you could use a couple of tools and settings for better productivity. This is what I do
For a freshly setup system there are a number of packages and config changes that will come in handy later on.
sudo
Let’s start with sudo. Login as root and execute the following command:
> pkg install sudo
Now edit type in the command visudo and find the following line:
#%wheel ALL=(ALL) ALL
You want to remove the # so that the line now reads as this:
%wheel ALL=(ALL) ALL
Now every user in the group wheel can use the sudo command.
ntp daemon
Having a precise time is extremely important. Edit the file /etc/rc.conf and make sure the following lines are in there:
ntpd_enable="YES" ntpd_sync_on_start="YES"
openntpd
In case you want to run jails, you should not use ntpd as it will bind to all interfaces at the same time. On a “regular” system this is no problem, however as jails expect to have exclusive access to their own network interfaces, you could run into problems in your jails, as the port will be already taken by the underlying main host. Long stories short: openntpd can be setup to not bind to “any” interface. Install the package with the following command:
> pkg install openntpd
Edit the file /etc/rc.conf and make sure that ntpd is disabled, while openntpd is enabled and setup to sync on system start:
#ntpd_enable="YES" #ntpd_sync_on_start="YES" openntpd_enable="YES" openntpd_flags="-s -v"
freebsd-update
The following 4 commands retrieve the latest system updates, install these and set a cron for once a day to check for further updates. At the end the system is rebooted.
> freebsd-update fetch > freebsd-update install > printf '@daily root freebsd-update cron' >> /etc/crontab > shutdown -r now
screen
Depending on your hardware some tasks take a little longer and you might want to logoff without terminating your tasks. Install the package for screen with the following command:
> pkg install screen
ezjail
We want to run jails eventually and need some good tool to manage those jails. Install the package for ezjail with the following command:
> pkg install ezjail
Also make sure that ezjail will be started with your host by putting the following line in the /etc/rc.conf file:ezjail with the following command:
ezjail_enable="YES"
zsh
Having a good shell is key for productivity. We will install zsh with the following command:
> pkg install zsh
Also, you should not change the shell of the root user. Rather assign the shell to your regular user (replace YOUR_USER with your actual user name.
> chsh -s /usr/local/bin/zsh YOUR_USER
vim lite
Everybody has his/her favorite text editor. For me it is vi, but I want at least syntax highlighting and some more. I will install vim-lite with the following command and also make an alias for vi while I’m at it.
> sudo pkg install vim-lite > printf '\nalias vi=vim\nexport WITHOUT_X11=YES' >> ~/.zshrc > printf '\nset background=dark\nset mouse-=a' >> ~/.vimrc
