Installation and Setup

GSM requires some system dependencies to be met before setting up the configuration and installing the packages.

Workflow:

  1. Install software dependencies

  2. Download and install gsm

  3. Set up gsm initially.

Software dependencies

The installation of the system dependencies depends on Linux Distribution as described here.

Ubuntu/Debian

Installation of Python3 and the package installer for Python venv and gnupg.

sudo apt install python3 python3-venv gnupg

RHEL

Installation of Python3 and the package installer for Python venv and gnupg.

su -
dnf install python3 gnupg2
exit

Package download and installation

Download the current gsm package and unpack it in the corresponding directory.

mkdir $HOME/install
cd $HOME/install
wget https://data.gempa.de/gsm/gempa-gsm.tar.gz
tar xvfz gempa-gsm.tar.gz

Initial setup

To setup the installation environment run

./gsm setup
Searching Python executable
Using /usr/bin/python3
Creating Python virtual environment: /home/sysop/install/gsm/venv
Installing Python dependencies
====================================================================
Package manager setup
====================================================================

This initializes the configuration of your package manager.
If you already made adjustments to the configuration file then your
current settings will be suggested as default values and may be
confirmed simply by pressing enter.
The configuration file is only written after the setup is completed
entirely.

SeisComP release [6]: 6
Operating system [rhel]: rhel
Operating system version [9]: 9
System architecture [x86_64]: x86_64
Do you want to use your private repository with gempa modules? Otherwise use the public SeisComP packages: [Y/n]: y
Username []: xxx
Password []: xxx
Repository URL [https://data.gempa.de/packages/GEMPA]: https://data.gempa.de/packages/XXX
Download dir [/tmp/gsm/packages]: /home/sysop/install/gsm/packages
Install path [/home/sysop/seiscomp]: /home/sysop/seiscomp
Data path [/home/data]: /home/data
Number of days before the license expires message is displayed [30]: 30
Do you want to validate the downloaded packages using gnupg?: [y/N]: n
Do you want to backup the downloaded packages: [y/N]: n

This initial setup creates the file gsm.conf where the configuration is stored. When done continue with standard workflow.

Change of setup

./gsm setup
The setup file exists already. Your current settings will be suggested as
default values and may be confirmed simply by pressing enter.

NOTE: You cannot change the SeisComP release or operating system by calling ./gsm setup.
* to change the SeisComP release, explicitly use ./gsm do-release-upgrade or ./gsm do-release-downgrade.
* to change the operating system, explicitly use ./gsm switch-os.

Do you want to continue? [y/N]: y
Do you want to use your private repository with gempa modules? Otherwise use the public SeisComP without gempa modules. [Y/n]: y
Username [xxx]: xxx
Password [xxx]: xxx
Repository URL [https://data.gempa.de/packages/gempa-dev]: https://data.gempa.de/packages/XXX
Download dir [/tmp/gsm/packages]: /home/sysop/install/gsm/packages
Number of days before the license expires message is displayed [30]: 30
Do you want to validate the downloaded packages using gnupg?: [y/N]: n
Do you want to backup the downloaded packages: [y/N]: n

Note

The release and operating system can not be changed with consecutive runs of setup. Instead, see: Workflow: Upgrade Release and Workflow: Switch OS.

Description of file structure

All files and directories are located in the gsm directory.

gsm
├── bin
│   └── gsm.py
├── CHANGELOG
├── gsm
├── gsm.conf
├── libs
│   ├── cache
│   │   ├── custominstall.py
│   │   ├── __init__.py
│   │   ├── localcache.py
│   │   └── synccache.py
│   ├── config.py
│   ├── const.py
│   ├── gpgutils.py
│   ├── gsm.py
│   ├── helpcli.py
│   ├── __init__.py
│   ├── installdeps.py
│   ├── log.py
│   ├── makelinks.py
│   ├── news.py
│   ├── osupgrade.py
│   ├── osutils.py
│   ├── package.py
│   ├── pkgbuild.py
│   ├── releasedowngrade.py
│   ├── releaseupgrade.py
│   └── utils.py
├── local
│   └── gsm
│       ├── desc
│       └── files
├── migrations
│   ├── 0.0_to_0.1
│   └── 0.1_to_0.2
└── requirements.txt