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.
 
 
 
 
 
 

2.6 KiB

#Create a package for Offline installation

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. This is usefull, e.g., for long term archiving where we can not be sure how long dependencies will be available.

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)

Since we can not simply execute apt-get install ..., the dependencies (and their dependencies...) have to be included in the installation package. 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 .):

sudo apt-get -d -o Dir::Cache=. -o DIR::Cache::archives=. install <Packages>

Replace <Packages> with the packages you need (see stormchecker.org for more info). The downloaded *.deb files have to be included in the installation package.

Apart from that we will need to download the sources from carl (recall to use the master14 branch) and, of course, the storm sources.

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

  • remove the GIT_REPOSITORY ... and GIT_TAG ... arguments in the the l3pp section in $STORMDIR/resources/3rdparty/CMakeLists.txt,
  • remove the ExternalProject_Add(..) statement in the the eigen section in $STORMDIR/resources/3rdparty/CMakeLists.txt, and
  • 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.

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:

#!/bin/bash

# Get the number of available threads for multithreaded compiling
THREADS=$(nproc)

# cd to the directory where the script lies in
cd "$( dirname "${BASH_SOURCE[0]}" )"

echo "Installing dependencies. You might need to enter the root password"
cd dependencies
sudo dpkg -i *.deb
cd ..

echo "Installing carl using $THREADS threads"
cd carl
mkdir -p build
cd build
cmake .. -DUSE_CLN_NUMBERS=ON -DUSE_GINAC=ON
make lib_carl -j$THREADS
cd ../../

echo "Installing Storm using $THREADS threads"
cd storm
mkdir -p build
cd build
cmake ..
make storm-main -j$THREADS
cd ../../

echo "Installation successfull."