微信公众号:孟德尔的豆子
关注可了解更多的知识分享。
问题交流请留言或私信。
如果对您有帮助,欢迎打赏。
在生物信息学领域,数据处理和分析任务日益复杂,对计算资源的需求也越来越高。为了提高研究效率、确保环境一致性和可重复性,容器技术应运而生。Docker和Singularity作为两种主流的容器解决方案,在生信领域得到了广泛应用。本文将简单介绍Singularity的安装过程。
安装singularity 需要联网,安装过程中需要下载文件
注意:需要root权限
apt-get update
#--------------------
apt-get install -y \
build-essential \
uuid-dev \
libgpgme-dev \
squashfs-tools \
libseccomp-dev \
wget \
pkg-config \
git \
cryptsetup-bin
yum groupinstall -y 'Development Tools'
#--------------------------------------
yum install -y epel-release
#--------------------------------------
yum install -y \
libseccomp-devel \
squashfs-tools \
cryptsetup \
wget git
singularity使用Go编写,需要先安装Go语言环境。
在 go官网:https://golang.org/dl/ 下载合适版本的Go至~(用户家目录下)。并添加到环境变量中。
mkdir singularity
cd singularity
wget -c https://go.dev/dl/go1.20.linux-amd64.tar.gz
#-----------------------------------------------------
tar -C ~ -xzf go1.20.linux-amd64.tar.gz
#-----------------------------------------------------
vi ~/.bashrc
# 添加go路径:
export PATH=$PATH:~/go/bin/
# 更新
source ~/.bashrc
#-----------------------------------------------------
# 测试go版本:
go version
备注:singularity3.0以上的版本需要下载Go 1.13以上的版本。比如本教程下载了go1.20.linux-amd64.tar.gz版本。
官网下载地址:https://github.com/hpcng/singularity/releases
wget -c https://github.com/apptainer/singularity/releases/download/v3.8.7/singularity-3.8.7.tar.gz
tar -zxvf singularity-3.8.7.tar.gz
#-----------------------------------------------
# 编译与安装
# 步骤1
cd singularity-3.8.7/
./mconfig #配置安装路径,默认当前路径
# 步骤2
cd singularity-3.8.7/builddir/
make #编译
make install #安装(root权限)
----------------------------------------------
# 测试singularity是否成功安装
singularity --version
备注:
singularity实际路径: builddir/singularity
./mconfig --prefix=/opt/singularity 也可以安装到指定目录下,建议选一个空间足够大的目录
编译和安装需要时间较长,请耐心等待。
明明能运行go,但是依然报错:checking: host Go compiler (at least version 1.16.12)... not found!
go和singularity版本不对应,测试go1.20.5.linux-amd64.tar.gz 和 singularity-3.8.7.tar.gz 是OK的。
从Docker Hub:https://hub-stage.docker.com/ 直接拉取现成软件镜像到本地
singularity pull qiime2.sif docker://qiime2/core
exec参数使用
singularity exec -e -B /data:/data
# 使用-e参数去除环境变量,特别是宿主机的PATH变量。
# 使用-B参数添加宿主机的数据目录到容器中。建议整个常见目录,例如:"/data"。
# :前的是宿主机路径,:后的是容器内路径,嫌麻烦可以前后保持一致。
github网址:https://github.com/apptainer/singularity/
关注公众号 孟德尔的豆子 立即查看往期精彩好文。