22.5 Installing MATLAB®

Contributed by Dan Pelleg.

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 22.5.5).

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.

22.5.1 Installing MATLAB

To install MATLAB, do the following:

  1. 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.

  2. 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

  3. 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.

  4. Complete the installation process.

At this point your MATLAB installation is complete. The following steps apply ``glue'' to connect it to your FreeBSD system.

22.5.2 License Manager Startup

  1. 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
    
  2. 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.sh
    

    You must also replace username above with the name of a valid user on your system (and not root).

  3. Start the license manager with the command:

    # /usr/local/etc/rc.d/flexlm.sh start
    

22.5.3 Linking the Java™ Runtime Environment

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

22.5.4 Creating a MATLAB Startup Script

  1. Place the following startup script in /usr/local/bin/matlab:

    #!/bin/sh
    /compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"
    
  2. 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

22.5.5 Using MATLAB

At this point you are ready to type matlab and start using it. Note that the version of Java shipped with MATLAB does not work well under FreeBSD. It will make it hard to quit MATLAB and you will have to kill -9 it. If you do not use Java at all, you can avoid this nuisance by starting MATLAB with the -nojvm switch.

This, and other documents, can be downloaded from ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

For questions about FreeBSD, read the documentation before contacting <[email protected]>.
For questions about this documentation, e-mail <[email protected]>.