0

我们希望提高我们研究所分析的可重复性。为此,我们考虑实现一个基于Singularity的系统。这个想法是,在分析开始时,用户可以选择一个机器配置(以后必须可以修改),直到项目完成。然后,图像与分析一起存档。理想情况下,用户不必在此过程中发出系统管理命令(安装软件包等)。

她只是提出一个请求,比如“我需要 R 和 tidyverse 和 Python 3 以及这个和那个内部包”,然后她得到一个命令,她可以使用 ssh 进入具有这些功能的奇异容器。当她提出新请求时,她会获得最新版本的程序,但一旦部署了容器,这些版本就不再更改。

当我想到多个用户将需要不同的软件组合这一事实时,这变得很棘手。我是否需要为软件和软件扩展包的每个组合提供映像?如果我只想到用户可以选择任意组合 {R, Julia, Python, r-tidyverse, r-data.table, r-whatever-genomic-analysis-package-on-bioconductor, python-. ..}

  • 血管中有没有特征选择方法

    singularity pull library://alpine:3.7 +r:3.2.1 +python3:3.7 +r-package:1.2.3
    

    这样用户可以

    ssh cluster01 -- singularity shell project-abc.simg
    

    并开始/继续工作?

  • 如果没有,是否有另一种方法可以使用奇异性向用户提供自定义机器配置?

我可以找到Singularity Compose,但这似乎只是将多个容器作为彼此相邻的服务运行。所以图像可以保持分开。我必须合并它们。

4

1 回答 1

0

是的,对于 Singularity,必须为每个可能的包组合提供专用图像。

通过将服务器配置更改为包管理器NixGUIX(nix 的一个分支),可以为每个用户选择一组应用程序。这里的概念是每个应用程序/库都存在于自己的目录中,其名称是应用程序的哈希!因此,多个应用程序版本可以共存,并且每个应用程序可以链接到同一库的另一个版本。

用户可以选择一组这些目录作为用户配置文件。这是正确应用程序文件夹中二进制文件的符号链接文件夹。来自Nix 手册

如上所述的 Nix 配置文件架构方案

因此,每个用户都可以根据自己的喜好设置他们的环境,直至按位可再现性。

分析后,可以将配置文件转换为图像。我知道使用guix pack(tar,Docker,Singularity)的 GUIX 是可能的。

对于尼克斯,我不确定。GitHub 上有一个项目datakurre/nix-build-pack-docker,但自 2015 年以来一直处于休眠状态。也许将所需的子集复制/nix/store到文件夹中,拉取NixOS 映像并将该映像绑定/nix/store到您自己的文件夹就足够了?

于 2020-01-06T12:02:46.587 回答