出于最近的一些想法,突然很想在自己的简书写写东西。
事实上,主要只想记录自己学习的过程。
也因为导师最近天天强调分享,
我个人不是不喜欢分享,主要是“懒”
最近在听到很多大师兄说,其实分享的过程/也是交流的过程/同时也是个人学习进步最快的过程。
希望我个人不要太拉。
简介
Singularity 是需要在Linux上搭建,兼容程度不如Docker;
不过似乎更好被迁移与扩展。
Singularity基本概念:
● 容器(container): 容器是一个包含用户软件和依赖的镜像系统,可独立运行某一条或者多条命令。Singularity没有镜像的概念,用户创建和运行的都是一个一个容器。
● SIF(Singularity Image File,镜像文件):压缩后的只读(read-only)的Singularity镜像文件,是生产使用的主要形式。
● Sandbox (沙盒):可写(writable)的容器存在形式,是文件系统中的一个目录,常用于开发或者创建自己的容器,是开发使用的主要形式。
windows下构建
基于WSL2+Ubuntu
#更新
#检查各种模块
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
#更新wsl内核包
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
#重启电脑
#设置为默认启动模式
wsl --set-default-version 2
- 下载好合适的Ubuntu安装包
https://docs.microsoft.com/zh-cn/windows/wsl/install-manual -
微软商店下载Ubuntu
(win10以上的电脑/ 最好还是专业版)
(win11的电脑如果出问题,也很可能无解,最好打电话给客服)
下载后,双击等待,填写好usrnam和密码
更换为非系统盘
#更改Ubuntu到非系统盘
#先导出再导入
wsl --export Ubuntu-20.04 F:\Ubuntu-20.04.tar
#wsl.exe --import [newname] [path] [package]
wsl --unregister Ubuntu-20.04
wsl --import Ubuntu20 F:\Ubuntu-20 F:\Ubuntu-20.04.tar
#设置新的Ubuntu为默认
wsl -s Ubuntu2 0
Singulariy 安装
#启动wsl/ 到达主目录
cd
mkdir software && cd software
- 安装依赖
# Ensure repositories are up-to-date
sudo apt-get update #第一次运行sudo需要输入用户密码/
# Install debian packages for dependencies
sudo apt-get install -y \
build-essential \
libseccomp-dev \
libglib2.0-dev \
pkg-config \
squashfs-tools \
cryptsetup \
runc
- 安装GO
#安装GO 1.17以上的版本
export VERSION=1.18.2 OS=linux ARCH=amd64
wget -O /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz \
https://dl.google.com/go/go${VERSION}.${OS}-${ARCH}.tar.gz
sudo tar -C /usr/local -xzf /tmp/go${VERSION}.${OS}-${ARCH}.tar.gz
#加载进环境
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
- 在windows下下载好迁移到wsl内
cp /mnt/f/下载/singularity-ce-3.10.0.tar.gz .
tar -zxf singularity-ce-3.10.0.tar.gz
cd singularity
- 或者在合适的路径下下载singularity (与上二选一)
cd /个人目录/ #自行替换
git clone --recurse-submodules https://github.com/sylabs/singularity.git
cd singularity
- 进入下载好的singularity 文件里
./mconfig -b ./buildtree -p /usr/local
sudo make -C builddir/
sudo make -C builddir/ install
- 以下这样即为安装好singularity
singularity --version
#singularity-ce version 3.10.0
最后
这个时候其实Singularity已经完成安装。
下一篇介绍Singularity使用.
以及相关例子。
但事实上Singularity最好最秀的用法应该在集群。
在windows下,我这边也只是为了转换一些docker镜像。
而且在windows下做分析,最好还是使用docker!