Windows(WSL)にSingularityCEをインストールする

はじめに

Singularity は、高パフォーマンスコンピューティング(HPC)環境でのコンテナ実行を可能にするコンテナプラットフォームです。WSL 上で Singularity を利用することで、Linux コンテナを Windows 環境で動作させることができます。

本記事では、WSL(Ubuntu 20.04)上で SingularityCE 4.2.1 をソースからビルドしてインストールする手順になります。

開発環境

インストール方法

必要なパッケージのインストール

まず、Singularity のビルドに必要なパッケージをインストールします。

sudo apt-get update
sudo apt-get install -y \
    build-essential \
    libssl-dev \
    uuid-dev \
    libgpgme-dev \
    squashfs-tools \
    libseccomp-dev \
    wget \
    pkg-config \
    git \
    cryptsetup \
    libglib2.0-dev \
    libfuse-dev \
    libfuse3-dev \
    libjson-c-dev

Go 言語のインストール

既存の Go の削除(必要な場合)

sudo rm -rf /usr/local/go

最新の Go のダウンロードとインストール

# 最新の Go 1.21.1 をダウンロード
wget https://go.dev/dl/go1.21.1.linux-amd64.tar.gz

# /usr/local に展開
sudo tar -C /usr/local -xzf go1.21.1.linux-amd64.tar.gz

# ダウンロードしたアーカイブを削除
rm go1.21.1.linux-amd64.tar.gz

環境変数を設定します

echo 'export GOPATH=${HOME}/go' >> ~/.bashrc
echo 'export PATH=/usr/local/go/bin:${PATH}:${GOPATH}/bin' >> ~/.bashrc
source ~/.bashrc

ここでインストールしたgoのversionを確認します

go version

以下の出力ができてきます

go version go1.21.1 linux/amd64

Singularity のソースコードのダウンロード

リポジトリからクローンします

git clone https://github.com/sylabs/singularity.git
cd singularity

configの設定を使って処理を実行します

./mconfig

ビルドをしてインストールをします

make -C builddir
sudo make -C builddir install

以下でインストール後の確認ができます

singularity --version

以下のような出力がされてたら成功です

singularity-ce version 4.2.1

エラー対応

  1. glib-2.0 headers are required to build conmon.

以下で追加のライブラリを入れます

sudo apt-get install libglib2.0-dev

参考サイト

zenn.dev