Linux

Todo

add other linux distros

Debian based systems

Debian-based systems need the following packages:

$ apt install make gcc python3 python3-dev python3-pip git libsuitesparse-dev

Once the relevant system packages are installed simply clone the repository and build Finesse as described below. By default this will install the latest stable version. See below for details on how to change to different versions such as the most current development release.

$ git clone -b master https://gitlab.com/ifosim/finesse/finesse3.git
$ cd finesse3
$ make install-pep517

This will build and install Finesse into your local environment’s library path. Installing Finesse can take some time as it needs to compile some extensions before it can run. You should see no errors and the version number installed should be printed. Once you’ve run this command, you can quickly test if it has worked by running:

$ kat3 --version

If you see the Finesse version printed, everything should be configured correctly.

Rebuilding Finesse

Once you have installed Finesse from source you can easily get updates and rebuild it by executing the following commands from the Finesse repository directory:

$ git pull
$ make clean
$ make install-pep517

This should rebuild Finesse and can take some time. For small changes to the source you can omit make clean.

Occasionally changes to the build tooling will require a complete reset of the local clone of the Finesse repository. To do this, the command make realclean can be used above instead of make clean.

Changing Finesse versions after installation

Switching versions in Finesse involves checking out a different git branch. The process is similar to above when rebuilding, except you use git checkout beforehand. It is recommended to use make clean when switching branches or commits.

$ cd finesse3
$ git checkout [ref]
$ git pull
$ make clean
$ make install-pep517

You can replace [ref] with one of:

master

The latest stable release.

develop

The latest development release (not necesarily stable or runnable).

e.g. 3.0a1

A particular tag.