ラズパイでsingularityを動かす

引っ越しでデスク周りを整備したり、ネットワークが強化されたのでラズパイサーバーを稼働することが可能となった。 ラズパイといえど直接色々インストールしないである程度仮想化したい。UID/GIDの面でdockerとsingularityを両方使いたくて、singularityのインストールをしてみる。

ちなみにx86マシンで作成したsifファイルはラズパイ上だと動かなかった。まぁそれはそうだと思う。

実はapt install singularity-containerでもインストール可能ではあるのだけど、この方法でインストールしてしまうとビルド時に--fakerootが使えない罠がある。(fakerootを別途installすればできるかもしれないけど) なので素直にgolangのソースからビルドするのが正しい気がする。

とりあえずgolangのインストールから。ansibleを書いたほうがいい気がするけどめんどくさかったので...。

$wget https://golang.org/dl/go1.16.2.linux-armv6l.tar.gz
$sudo tar -C /usr/local -xzf go1.16.2.linux-armv6l.tar.gz

忘れずに/usr/local/go/binにPATHを通す。

あとはsingularity公式にあることをやっていけばいい。

sylabs.io

必要なパッケージをインストールして

$ 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 \
    cryptsetup

singularityのソースを持ってきて

$ export VERSION=3.7.0 && # adjust this as necessary \
    wget https://github.com/hpcng/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz && \
    tar -xzf singularity-${VERSION}.tar.gz && \
    cd singularity

ビルドしてインストール

$ ./mconfig && \
    make -C builddir && \
    sudo make -C builddir install

ということで無事singularityがインストールされた。あとはいろいろ