Singularity的编译不是完全需要root权限,但是有root权限会更加简单,如果你的服务器上没有singularity,用的是ubuntu,可以把这篇文章发给管理员,让他帮你装一个。
编译的Singularity的环境是Ubuntu 20.04,先安装必要的依赖环境
1 | sudo apt-get update && sudo apt-get install -y \ |
然后你需要安装大于1.20的GO,否则无法编译新的singularity,这里用的GO版本是1.21。
1 | wget https://go.dev/dl/go1.21.0.linux-amd64.tar.gz |
添加到自己的环境变量中
1 | echo 'export GOPATH=${HOME}/go' >> ~/.bashrc |
接着,我们需要从github上克隆一份singularity到本地,并切换到对应目录中
1 | mkdir -p $GOPATH/src/github.com/sylabs |
克隆之后,还需要下载这个库中的一些GO依赖库
1 | git submodule update --init |
最后就是编译安装
1 | ./mconfig |
最后会得到两个文件,一个是执行文件/usr/local/etc/singularity
,一个是配置文件/usr/local/etc/singularity/singularity.config
。
需要注意的是,由于安装过程中,需要从GitHub上下载数据,因此要求服务器能够顺畅的访问GitHub,否则会因为网络原因失败。