插件¶
概述¶
Singularity插件是一个包,这个包可以被动态的加载到Singularity的运行环境环境中, 使用插件可以做些实验性的,非标准的或者特殊用户需求的功能。 将来,插件将能和Singularity的更多的命令交互。
使用插件¶
list
命令会列出当前已经安装的插件。
$ singularity plugin list
There are no plugins installed.
插件是二进制的文件被打包到一个SIF文件,插件的作者也可以发布插件的源代码,可以使用 compile
命令编译生成插件。
下面例子是通过源码编译生成插件 test-plugin
。
$ singularity plugin compile examples/plugins/test-plugin/
编译完成以后,源代码的路径下降会生成一个SIF文件。
$ ls examples/plugins/test-plugin/ | grep sif
test-plugin.sif
Note
所有 的插件必须从Singularity的源码来编译。
每个插件包含插件的各种信息,比如插件作者,插件版本等。通过 inspect
命令查看插件信息。
$ singularity plugin inspect examples/plugins/test-plugin/test-plugin.sif
Name: sylabs.io/test-plugin
Description: This is a short test plugin for Singularity
Author: Michael Bauer
Version: 0.0.1
使用 install
命令安装插件,这个命令需要root用户权限。
$ sudo singularity plugin install examples/plugins/test-plugin/test-plugin.sif
$ singularity plugin list
ENABLED NAME
yes sylabs.io/test-plugin
安装成功后,插件会被自动的加载。通过 disable
能不启用插件,通过 enable
能启用插件。
这些操作也需要root权限。
$ sudo singularity plugin disable sylabs.io/test-plugin
$ singularity plugin list
ENABLED NAME
no sylabs.io/test-plugin
$ sudo singularity plugin enable sylabs.io/test-plugin
$ singularity plugin list
ENABLED NAME
yes sylabs.io/test-plugin
最后,我们也可以使用 uninstall
命令卸载插件, 这个操作也需要root权限。
$ sudo singularity plugin uninstall sylabs.io/test-plugin
Uninstalled plugin "sylabs.io/test-plugin".
$ singularity plugin list
There are no plugins installed.
开发插件¶
对开发插件感兴趣的开发者可以先查看文档 Go documentation。 更进一步, 可以读一些 例子代码, 更多关于插件开发的文档还在开发中,将在以后的版本中发布。