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的支持

相关推荐
檀越剑指大厂9 分钟前
【Linux系列】Shell 脚本中的条件判断:`[ ]`与`[[ ]]`的比较
linux·运维·服务器
2301_819287122 小时前
ce第六次作业
linux·运维·服务器·网络
武汉联从信息2 小时前
如何使用linux日志管理工具来管理oracle osb服务器日志文件?
linux·运维·服务器
Aileen_0v03 小时前
【AI驱动的数据结构:包装类的艺术与科学】
linux·数据结构·人工智能·笔记·网络协议·tcp/ip·whisper
VinciYan3 小时前
基于Jenkins+Docker的自动化部署实践——整合Git与Python脚本实现远程部署
python·ubuntu·docker·自动化·jenkins·.net·运维开发
州周3 小时前
Ftp目录整个下载
linux·服务器·数据库
Jackey_Song_Odd3 小时前
Ubuntu 24.04.1 解决部分中文字符(门、径)显示错误的问题
linux·ubuntu
kaixin_learn_qt_ing4 小时前
Linux export命令
linux
余额不足121384 小时前
C语言基础十六:枚举、c语言中文件的读写操作
linux·c语言·算法
冷曦_sole4 小时前
linux-19 根文件系统(一)
linux·运维·服务器