如何解决使用fakeroot进行的奇异性生成给出无效的参数错误
在没有sudo权限的系统上,奇点有点麻烦。奇异性是此系统上的一个模块,以便其他用户可以使用它。 我是第一个尝试使用它的用户。我正在尝试使用--fakeroot(-f)构建一个非常简单的容器。
$ module load singularity
$ singularity --version
singularity version 3.6.4
$ cat t.def
Bootstrap: library
From: ubuntu:18.04
Stage: build
$ singularity build -f t.sif t.def
ERROR : Failed to create container process: Invalid argument
$ singularity -d build -f t.sif t.def
DEBUG [U=1013,P=8140] persistentPreRun() Singularity version: 3.6.4
DEBUG [U=1013,P=8140] persistentPreRun() Parsing configuration file /opt/singularity/3.6.4//etc/singularity/singularity.conf
DEBUG [U=1013,P=8140] handleConfDir() /home/Thomas.Robinson/.singularity already exists. Not creating.
DEBUG [U=1013,P=8140] init() Use starter binary /opt/singularity/3.6.4/libexec/singularity/bin/starter-suid
VERBOSE [U=0,P=8140] print() Set messagelevel to: 5
VERBOSE [U=0,P=8140] init() Starter initialization
DEBUG [U=0,P=8140] get_pipe_exec_fd() PIPE_EXEC_FD value: 8
VERBOSE [U=0,P=8140] is_suid() Check if we are running as setuid
VERBOSE [U=0,P=8140] priv_drop() Drop root privileges
DEBUG [U=1013,P=8140] init() Read engine configuration
DEBUG [U=1013,P=8140] init() Wait completion of stage1
VERBOSE [U=1013,P=8150] priv_drop() Drop root privileges permanently
DEBUG [U=1013,P=8150] set_parent_death_signal() Set parent death signal to 9
VERBOSE [U=1013,P=8150] init() Spawn stage 1
DEBUG [U=1013,P=8150] startup() fakeroot runtime engine selected
VERBOSE [U=1013,P=8150] startup() Execute stage 1
DEBUG [U=1013,P=8150] StageOne() Entering stage 1
VERBOSE [U=1013,P=8140] wait_child() stage 1 exited with status 0
DEBUG [U=1013,P=8140] cleanup_fd() Close file descriptor 4
DEBUG [U=1013,P=8140] cleanup_fd() Close file descriptor 5
DEBUG [U=1013,P=8140] cleanup_fd() Close file descriptor 6
DEBUG [U=1013,P=8140] init() Set child signal mask
DEBUG [U=1013,P=8140] init() Create socketpair for master communication channel
DEBUG [U=1013,P=8140] init() Create RPC socketpair for communication between stage 2 and RPC server
VERBOSE [U=1013,P=8140] user_namespace_init() Create user namespace
VERBOSE [U=1013,P=8140] pid_namespace_init() Create pid namespace
ERROR [U=1013,P=8140] init() Failed to create container process: Invalid argument
调试版本不提供有关无效参数是什么的任何信息。我试图删除其中一个文件,但它只是告诉我缺少一个参数。奇点安装,.def文件是否有问题,或者我做错了什么?
感谢您的帮助。
解决方法
您可以检查系统enable unprivileged user namespace creation’
。
默认情况下未启用。
文档:https://sylabs.io/guides/3.6/admin-guide/user_namespace.html#user-namespace-requirements
在我的环境CentOS 7.4中,已启用:
sudo sh -c 'echo user.max_user_namespaces=15000 \
>/etc/sysctl.d/90-max_net_namespaces.conf'
sudo sysctl -p /etc/sysctl.d /etc/sysctl.d/90-max_net_namespaces.conf
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。