This document describes the process of installing the Linux version of MATLAB® version 6.5 onto a FreeBSD system. It works quite well, with the exception of the Java Virtual Machine™ (see Section 10.5.3).
The Linux version of MATLAB can be ordered directly from The MathWorks at http://www.mathworks.com. Make sure you also get the license file or instructions how to create it. While you are there, let them know you would like a native FreeBSD version of their software.
To install MATLAB, do the following:
Insert the installation CD and mount it. Become root, as recommended by the installation script. To start the installation script type:
# /compat/linux/bin/sh /cdrom/install
Tip: The installer is graphical. If you get errors about not being able to open a display, type setenv HOME ~USER, where USER is the user you did a su(1) as.
When asked for the MATLAB root directory, type: /compat/linux/usr/local/matlab.
Tip: For easier typing on the rest of the installation process, type this at your shell prompt: set MATLAB=/compat/linux/usr/local/matlab
Edit the license file as instructed when obtaining the MATLAB license.
Tip: You can prepare this file in advance using your favorite editor, and copy it to $MATLAB/license.dat before the installer asks you to edit it.
Complete the installation process.
At this point your MATLAB installation is complete. The following steps apply “glue” to connect it to your FreeBSD system.
Create symlinks for the license manager scripts:
# ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW # ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMW
Create a startup file at /usr/local/etc/rc.d/flexlm.sh. The example below is a modified version of the distributed $MATLAB/etc/rc.lm.glnx86. The changes are file locations, and startup of the license manager under Linux emulation.
#!/bin/sh case "$1" in start) if [ -f /usr/local/etc/lmboot_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd' fi ;; stop) if [ -f /usr/local/etc/lmdown_TMW ]; then /compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1 fi ;; *) echo "Usage: $0 {start|stop}" exit 1 ;; esac exit 0
Important: The file must be made executable:
# chmod +x /usr/local/etc/rc.d/flexlm.shYou must also replace username above with the name of a valid user on your system (and not root).
Start the license manager with the command:
# /usr/local/etc/rc.d/flexlm.sh start
Change the Java™ Runtime Environment (JRE) link to one working under FreeBSD:
# cd $MATLAB/sys/java/jre/glnx86/ # unlink jre; ln -s ./jre1.1.8 ./jre
Place the following startup script in /usr/local/bin/matlab:
#!/bin/sh /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"
Then type the command chmod +x /usr/local/bin/matlab.
Tip: Depending on your version of emulators/linux_base, you may run into errors when running this script. To avoid that, edit the file /compat/linux/usr/local/matlab/bin/matlab, and change the line that says:
if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(in version 13.0.1 it is on line 410) to this line:
if test -L $newbase; then
The following is needed to solve a problem with MATLAB not exiting correctly.
Create a file $MATLAB/toolbox/local/finish.m, and in it put the single line:
! $MATLAB/bin/finish.sh
Note: The $MATLAB is literal.
Tip: In the same directory, you will find the files finishsav.m and finishdlg.m, which let you save your workspace before quitting. If you use either of them, insert the line above immediately after the save command.
Create a file $MATLAB/bin/finish.sh, which will contain the following:
#!/usr/compat/linux/bin/sh (sleep 5; killall -1 matlab_helper) & exit 0
Make the file executable:
# chmod +x $MATLAB/bin/finish.sh
At this point you are ready to type matlab and start using it.