Singularity是一个相对较新的容器软件,仍处于开发状态,兼容Docker容器这一特性让它的用户群体增长迅速。Singularity假设用户在一个有root权限的系统上构建容器,在一个没有root权限的系统上运行容器,这更符合科研应用的场景,因为HPC的用户是不会有root权限使用docker的。打完空洞骑士后,容器有了新的意义。

由于课题组不靠谱RA几个月以来一直声称在HPC系统上无法安装singularity,无数次尝试仍然还是出现command not found的情况,所以抽时间一探究竟。好像也没什么tricky的,就是将软件的bin加到PATH中而已。安装完成后至少运行singularity命令是没问题的,至于是否真正可用用来提交job和处理数据还有待不靠谱RA去验证。
安装GO
由于该软件是用GO写的,所以需要先安装GO,具体操作如下:
👉第一步下载GO
也可以使用wget命令下载,用右键在网页获取下载链接即可。
wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
软件将会下载到当前路径,推荐将当前路径设置为$HOME
👉第二步解压GO
正常步骤是解压到usr/local/
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.17.6.linux-amd64.tar.gz
但是由于我们没有root权限,可以将它解压到当前路径
tar -xzf go1.17.6.linux-amd64.tar.gz
👉第三步配置环境变量
正常步骤是将/usr/local/go/bin加到PATH中。
export PATH=$PATH:/usr/local/go/bin
因此需要将以上命令添加到
$HOME/.profile
或者/etc/profile (for a system-wide installation)
由于上一步中,我们无法将GO解压到usr/local中,所以相应地,这里的路径用GO解压的路径替换。需要注意的是.profile文件在不同系统中名称有可能不用,比如有的时候就称之为.bash_profile。设置好后需要重新登录,或者用source运行一下.profile文件,让配置生效。
👉最后
命令行中输入go version看到版本号,说明安装完成。
安装singularity
流程大概是和GO类似,只是解压后需要运行一个安装的命令。
👉第一步下载和解压singularity
export VERSION=3.9.2 && # adjust this as necessary \
wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-ce-${VERSION}.tar.gz && \
tar -xzf singularity-ce-${VERSION}.tar.gz && \
cd singularity-ce-${VERSION}
运行完命令后已在singularity解压出来的文件夹中了
👉第二步安装
这里要带 --without-suid
--prefix设置的是安装的文件夹
./mconfig --without-suid --prefix=$HOME/singularity-ce && \
make -C ./builddir && \
make -C ./builddir install
👉第三步配置环境变量
将装好的软件添加到PATH中。
export PATH=$PATH:$HOME/singularity-ce /bin
需要将以上内容添加到.profile文件中。设置好后需要重新登录,或者用source运行一下.profile文件,让配置生效。
👉最后
运行singularity version可以看到版本说明安装完成。至于在具体使用中比如做预处理,用slrum提交任务是否会出问题目前还不得而知。
英文版
写都写了就备份在这里吧
How to install singularity on HPC without root/sudo
Install GO if you haven’t done so
Go to your $HOME dir.
cd $HOME
Download GO
wget https://go.dev/dl/go1.17.6.linux-amd64.tar.gz
Unzip GO
tar -xzf go1.17.6.linux-amd64.tar.gz
Add GO to your PATH
Add the following line to the $HOME/.bash_profilefile
export PATH=$PATH:$HOME/go/bin
Re-login or run .bash_profile using “source $HOME/.bash_profile” to activate the new settings.
Run “go version” in the terminal to check if it is installed properly
Install singularity
Go to your $HOME dir.
cd $HOME
Download and Unzip singularity.
export VERSION=3.9.2 && # adjust this asnecessary \
wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-ce-${VERSION}.tar.gz&& \
tar -xzfsingularity-ce-${VERSION}.tar.gz && \
cdsingularity-ce-${VERSION}
Install singularity
./mconfig --without-suid –prefix=#HOME/singularity-ce&& \
make -C./builddir && \
make -C ./builddir install
Add singularity to your PATH
Add the following line to the $HOME/.bash_profilefile
export PATH=$PATH:$HOME/singularity-ce /bin
Re-login or run .bash_profile using “source $HOME/.bash_profile” to activate the new settings.
Run “singularity version” in the terminal to check if it is installed properly.
参考
https://sylabs.io/guides/3.9/admin-guide/installation.html