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

相关推荐
路溪非溪6 分钟前
关于Linux内核中头文件问题相关总结
linux
Lovyk2 小时前
Linux 正则表达式
linux·运维
Fireworkitte3 小时前
Ubuntu、CentOS、AlmaLinux 9.5的 rc.local实现 开机启动
linux·ubuntu·centos
sword devil9004 小时前
ubuntu常见问题汇总
linux·ubuntu
ac.char4 小时前
在CentOS系统中查询已删除但仍占用磁盘空间的文件
linux·运维·centos
淮北也生橘126 小时前
Linux的ALSA音频框架学习笔记
linux·笔记·学习
华强笔记9 小时前
Linux内存管理系统性总结
linux·运维·网络
十五年专注C++开发9 小时前
CMake进阶: CMake Modules---简化CMake配置的利器
linux·c++·windows·cmake·自动化构建
phoenix098110 小时前
ansible部署lnmp-allinone
linux·运维·ansible
winds~10 小时前
【git】 撤销revert一次commit中的某几个文件
linux·c++