= Singularity unter Linux installieren = 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 ich einen mit Singularity 2.4 erstellten Container unter Singularity 3.2 starten, wohingegen anders herum kein Arbeiten möglich ist. <> == Abhängigkeiten installieren == * folgende Abhängigkeiten sollten 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 in Go geschrieben und benötigen eine aktuelle Go-Version === Installation über das APT-Paketmanagementsystem === {{{ $ sudo apt-get install golang -y }}} * Go dependency management tool 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 }}} == Test der Go-Installation == * folgender Befehl gibt Auskunft über die installierte Go-Version: {{{ $ go version }}} == Singularity über APT installieren == * aktuell verfügbare Version 2.6 {{{ $ 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 && \ 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 }}} == Test der Singularity-Installation == * folgender Befehl zeigt die installierte Singularity-Version an: {{{ $ singularity --version }}}