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

相关推荐
jiunian_cn1 小时前
【Linux】centos软件安装
linux·运维·centos
藥瓿亭1 小时前
K8S认证|CKS题库+答案| 6. 创建 Secret
运维·ubuntu·docker·云原生·容器·kubernetes·cks
程序员JerrySUN1 小时前
[特殊字符] 深入理解 Linux 内核进程管理:架构、核心函数与调度机制
java·linux·架构
孤寂大仙v1 小时前
【计算机网络】非阻塞IO——select实现多路转接
linux·计算机网络
派阿喵搞电子2 小时前
Ubuntu下有关UDP网络通信的指令
linux·服务器·网络
Evan_ZGYF丶2 小时前
【PCIe总线】 -- PCI、PCIe相关实现
linux·嵌入式·pcie·pci
舰长1152 小时前
Ubuntu挂载本地镜像源(像CentOS 一样挂载本地镜像源)
linux·ubuntu·centos
程序员JerrySUN2 小时前
全面理解 Linux 内核性能问题:分类、实战与调优策略
java·linux·运维·服务器·单片机
Theodore_10222 小时前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
huangyuchi.3 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++