Singularity wird auf einem 64 Bit Linux installiert, da auf Kernelressourcen zugegriffen werden muss. Deshalb kann Singularity nicht direkt auf anderen Systemen wie Windows oder MacOS installiert werden. Es wird eine weitere Virtualisierungsschicht benötigt, welche eben einen solchen Kernel zur Verfügung stellt.
Achtung! Sollte Windows oder sogar MacOS als VM laufen, muss Nested Virtualisation auf dem Hostsystem aktiviert werden!
<<TableOfContents: Ausführung fehlgeschlagen [list index out of range] (siehe auch die Log-Datei)>>
Installation unter MacOS
XQuartz installieren
Falls XQuartz nicht bereits installiert ist, dann muss das nachgeholt werden. Das Paket kann hier bezogen werden und über den Paketmanager installiert werden.
Homebrew und Vagrant installieren
$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)” $ brew cask install virtualbox $ brew cask install vagrant $ brew cask install vagrant-manager
Homebrew setzt die command line developer tools voraus. Diese werden automatisch installiert. Falls die Installation fehlschlägt, kann man diese hier herunterladen und installieren oder man installiert alternativ Xcode (sehr groß!)
Singularity einrichten
- Verzeichnis für Vagrant VM erstellen: Hier wird ein Vagrantfile erstellt, welches die Konfiguration der VM enthält.
$ mkdir vm-singularity $ cd vm-singularity
- Dieses Verzeichnis sollte leer sein, ansonsten erstellt man ein anderes.
- Herunterladen und Initialisieren einer VM mit vorinstalliertem Singularity
Die VM kann natürlich angepasst werden. Andere Versionen findet man hier .
$ export VM=sylabs/singularity-3.2-ubuntu-bionic64 $ vagrant init $VM
Arbeiten mit Vagrant
- Starten der VM mit:
$ vagrant up
- Zugriff auf die VM hat man mit folgendem Befehlen:
$ vagrant ssh oder $ vagrant ssh -- -X
- Beenden der VM mit:
in der VM: $ sudo poweroff oder $ exit außerhalb der VM: $ vagrant halt
Version der Singularity Installation
- Die korrekt installierte Singularity-Version lässt sich mit folgendem Befehl ausgeben:
$ singularity version
Zugriff auf Host-Verzeichnisse
- Damit man Zugriff auf Daten des Hosts-Systems hat, muss das Vagrantfile folgendermaßen angepasst werden: Es befindet sich in dem Verzeichnis, welches für die VM erstellt wurde.
Vagrant.configure("2") do |config| # other config here config.vm.synced_folder "src/", "/srv/website" end
- Hierbei handelt es sich bei dem ersten Pfad ("src/") um einen relativen Pfad vom Vagrantfile ausgehend.
- Der zweite Pfad ("/srv/website") ist ein absoluter Pfad im Gastsystem.
Installation unter Windows
Download und Installation
- Folgende Programme herunterladen und installieren:
SSH Einrichten für X Server
GitBash starten
- Wechseln ins $HOME-Verzeichnis
- .bash_profile erstellen und folgendes einfügen:
export DISPLAY=localhost:0.0
Datei speichern und GitBash neu starten
Singularity einrichten
GitBash starten
- Verzeichnis für Vagrant VM erstellen. Hier wird ein Vagrantfile erstellt, welches die Konfiguration der VM enthält.
$ mkdir vm-singularity $ cd vm-singularity
- Dieses Verzeichnis sollte leer sein, ansonsten erstellt man ein anderes.
- Herunterladen und initialisieren einer VM mit vorinstalliertem Singularity
Die VM kann natürlich angepasst werden. Andere Versionen findet man hier.
$ export VM=sylabs/singularity-3.2-ubuntu-bionic64 $ vagrant init $VM
Arbeiten mit Vagrant
- Starten der VM mit:
$ vagrant up
- Zugriff auf die VM hat man mit folgendem Befehlen
$ vagrant ssh oder $ vagrant ssh -- -X bzw. $ vagrant ssh -- -Y #Achtung, volle Rechte in beide Richtungen, nur vertrauenswürdiges Ziel!
- Beenden der VM mit:
in der VM: $ sudo poweroff oder $ exit außerhalb der VM: $ vagrant halt
Version der Singularity Installation
- Die korrekt installierte Singularity-Version lässt sich mit folgendem Befehl ausgeben:
$ singularity version
Zugriff auf Host-Verzeichnisse
- Damit man Zugriff auf Daten des Hosts-Systems hat, muss das Vagrantfile folgendermaßen angepasst werden: Es befindet sich in dem Verzeichnis, welches für die VM erstellt wurde.
Vagrant.configure("2") do |config| # other config here config.vm.synced_folder "src/", "/srv/website" end
- Hierbei handelt es sich bei dem ersten Pfad ("src/") um einen relativen Pfad vom Vagrantfile ausgehend.
- Der zweite Pfad ("/srv/website") ist ein absoluter Pfad im Gastsystem.