Installation
Nemaktis is a mixture of C++ and python codes, and has been successfully tested both on
Windows 10 and Linux. The recommended way of installing and using Nematkis is through the
package manager mamba (see next subsection).
If you are an experienced Mac user and want to become maintainer of a MacOS version of Nematkis (using mamba), please contact me (https://nemaktis.readthedocs.io/en/latest/intro/overview.html#contact). Otherwise, it is probably possible to compile and use the software by hand on other OSs than the ones mentioned above (windows 7, macOS…), provided you know what you are doing :)
With Mamba (windows or linux)
a. Install Miniforge
The simplest way of installing the Nemaktis package is through the package manager
mamba (no compilation and no dependency to be installed by hand). I provide precompiled
packages for both Linux and Windows 10, which means the following method will work
on these two operating systems.
mamba is a package manager based on the conda python package manager, but with far better
performance since it is written in C++. Previous versions of Nemaktis were using conda
(or mamba installed on top of conda) but this proved to be too difficult to maintain because
of these poor performances. For this reason, any Nemaktis version >=1.4.7 requires the
Miniforge distribution to be installed locally on your computer (i.e. on your user folder),
and will not necessarily work with the Anaconda or Miniconda distributions. The installation
files of Miniforge for Windows/Linux are available at this address (be careful to choose the
Miniforge distribution, not the Miniforge-pypy3 distribution):
https://github.com/conda-forge/miniforge#miniforge3
b. Install Nemaktis on the command line
Open a terminal (Windows: application “Miniforge prompt” installed with Miniforge, Linux: any terminal) and type the following command:
mamba create -n nm -c warthan07 -y nemaktis
(Optional) If you want a python editor (e.g. spyder), you have to also type the following
commands:
mamba activate nm
conda install spyder
The above command should have automatically created a shortcut for Spyder (there is currently
a bug in mamba for creating it, which is why the above command uses conda), usually named
Spyder (nm) to make it clear that it will automatically activate the newly created nm
environment. Always use this shortcut when using nemaktis (it can be searched quickly on windows
with the shortcut Win + S, or Win on Ubuntu) or alternatively type the following
command in a terminal:
mamba activate nm
spyder
You can also, of course, run directly your python scripts in the terminal after activating the nm
environment.
c. How to update
I do not recommend updating nematkis using the command mamba update, since I do not
compile Nematkis sufficiently often for a correct update of all dependencies. In other
words, running mamba update has the risk of breaking your mamba environment! I
apologize for this current limitation, which mostly stems from my inexperience at mamba
packaging with complex dependencies.
In this case, how can you safely update Nemaktis? The simplest way is to fully remove the
mamba environment nm, either by removing the folder “envs/nm” inside the root folder of
Miniforge or by opening a terminal (“Miniforge prompt” for windows, any terminal for linux)
and typing:
mamba remove --name nm --all
Then, simply repeat the installation step b above.
Another possibility is to repeat the installation step b with a different environment name
than nm, for example nm[version number]. Although this method is probably fine to
test new features of the software without removing the old version , it is probably not very
good in the long term since each mamba environment takes a non-negligible portion of disk space.
Developper method
If you want to be able to modify the code, but still want to enjoy the simplicity of mamba packages (no relative paths to manage, everything works as with a system package), you can build yourselves the nemaktis package for Linux:
Get the code of the
Nemaktisrepository:git clone git@github.com:warthan07/Nemaktis.git
And implements the changes that you want. For the C++ codes, compilation steps are provided in the subfolders bpm-solver and rt-solver if you want to test them locally (in which case you will have to install yourselves the dependencies listed in each CMakeLists).
In a terminal, go to the subfolder conda_recipe of the
Nemaktisrepository and type the following (the first line is only needed if the build environment does not exist yet):mamba create -n build -y rattler-build mamba activate build
Run the following command, which will create an
outputfolder in which the conda package is built:rattler-build build
Once the package is built, you can install it in a new
nmenvironment by typing:mamba create -n nm -c file://{ full path to output folder } nemaktis