Ubuntu 22.04.3 LTS中安装singularity

文章目录

    • 概要
    • 背景知识
      • [什么是singularity ?](#什么是singularity ?)
    • 安装流程
      • [1. 安装Go](#1. 安装Go)
      • [2. 下载Singularity](#2. 下载Singularity)
      • [3. 编译Singularity源代码](#3. 编译Singularity源代码)
    • [4. 验证安装是否成功](#4. 验证安装是否成功)
    • singularity的使用
      • [安装open structure](#安装open structure)
    • 小结

概要

这里主要记录singularity的安装和使用,安装过程中会出现相关的错误,所以目前主要是进行记录。

背景知识

什么是singularity ?

以下这篇blog介绍了singularity容器。
浅谈Singularity容器

安装流程

安装流程看了很多文章,但是主要是针对从下面的文章进行实践,其中也遇到了很多问题,并进行了解释。
在Linux系统下安装部署Singularity容器

Singularity容器的安装大致分为以下三个步骤:

  • 安装Go
  • 下载Singularity
  • 编译Singularity源代码

1. 安装Go

Singularity v3 及以上版本主要用 Go语言 编写,所以需要安装Go才能进行源代码编译。目前可以查看官网链接,一般官网上展示的是最新版。

这里使用go1.21.3.linux-amd64.tar.gz

下载完成后解压到目标目录下,并设置相应的环境变量。

bash 复制代码
tar -xzvf go1.21.3.linux-amd64.tar.gz

将环境变量设置为指向Go:PATH

bash 复制代码
echo 'export PATH=<PATH to go>/go/bin:$PATH' >> ~/.bashrc &&\
source ~/.bashrc

注意:如果之前系统中已经下载安装过go程序,需要将之前的删除或替换

bash 复制代码
go rm -r <PATH to go>/go

2. 下载Singularity

从官网中下载任意一个版本Singularity,请查看Github的发布列表

"/>

因为我安装的ubuntu的系统是Ubuntu 22.04,其实更偏向于Ubuntu 22.04 (jammy),但是不太懂,所以我没有试过这种,直接下载的就是singularity-ce-4.0.1.tar.gz,也成功了。

也可以下载其他版本

3. 编译Singularity源代码

现在你已经准备好构建Singularity了。依赖项将自动下载。您可以使用以下命令构建Singularity:

bash 复制代码
# 解压
tar -xvzf singularity-ce-4.0.1.tar.gz
# 进入singularity目录下
cd singularity
# 构建Singularity
./mconfig

当执行上述命令后,可能会遇到下面情况
./mconfig出现下面错误:seccomp headers are required to build singularity with seccomp support

bash 复制代码
这个错误消息表明在构建Singularity时需要安装seccomp(安全计算)的头文件以启用seccomp支持。Seccomp是一个Linux内核的安全功能,可以用来限制进程对系统调用的访问,提高应用程序的安全性。
要解决这个问题,你可以按照以下步骤来安装seccomp的头文件:

sudo apt-get install libseccomp-dev

重新运行./mconfig后出现新的错误:glib-2.0 header are required to build conmon

bash 复制代码
这个错误消息表明在构建 conmon 时需要安装 glib-2.0 的头文件。glib-2.0 是一个常见的C语言库,用于开发Linux应用程序,它提供了许多常用的功能和数据结构。
要解决这个问题,你可以按照以下步骤来安装 glib-2.0 的头文件:安装 glib-2.0 头文件:你需要使用包管理器来安装 glib-2.0 的头文件。

sudo apt-get install libglib2.0-dev

重新运行./mconfig后出现新的错误:fuse/fuse3(libfuse/fuse3)header are required to build squashfuse

bash 复制代码
这个错误消息表明在构建 squashfuse 时需要安装 libfuse 或 libfuse3 的头文件,这是FUSE(Filesystem in Userspace)的库,用于支持用户空间文件系统的开发。要解决这个问题,你需要根据你的系统使用的FUSE版本来安装相应的头文件。
1。 安装 libfuse 头文件:
sudo apt-get install libfuse-dev

2。 安装 libfuse3 头文件:
sudo apt-get install libfuse3-dev

再次运行mconfig就不再出现错误,会在当前builddir文件夹下出现makefile文件,之后继续singularity的编译

bash 复制代码
make -C builddir && \
sudo make -C builddir install

需要注意的是Singularity需要在root用户下安装才能正常运行。

4. 验证安装是否成功

任何路径下直接:

bash 复制代码
singularity --version

如果return 相关的version,则表明成功安装

查看具体的脚本,可以输入

bash 复制代码
singularity -h

<img src="

singularity的使用

Singularity容器常用命令

安装open structure

详细的安装说明

bash 复制代码
sudo singularity build ost.img Singularity

note: 安装时间很长,请确定网络良好

使用:

bash 复制代码
singularity run --app OST ost.img -h

比较refernece structure and predicted structure to obtain lddt:

bash 复制代码
singularity run --app OST ost.img compare-structures --model predicted.pdb --reference solution.pdb --output output.json --lddt

小结

感谢上述各种blog的支持

相关推荐
lldhsds6 分钟前
书生大模型实战营第四期-入门岛-1. Linux前置基础
linux
wowocpp29 分钟前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
山河君42 分钟前
ubuntu使用DeepSpeech进行语音识别(包含交叉编译)
linux·ubuntu·语音识别
鹏大师运维1 小时前
【功能介绍】信创终端系统上各WPS版本的授权差异
linux·wps·授权·麒麟·国产操作系统·1024程序员节·统信uos
筱源源1 小时前
Elasticsearch-linux环境部署
linux·elasticsearch
knighthood20011 小时前
解决:ros进行gazebo仿真,rviz没有显示传感器数据
c++·ubuntu·ros
pk_xz1234563 小时前
Shell 脚本中变量和字符串的入门介绍
linux·运维·服务器
小珑也要变强3 小时前
Linux之sed命令详解
linux·运维·服务器
Lary_Rock5 小时前
RK3576 LINUX RKNN SDK 测试
linux·运维·服务器
云飞云共享云桌面7 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络