Singularity wird auf einem 64 Bit Linux installiert. Abhängig davon, welche Version man nutzen möchte, gibt es verschiedene Möglichkeiten Singularity zu installieren. Generell ist der aktuellste Release immer die beste Wahl, da die Singularity-Container immer abwärtskompatibel und aktuelle Sicherheitslücken gepatched sind. So kann man einen mit Singularity 2.4 erstellten Container unter Singularity 3.2 starten, wohingegen anders herum kein Arbeiten möglich ist.
<<TableOfContents: Ausführung fehlgeschlagen [list index out of range] (siehe auch die Log-Datei)>>
Abhängigkeiten installieren
- Folgende Abhängigkeiten müssen installiert werden:
$ sudo apt-get update && sudo apt-get install -y \ build-essential \ libssl-dev \ uuid-dev \ libgpgme11-dev \ squashfs-tools \ libseccomp-dev \ wget \ pkg-config \ git
Go installieren
- Aktuelle Versionen von Singularity sind teilweise in Go geschrieben und benötigen eine aktuelle Go-Version.
Installation über das APT-Paketmanagementsystem
$ sudo apt-get install golang -y
- Dependency management tool für Go installieren:
$ sudo go get -u github.com/golang/dep/cmd/dep
Installation (der aktuellsten Version) über das tar-Archiv
Download eines aktuellen tar-Archivs: https://golang.org/dl/
- tar-Archiv entpacken:
$ sudo tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz
- Umgebung einrichten:
$ echo 'export GOPATH=${HOME}/go' >> ~/.bashrc && \ echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc && \ source ~/.bashrc
- Go dependency management tool installieren:
$ sudo go get -u github.com/golang/dep/cmd/dep
Version der Go-Installation
- Folgender Befehl gibt sowohl Auskunft über die installierte Go-Version, als auch darüber, ob Go korrekt installiert wurde:
$ go version
Singularity über APT installieren
- aktuell verfügbare Version 2.6 in Ubuntu 18.04 (Stand 12.06.19)
$ sudo apt-get install singularity-container -y
Singularity über die Quelle installieren (empfohlen)
- Download:
$ mkdir -p $GOPATH/src/github.com/sylabs && \ cd $GOPATH/src/github.com/sylabs && \ git clone https://github.com/sylabs/singularity.git && \ cd singularity && \ git checkout v3.2.1
- Kompilieren:
$ ./mconfig && \ make -C ./builddir && \ sudo make -C ./builddir install
Alternativ kann man natürlich auch andere Pfade wählen mit: $ ./mconfig --prefix=/opt/singularity
- für die bash-completion:
$ echo '. /usr/local/etc/bash_completion.d/singularity' >> ~/.bashrc
- Evtl. muss der Pfad noch zur PATH-Variable hinzugefügt werden:
$ export PATH=$PATH:/usr/local/bin
Entfernen der Singularity-Installation
- Verzeichnisse entfernen:
$ sudo rm -rf /singularity \ /usr/local/libexec/singularity \ /usr/local/var/singularity \ /usr/local/etc/singularity \ /usr/local/bin/singularity \ /usr/local/bin/run-singularity \ /usr/local/etc/bash_completion.d/singularity
Version der Singularity-Installation
- Folgender Befehl zeigt die installierte Version an und bestätigt damit, dass Singularity korrekt installiert wurde :
$ singularity --version
2do
- Muss man Go, build-essential, ... zusätzlich zum Paket singularity-container installieren, wenn man Container nur ausführen, aber nicht bauen/modifizieren will?
- Wozu wird Go benötigt?
Bitte einen schlichten Test beschreiben. Z.B. mit xeyes. Woher bekomme ich den Container? Bereits aus GitLab?
- Was funktioniert nicht, wenn ich alles aus 18.04 nehme? Eine LTS-Version hat Vorteile.