问题描述
我是Singularity的初学者,我想在菜谱制作方面有所帮助。
我想使用GARM
(一个基因组组装对帐工具)对我组装的两个基因组进行对帐。由于我正在使用HPC服务器,因此我无权安装此工具所需的perl软件包(分别为Parallel::ForkManager
和List::MoreUtils
)和R。我发现有两种可能的解决方案为此(请告诉我我是否做错了或者还有其他事情可以做):
我选择了第二个解决方案,并决定使用配方来构建容器,如下所示:
Bootstrap: docker
From: ubuntu
%files
GARM_0.7.4
%post -c /bin/bash
apt-get update
apt-get install -y --force-yes perl build-essential cpanminus r-base
cpanm Parallel::ForkManager List::MoreUtils
export GARMBIN=/GARM_0.7.4/bin
export GArmlIB=/GARM_0.7.4/lib
export MUMBIN=/GARM_0.7.4/MUMmer3.22
export AMOSBIN=/GARM_0.7.4/amos-3.0.0/bin
export AMOSLIB=/GARM_0.7.4/amos-3.0.0/lib
%runscript
exec perl /GARM_0.7.4/GARM.pl
其中GARM_0.7.4
是下载的文件夹,其中包含软件需要的所有内容,R和perl模块除外。
我使用sudo singularity build garm.simg recipe-garm
来构建容器。
然后使用singularity run garm.simg --help
查看容器是否正常工作,结果如下:
Can't open perl script "/GARM_0.7.4/GARM.pl": Permission denied
现在,即使在服务器上我无法使用sudo
,在PC上无论如何我都用sudo singularity run garm.simg --help
尝试过,输出为:
Empty compile time value given to use lib at /GARM_0.7.4/GARM.pl line 12.
Can't locate GARM_main.pm in @INC (you may need to install the GARM_main module) (@INC contains: /etc/perl /usr/local/lib/x86_64-linux-gnu/perl/5.30.0 /usr/local/share/perl/5.30.0 /usr/lib/x86_64-linux-gnu/perl5/5.30 /usr/share/perl5 /usr/lib/x86_64-linux-gnu/perl/5.30 /usr/share/perl/5.30 /usr/local/lib/site_perl /usr/lib/x86_64-linux-gnu/perl-base) at /GARM_0.7.4/GARM.pl line 13.
BEGIN Failed--compilation aborted at /GARM_0.7.4/GARM.pl line 13.
我不知道怎么了。如果问题是garm文件夹未复制到容器内,从而无法运行garm脚本,或者配方中存在sintax问题,并且容器未运行脚本,我将无法获得。
编辑:从该工具的建议中将导出添加为README.txt,但情况没有改变。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)