Closed BeatrizMonterde closed 8 months ago
Following some previous threads, I have removed the most recent Go version (go1.21.6) and installed instead the one required by Singularity (4.1.1), go1.20.13. With this modification, the "Go compiler" is found, but then there is an issue with "seccomp headers"
(nextflow) [bmonterde@node01(alma) singularity-ce-4.1.1]$ ./mconfig
Configuring for project singularity-ce' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... /data/scratch/DMP/UCEC/EVOLIMMU/bmonterde/go/bin/go checking: host C compiler option -Wall... yes checking: host C compiler option -Werror... yes checking: host C compiler option -Wfatal-errors... yes checking: host C compiler option -Wno-unknown-warning-option... yes checking: host C compiler option -Wstrict-prototypes... yes checking: host C compiler option -Wpointer-arith... yes checking: host C compiler option -Wbad-function-cast... yes checking: host C compiler option -Woverlength-strings... yes checking: host C compiler option -Wframe-larger-than=2047... yes checking: host C compiler option -Wno-sign-compare... yes checking: host C compiler option -Wclobbered... yes checking: host C compiler option -Wempty-body... yes checking: host C compiler option -Wmissing-parameter-type... yes checking: host C compiler option -Wtype-limits... yes checking: host C compiler option -Wunused-parameter... yes checking: host C compiler option -Wunused-but-set-parameter... yes checking: host C compiler option -Wno-discarded-qualifiers... yes checking: host C compiler option -Wno-incompatible-pointer-types... yes checking: host C compiler option -pipe... yes checking: host C compiler option -fmessage-length=0... yes checking: host C compiler option -fPIC... yes checking: host
ar' path... ar
checking: host ld' path... ld checking: host
ranlib' path... ranlib
checking: host objcopy' path... objcopy checking: target C compiler... cc checking: target C++ compiler... c++ checking: target
ar' path... ar
checking: target ld' path... ld checking: target
ranlib' path... ranlib
checking: target `objcopy' path... objcopy
checking: host compiles static binaries... no
checking: target compiles static binaries... no
checking: host os type... unix
checking: host architecture... x86_64
checking: target architecture... x86_64
checking: host architecture word size... 64
checking: target architecture word size... 64
checking: project version... 4.1.1
checking: project short version... 4.1.1
=> running post-basechecks project specific checks ...
checking: namespace: CLONE_NEWPID... yes
checking: namespace: CLONE_FS... yes
checking: namespace: CLONE_NEWNS... yes
checking: namespace: CLONE_NEWUSER... yes
checking: namespace: CLONE_NEWIPC... yes
checking: namespace: CLONE_NEWNET... yes
checking: namespace: CLONE_NEWUTS... yes
checking: namespace: CLONE_NEWCGROUP... yes
checking: feature: NO_NEW_PRIVS... yes
checking: feature: MS_SLAVE... yes
checking: feature: MS_REC... yes
checking: feature: MS_PRIVATE... yes
checking: user capabilities... yes
checking: header linux/securebits.h... yes
checking: header linux/capability.h... yes
checking: libseccomp+headers... no
seccomp headers are required to build Singularity with seccomp support. To disable seccomp support run mconfig using '--without-seccomp'.
Any idea on how could I solve this issue?
Many thanks
Please follow the instructions in INSTALL.md:
https://github.com/sylabs/singularity/blob/release-4.1/INSTALL.md
Note that the 'install dependencies' step installs libseccomp-dev
or libseccomp-devel
depending on your installation.
If you cannot install these packages, then you can run mconfig
with the --without-seccomp
flag, as the error message suggests.
Also note that SingularityCE 4.1.1 does not require Go 1.20.13. Go 1.20 is the minimum version. Our own packages are currently built using Go 1.21.6.
Hi,
Many thanks for youre reply and the link provided. Unfortunately, I am working in an HPC environment and don't have permissions to use "sudo". Is there an alternative way to install them?
Also, I tried ro run "mconfig" with the flag "--without--seccomp", but the installation wasn't successful
(base) [bmonterde@node01(alma) singularity-ce-4.1.1]$ ./mconfig --without-seccomp
Configuring for project singularity-ce' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... /data/scratch/DMP/UCEC/EVOLIMMU/bmonterde/go/bin/go checking: host C compiler option -Wall... yes checking: host C compiler option -Werror... yes checking: host C compiler option -Wfatal-errors... yes checking: host C compiler option -Wno-unknown-warning-option... yes checking: host C compiler option -Wstrict-prototypes... yes checking: host C compiler option -Wpointer-arith... yes checking: host C compiler option -Wbad-function-cast... yes checking: host C compiler option -Woverlength-strings... yes checking: host C compiler option -Wframe-larger-than=2047... yes checking: host C compiler option -Wno-sign-compare... yes checking: host C compiler option -Wclobbered... yes checking: host C compiler option -Wempty-body... yes checking: host C compiler option -Wmissing-parameter-type... yes checking: host C compiler option -Wtype-limits... yes checking: host C compiler option -Wunused-parameter... yes checking: host C compiler option -Wunused-but-set-parameter... yes checking: host C compiler option -Wno-discarded-qualifiers... yes checking: host C compiler option -Wno-incompatible-pointer-types... yes checking: host C compiler option -pipe... yes checking: host C compiler option -fmessage-length=0... yes checking: host C compiler option -fPIC... yes checking: host
ar' path... ar
checking: host ld' path... ld checking: host
ranlib' path... ranlib
checking: host objcopy' path... objcopy checking: target C compiler... cc checking: target C++ compiler... c++ checking: target
ar' path... ar
checking: target ld' path... ld checking: target
ranlib' path... ranlib
checking: target `objcopy' path... objcopy
checking: host compiles static binaries... no
checking: target compiles static binaries... no
checking: host os type... unix
checking: host architecture... x86_64
checking: target architecture... x86_64
checking: host architecture word size... 64
checking: target architecture word size... 64
checking: project version... 4.1.1
checking: project short version... 4.1.1
=> running post-basechecks project specific checks ...
checking: namespace: CLONE_NEWPID... yes
checking: namespace: CLONE_FS... yes
checking: namespace: CLONE_NEWNS... yes
checking: namespace: CLONE_NEWUSER... yes
checking: namespace: CLONE_NEWIPC... yes
checking: namespace: CLONE_NEWNET... yes
checking: namespace: CLONE_NEWUTS... yes
checking: namespace: CLONE_NEWCGROUP... yes
checking: feature: NO_NEW_PRIVS... yes
checking: feature: MS_SLAVE... yes
checking: feature: MS_REC... yes
checking: feature: MS_PRIVATE... yes
checking: user capabilities... yes
checking: header linux/securebits.h... yes
checking: header linux/capability.h... yes
Cannot build conmon for OCI support without libseccomp headers. Use --without-conmon to disable build and use conmon on PATH if present.
As suggested, I also tried with "--without-conmon"
(base) [bmonterde@node01(alma) singularity-ce-4.1.1]$ ./mconfig --without-conmonConfiguring for project singularity-ce' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... /data/scratch/DMP/UCEC/EVOLIMMU/bmonterde/go/bin/go checking: host C compiler option -Wall... yes checking: host C compiler option -Werror... yes checking: host C compiler option -Wfatal-errors... yes checking: host C compiler option -Wno-unknown-warning-option... yes checking: host C compiler option -Wstrict-prototypes... yes checking: host C compiler option -Wpointer-arith... yes checking: host C compiler option -Wbad-function-cast... yes checking: host C compiler option -Woverlength-strings... yes checking: host C compiler option -Wframe-larger-than=2047... yes checking: host C compiler option -Wno-sign-compare... yes checking: host C compiler option -Wclobbered... yes checking: host C compiler option -Wempty-body... yes checking: host C compiler option -Wmissing-parameter-type... yes checking: host C compiler option -Wtype-limits... yes checking: host C compiler option -Wunused-parameter... yes checking: host C compiler option -Wunused-but-set-parameter... yes checking: host C compiler option -Wno-discarded-qualifiers... yes checking: host C compiler option -Wno-incompatible-pointer-types... yes checking: host C compiler option -pipe... yes checking: host C compiler option -fmessage-length=0... yes checking: host C compiler option -fPIC... yes checking: host
ar' path... ar
checking: host ld' path... ld checking: host
ranlib' path... ranlib
checking: host objcopy' path... objcopy checking: target C compiler... cc checking: target C++ compiler... c++ checking: target
ar' path... ar
checking: target ld' path... ld checking: target
ranlib' path... ranlib
checking: target `objcopy' path... objcopy
checking: host compiles static binaries... no
checking: target compiles static binaries... no
checking: host os type... unix
checking: host architecture... x86_64
checking: target architecture... x86_64
checking: host architecture word size... 64
checking: target architecture word size... 64
checking: project version... 4.1.1
checking: project short version... 4.1.1
=> running post-basechecks project specific checks ...
checking: namespace: CLONE_NEWPID... yes
checking: namespace: CLONE_FS... yes
checking: namespace: CLONE_NEWNS... yes
checking: namespace: CLONE_NEWUSER... yes
checking: namespace: CLONE_NEWIPC... yes
checking: namespace: CLONE_NEWNET... yes
checking: namespace: CLONE_NEWUTS... yes
checking: namespace: CLONE_NEWCGROUP... yes
checking: feature: NO_NEW_PRIVS... yes
checking: feature: MS_SLAVE... yes
checking: feature: MS_REC... yes
checking: feature: MS_PRIVATE... yes
checking: user capabilities... yes
checking: header linux/securebits.h... yes
checking: header linux/capability.h... yes
checking: libseccomp+headers... no
seccomp headers are required to build Singularity with seccomp support. To disable seccomp support run mconfig using '--without-seccomp'.
You need to keep adding the additional flags until enough things are disabled to allow singularity to build given the restrictions of your system.
If you do not have sudo / root access you will also need to specify --prefix
to set a custom installation location, and --without-suid
to perform a non-setuid (unprivileged) installation. Note that this has some impact on how singularity works.
See the more detailed installation documentation in the admin guide here:
https://docs.sylabs.io/guides/4.0/admin-guide/installation.html#unprivileged-non-setuid-installation
It looks like you will also need --without-seccomp
and --without-conmon
so... e.g.
./mconfig --without-seccomp --without-conmon --without-suid --prefix=/home/dave/singularity-ce
Hi,
Many thanks for your reply. I have tried to install again singularity according to the information provided.
(base) [bmonterde@node01(alma) singularity-ce-4.1.1]$ ./mconfig --without-seccomp --without-conmon --without-suid --prefix=/data/scratch/DMP/UCEC/EVOLIMMU/bmonterde/singularity-ce-4.1.1
Configuring for project singularity-ce' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... /data/scratch/DMP/UCEC/EVOLIMMU/bmonterde/go/bin/go checking: host C compiler option -Wall... yes checking: host C compiler option -Werror... yes checking: host C compiler option -Wfatal-errors... yes checking: host C compiler option -Wno-unknown-warning-option... yes checking: host C compiler option -Wstrict-prototypes... yes checking: host C compiler option -Wpointer-arith... yes checking: host C compiler option -Wbad-function-cast... yes checking: host C compiler option -Woverlength-strings... yes checking: host C compiler option -Wframe-larger-than=2047... yes checking: host C compiler option -Wno-sign-compare... yes checking: host C compiler option -Wclobbered... yes checking: host C compiler option -Wempty-body... yes checking: host C compiler option -Wmissing-parameter-type... yes checking: host C compiler option -Wtype-limits... yes checking: host C compiler option -Wunused-parameter... yes checking: host C compiler option -Wunused-but-set-parameter... yes checking: host C compiler option -Wno-discarded-qualifiers... yes checking: host C compiler option -Wno-incompatible-pointer-types... yes checking: host C compiler option -pipe... yes checking: host C compiler option -fmessage-length=0... yes checking: host C compiler option -fPIC... yes checking: host
ar' path... ar
checking: host ld' path... ld checking: host
ranlib' path... ranlib
checking: host objcopy' path... objcopy checking: target C compiler... cc checking: target C++ compiler... c++ checking: target
ar' path... ar
checking: target ld' path... ld checking: target
ranlib' path... ranlib
checking: target `objcopy' path... objcopy
checking: host compiles static binaries... no
checking: target compiles static binaries... no
checking: host os type... unix
checking: host architecture... x86_64
checking: target architecture... x86_64
checking: host architecture word size... 64
checking: target architecture word size... 64
checking: project version... 4.1.1
checking: project short version... 4.1.1
=> running post-basechecks project specific checks ...
checking: namespace: CLONE_NEWPID... yes
checking: namespace: CLONE_FS... yes
checking: namespace: CLONE_NEWNS... yes
checking: namespace: CLONE_NEWUSER... yes
checking: namespace: CLONE_NEWIPC... yes
checking: namespace: CLONE_NEWNET... yes
checking: namespace: CLONE_NEWUTS... yes
checking: namespace: CLONE_NEWCGROUP... yes
checking: feature: NO_NEW_PRIVS... yes
checking: feature: MS_SLAVE... yes
checking: feature: MS_REC... yes
checking: feature: MS_PRIVATE... yes
checking: user capabilities... yes
checking: header linux/securebits.h... yes
checking: header linux/capability.h... yes
checking: squashfuse source... yes
checking: squashfuse fuse3 headers... no
checking: squashfuse fuse headers... no
fuse / fuse3 (libfuse / libfuse3) headers are required to build squashfuse.
However, I thins there is an issue with "GCC" that is already installed in the cluster and the PATH is indicated in my .bashrc file. Any idea on how I could solve it?
(base) [bmonterde@node01(alma) singularity-ce-4.1.1]$ which gcc
/usr/bin/gcc
export PATH="/usr/bin:$PATH"
Thanks again for your help
It looks like your environment is missing enough libraries that you won't really be able to use an unprivileged installation of singularity well.
At this point I would advise discussing with any HPC administrator / support staff for your cluster.
If there are further questions, please use the Q&A section of GitHub discussions, as this is not a bug or issue with SingularityCE itself - https://github.com/sylabs/singularity/discussions/categories/q-a
Version of Singularity singularity-ce-4.1.1
Describe the bug I am trying to install singularity in an HPC environment. I have previously downloaded Go and have indicated the path to the libraries and binary files in my .bashrc profile. However, when I try to run ./mconfig from Singularity, it seems to be an issue with Go compiler
(nextflow) [bmonterde@node01(alma) singularity-ce-4.1.1]$ ./mconfig Configuring for project `singularity-ce' with languages: C, Golang => running pre-basechecks project specific checks ... => running base system checks ... checking: host C compiler... cc checking: host C++ compiler... c++ checking: host Go compiler (at least version 1.20)... not found! mconfig: could not complete configuration
To Reproduce Installer downloaded
OS / Linux Distribution (nextflow) [bmonterde@node01(alma) builddir]$ uname -r 4.18.0-193.14.2.el8_2.x86_64