Matlab

From NixOS Wiki
Revision as of 12:31, 2 June 2021 by imported>Mazurel (Created page with "MATLAB (an abbreviation of "matrix laboratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks.[https://en.wikip...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

MATLAB (an abbreviation of "matrix laboratory") is a proprietary multi-paradigm programming language and numeric computing environment developed by MathWorks.[1]

Installation

Matlab due to it's installation method and licensing is really problematic to package into nixpkgs[2], that is why the only way to install it is to use some imperative way (to install it outside the nix store).

Imperative installation without flakes

These instructions are based on tviti[3] GitHub repository. It is also worth to look at doronbehar[4] GitLab repository which is based on nix flakes[5].

Firstly you need to download zipped Matlab archive for Linux from the official webpage. Then create a folder for the installation files and unzip the archive into that folder via unzip -X -K command.

Then you will need shell.nix file that will create proper environment. This shell should use buildFHSUserEnv function and should contain all the relevant packages. Personally I have used tviti[6] imperative Matlab shell.

Get into the proper environment via nix-shell. Then you can safely start Matlab installer by running ./install script in the Matlab installation folder. It is strongly preferred to install Matlab somewhere in the user home folder.

After successful installation, you should add Matlab do your configuration.nix file. Personally I have used modified tvitii[8] files. I have simply switched runPath to the path of freshly installed Matlab folder. Then in my configuration.nix I have used his matlab folder like so:

...
let
    tviti-matlab = pkgs.callPackage ./matlab { };
...
in {
...
    environment.systemPackages = [ ... tviti-matlab.matlab  ... ];
...

Now you should have matlab in your path and be able to run it via matlab command.

Weird java errors

In case you have java errors, and you are using tvitii[9] derivation, you may need to modify matlab.nix to something like this:

{ common,  buildFHSUserEnv }:
buildFHSUserEnv {
  name = "matlab";

  targetPkgs = pkgs: with pkgs; common.targetPkgs pkgs;

  runScript = "${common.runPath}/bin/matlab";
}

Imperative installation with flakes

These instructions are based on doronbehar[10] GitLab repository.