Updated August 2018
FreeBSD 11.2 w/ Retrospect 15.1 (x64)
If you don't already have the Linux libraries installed, you will need to install and set them up, first.
Run this to enable Linux in /etc/rc.conf:
Load Linux kernel support:
Install the latest CentOS binaries:
pkg install linux_base-c7
The Retrospect installer script uses bash, so you may want to install that and create a symbolic link for it, as well:
pkg install bash
ln -s /usr/local/bin/bash /bin/bash
Download the 64-bit Retrospect 15.1 Linux client:
pkg install wget
wget --no-check-certificate https://s3.amazonaws.com/download.retrospect.com/software/linux/v1512/Linux_Client_x64_15_1_2_101.tar
Extract the archive:
tar xvf Linux_Client_x64_15_1_2_101.tar
Before running the installer, create a blank Retrospect State file:
Run the extracted script:
Your output may look like this:
# ./Install.sh Install Retrospect Client? (y/n): y Enter first access password: Retype the first access password: Adding RETROSPECT_HOME to system profile and login scripts...Done! Starting client as daemon... ./Install.sh: line 194: /usr/local/retrospect/client/rcl: Not a directory Installation was successful, but Retrospect Client for Linux could not be started. If this is an upgrade, please wait 5 minutes, then start the client manually by running $ /usr/local/retrospect/client/rcl start If your system uses an rc.local script, you should be able to start Retrospect Client for Linux automatically by adding the line '/usr/local/retrospect/client/rcl start'. Otherwise, consult your system documentation for the best method.
The installer will give errors, but that is normal (since this is an "unsupported" FreeBSD system). Also, note that for upgrades, it will not ask for the "first access" password.
The install script expected rcl to be created in /etc/init.d/. Since "/etc/init.d" doesn't exist, the output of the command becomes the file with that name.
The script also attempts to create a symbolic link to the file:
/usr/local/retrospect/client/rcl -> /etc/init.d/rcl
The "fixes" are to remove, rename, and correct some permissions.
Move the script and overwrite the incorrect symbolic link:
mv /etc/init.d /usr/local/retrospect/client/rcl
Correct some file modes:
chmod o-x /usr/local/retrospect/client/* chmod a-x /etc/retroclient.excludes
The Retrospect Server will use the Linux mtab file to populate the list of volumes for the client, so any locations you want to back up need to be listed in that file.
You can create the /etc/mtab file, but Linux programs will look for the file at /compat/linux/etc/mtab. Unfortunately, that file is deleted any time you update your Linux libraries, so I would just make a link from /etc/mtab to it (and make sure to re-make the link every time the Linux libraries update):
ln -sf /etc/mtab /compat/linux/etc/mtab
Here is a sample /etc/mtab file layout that you can use to back up some ZFS shares (modify with your paths):
/dev/da0p2 / ufs rw 0 0 /zfs/share /zfs/share zfs rw 0 0 /zfs/data /zfs/data zfs rw 0 0
If you use ZFS snapshots, this next part is important!
Whatever locations you added to mtab above, add their snapshot directories to the /etc/retroclient.excludes file, as well:
# exclude zfs snapshots /zfs/share/.zfs /zfs/data/.zfs
If you don't exclude the .zfs snapshot directories, Retrospect will scan them all during backups! This can greatly increase backup times and possibly cause backups to fail.
Create the services directory (if it doesn't exist):
mkdir -p /usr/local/etc/rc.d
Copy and save this Retrospect Service as "/usr/local/etc/rc.d/retro".
Make the service executable:
chmod +x /usr/local/etc/rc.d/retro
Run this to enable Retrospect in /etc/rc.conf:
Once you have the Retrospect client running, make sure to enable exclusions with this command:
/usr/local/retrospect/client/retrocpl -exclude on