• Ubuntu 22.04.3 LTS中安装singularity


    概要

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

    背景知识

    什么是singularity ?

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

    安装流程

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

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

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

    1. 安装Go

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

    这里使用go1.21.3.linux-amd64.tar.gz
    下载完成后解压到目标目录下,并设置相应的环境变量

    tar -xzvf go1.21.3.linux-amd64.tar.gz
    
    • 1

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

    echo 'export PATH=/go/bin:$PATH' >> ~/.bashrc &&\
    source ~/.bashrc
    
    • 1
    • 2

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

    go rm -r <PATH to go>/go
    
    • 1

    2. 下载Singularity

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

    "/>

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

    3. 编译Singularity源代码

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

    # 解压
    tar -xvzf singularity-ce-4.0.1.tar.gz
    # 进入singularity目录下
    cd singularity
    # 构建Singularity
    ./mconfig
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

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

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

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

    这个错误消息表明在构建 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
    
    • 1
    • 2
    • 3
    • 4

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

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

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

    make -C builddir && \
    sudo make -C builddir install
    
    • 1
    • 2

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

    4. 验证安装是否成功

    任何路径下直接:

    singularity --version
    
    • 1

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

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

    singularity -h
    
    • 1

    singularity的使用

    Singularity容器常用命令

    安装open structure

    详细的安装说明

    sudo singularity build ost.img Singularity
    
    • 1

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

    使用:

    singularity run --app OST ost.img -h
    
    • 1

    比较refernece structure and predicted structure to obtain lddt:

    singularity run --app OST ost.img compare-structures --model predicted.pdb --reference solution.pdb --output output.json --lddt
    
    
    • 1
    • 2

    小结

    感谢上述各种blog的支持

  • 相关阅读:
    构建私有的 CA 机构(拓展)
    基于局部特征技术的航拍绝缘子图像检测和配准技术的研究
    微服务绕不过的坎-服务雪崩
    抖音开放平台第三方代小程序开发,一整套流程
    宝宝照片保存大法!一键制作照片书
    Bootstrap Collapse的使用
    【JMeter】后置处理器的分类以及场景介绍
    删除文件恢复软件?只需2个步骤
    JAVASE 第二十五天
    FFmpeg和rtsp服务器搭建视频直播流服务
  • 原文地址:https://blog.csdn.net/weixin_44719529/article/details/134267998