Wie installiert man Singularity unter Linux auf EO-Lab FRA1-1?
Singularity ist eine Open-Source-Anwendung zur Erstellung und Ausführung von Software-Containern auf gemeinsam genutzten Linux-basierten Rechenclustern. Singularity-Umgebungen verhalten sich auf allen Hardware-Plattformen gleich und ebnen so den Weg für High-Performance-Computing.
Singularity ist in Go geschrieben, Sie müssen also zuerst Go installieren.
Was wir behandeln werden
Installation von Singularity auf Debian-basierten Systemen
Installation von Singularity auf CentOS/RHEL-Systemen
Einrichten der Go-Umgebung
Installation von Golangci-lint
Singularity aus dem Quellcode bauen
SingularityCE, die Community-Edition von Singularity, kompilieren
Voraussetzungen
Nr. 1 Konto
Sie benötigen ein EO-Lab Konto mit Zugriff auf die Horizon-Schnittstelle: https://tenant-manager.eo-lab.org/login .
Nr. 2 Zugriff auf eine Ubuntu oder CentOS Linux-VM
Um Singularity zu installieren und auszuführen, verwenden Sie eine vorhandene Linux-Instanz oder starten Sie eine neue, wie hier beschrieben
Wie man eine Linux-VM erstellt und von einer Linux-Kommandozeile auf EO-Lab zugreift
Wie man eine Linux-VM erstellt und vom Windows-Desktop aus darauf zugreift auf EO-Lab
Dieser Artikel wurde für virtuelle Maschinen mit Ubuntu 20.04 und CentOS 7 geschrieben.
Installation von Singularity auf Debian-basierten Systemen
Installieren Sie Entwicklungswerkzeuge und Bibliotheken auf Ihrem Rechner.
sudo apt-get update && \
sudo apt-get install -y build-essential \
libseccomp-dev libglib2.0-dev pkg-config squashfs-tools cryptsetup
Laden Sie das Golang-Archiv nach /tmp herunter und entpacken Sie es dann nach /usr/local.
export VERSION=1.20.1 OS=linux ARCH=amd64
wget -O /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz https://dl.google.com/go/go${VERSION}.${OS}-${ARCH}.tar.gz && \
sudo tar -C /usr/local -xzf /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz
Auf CentOS/RHEL:
sudo yum groupinstall -y 'Development Tools' && \
sudo yum install -y epel-release && \
sudo yum install -y golang libseccomp-devel \
squashfs-tools cryptsetup
Installation von Singularity auf CentOS/RHEL Systemen
Installieren Sie sowohl die benötigten Bibliotheken als auch die Sprache Go:
sudo yum groupinstall -y 'Development Tools' && \
sudo yum install -y epel-release && \
sudo yum install -y golang libseccomp-devel \
glib2-devel squashfs-tools cryptsetup
Richten Sie Ihre Umgebung für Go ein
Dieser Schritt gilt für beide Linux-Distributionen:
echo 'export GOPATH=${HOME}/go' >> ~/.bashrc && \
echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc && \
source ~/.bashrc
Installieren Sie Golangci-lint
Linting ist eine Methode, um häufige Fehler in einer Programmiersprache zu finden. Golangci-lint bündelt gängige Linters in einer einzigen Binärdatei für die Sprache Go. Hier wird beschrieben, wie man es installiert:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin
Generieren Sie Singularity
Mit den folgenden Befehlen wird Singularity aus dem Quellcode erstellt:
mkdir -p ${GOPATH}/src/github.com/sylabs && \
cd ${GOPATH}/src/github.com/sylabs && \
git clone --recursive https://github.com/sylabs/singularity.git && \
cd singularity
Kompilieren von SingularityCE
Bemerkung
Die SingularityCE-Umgebung ist auf dem OSGeo Live-Image vorinstalliert
Erstellen Sie SingularityCE mit den folgenden Befehlen:
cd ${GOPATH}/src/github.com/sylabs/singularity && \
./mconfig && \
cd ./builddir && \
make && \
sudo make install
Jetzt können Sie Ihre SingularityCE-Version überprüfen, indem Sie Folgendes ausführen:
singularity version
Testen Sie die Installation:
singularity run library://godlovedc/funny/lolcow
Sie sollten etwa Folgendes sehen:
INFO: Downloading library image
_______________________________________
/ Excellent day for putting Slinkies on \
\ an escalator. /
---------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
Was als nächstes zu tun ist
Wenn Sie Singularity nutzen wollen, könnte Sie möglicherweise auch interessieren, wie man Docker benutzt: