引っ越しでデスク周りを整備したり、ネットワークが強化されたのでラズパイサーバーを稼働することが可能となった。 ラズパイといえど直接色々インストールしないである程度仮想化したい。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公式にあることをやっていけばいい。
必要なパッケージをインストールして
$ 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がインストールされた。あとはいろいろ