You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
2.6 KiB

2 months ago
  1. #Create a package for Offline installation
  2. On this page we detail steps to obtain an installation package that can be used to install Storm on a system without an internet connection.
  3. This is usefull, e.g., for long term archiving where we can not be sure how long dependencies will be available.
  4. We assume that there is a fixed reference system based on Ubuntu which is not going to change (e.g. a Virtual Machine that will be made available)
  5. Since we can not simply execute `apt-get install ...`, the dependencies (and their dependencies...) have to be included in the installation package.
  6. The easiest way to do that is to tell `apt-get` to only download the packages and to put them into a directory you like (lets say the current working directory `.`):
  7. ```console
  8. sudo apt-get -d -o Dir::Cache=. -o DIR::Cache::archives=. install <Packages>
  9. ```
  10. Replace `<Packages>` with the packages you need (see stormchecker.org for more info).
  11. The downloaded `*.deb` files have to be included in the installation package.
  12. Apart from that we will need to download the sources from _carl_ (recall to use the master14 branch) and, of course, the storm sources.
  13. We currently checkout the _l3pp_ and _eigen_ git repositories during the building process. To make this possible in an offline fashion you might need to
  14. * remove the `GIT_REPOSITORY ...` and `GIT_TAG ...` arguments in the the _l3pp_ section in `$STORMDIR/resources/3rdparty/CMakeLists.txt`,
  15. * remove the `ExternalProject_Add(..)` statement in the the _eigen_ section in `$STORMDIR/resources/3rdparty/CMakeLists.txt`, and
  16. * make sure that `$STORMDIR/build/include/resources/3rdparty/StormEigen` already exist and contains the Eigen sources before running `cmake`/`make`. You can take these files from a working Storm installation.
  17. Assuming that the directory `dependencies` contains the `*.deb` files, and `carl` and `storm` contain the source files of Carl and Storm, respecteively, an installation script can look as follows:
  18. ```console
  19. #!/bin/bash
  20. # Get the number of available threads for multithreaded compiling
  21. THREADS=$(nproc)
  22. # cd to the directory where the script lies in
  23. cd "$( dirname "${BASH_SOURCE[0]}" )"
  24. echo "Installing dependencies. You might need to enter the root password"
  25. cd dependencies
  26. sudo dpkg -i *.deb
  27. cd ..
  28. echo "Installing carl using $THREADS threads"
  29. cd carl
  30. mkdir -p build
  31. cd build
  32. cmake .. -DUSE_CLN_NUMBERS=ON -DUSE_GINAC=ON
  33. make lib_carl -j$THREADS
  34. cd ../../
  35. echo "Installing Storm using $THREADS threads"
  36. cd storm
  37. mkdir -p build
  38. cd build
  39. cmake ..
  40. make storm-main -j$THREADS
  41. cd ../../
  42. echo "Installation successfull."
  43. ```