Errors With Installations With Spack

‘<package> needs both C and Fortran compilers’

Happened to me when trying to install mpi4py (for both mpich and openmpi). mpi4py needed gcc-8 and gfortran-8, which I had to manually install on ubuntu18.04 with sudo apt install gcc-8 gfortran-8 g++-8. Using spack compiler find spack finds the gcc compiler, but not g++ or gfortran. You need to add the paths to the compiler configuration file of spack manually: Running spack compiler find should tell you where the file is. For me, it was /home/mivkov/.spack/linux/compilers.yaml.

Find where the gcc-8 compiler is listed in the file. For me, it looked like this:

- compiler:
    environment: {}
    extra_rpaths: []
    flags: {}
    modules: []
    operating_system: ubuntu18.04
    paths:
      cc: /usr/bin/gcc-8
      cxx: None
      f77: None
      fc: None
    spec: gcc@8.2.0
    target: x86_64

And replace it with the correct paths:

- compiler:
    environment: {}
    extra_rpaths: []
    flags: {}
    modules: []
    operating_system: ubuntu18.04
    paths:
      cc: /usr/bin/gcc-8
      cxx: /usr/bin/g++-8
      f77: /usr/bin/gfortran-8
      fc: /usr/bin/gfortran-8
    spec: gcc@8.2.0
    target: x86_64

==> Error: [Errno 13] Permission denied: ‘/-‘

Happened to me when installing hdf5 for the second time with a new compiler (gcc@8.2.0) for py-h5py:

$ spack install hdf5 %gcc@8.2.0
==> Installing libszip
==> Searching for binary cache of libszip
==> Warning: No Spack mirrors are currently configured
==> No binary for libszip found: installing from source
==> Error: [Errno 13] Permission denied: '/-'

A longer traceback can be found using spack -d install:

$ spack -d install hdf5 %gcc@8.2.0
==> Reading config file /home/mivkov/local/spack/etc/spack/defaults/modules.yaml
==> Reading config file /home/mivkov/local/spack/etc/spack/defaults/linux/modules.yaml
==> Reading config file /home/mivkov/.spack/modules.yaml
==> Reading config file /home/mivkov/local/spack/etc/spack/defaults/config.yaml
==> Reading config file /home/mivkov/local/spack/etc/spack/defaults/repos.yaml
==> Reading config file /home/mivkov/local/spack/etc/spack/defaults/packages.yaml
==> Reading config file /home/mivkov/.spack/packages.yaml
==> READ LOCK: /home/mivkov/.spack/cache/providers/.builtin-index.yaml.lock[0:0] [Acquiring]
==> READ LOCK: /home/mivkov/.spack/cache/providers/.builtin-index.yaml.lock[0:0] [Acquired]
==> READ LOCK: /home/mivkov/.spack/cache/providers/.builtin-index.yaml.lock[0:0] [Released]
==> Reading config file /home/mivkov/.spack/linux/compilers.yaml
==> DATABASE LOCK TIMEOUT: 120s
==> PACKAGE LOCK TIMEOUT: No timeout
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Released]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Released]
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Acquiring]
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Released]
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Released]
==> link /home/mivkov/local/spack/var/spack/stage/hdf5-1.10.4-oqwd53arqw7wbcdta3uzmbv2qsgop5r3 -> /tmp/mivkov/spack-stage/spack-stage-zkpLCD
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[4185567495501045680:1] [Released]
==> Installing hdf5 dependencies
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Acquiring]
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/lock[0:0] [Released]
==> WRITE LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Released]
==> link /home/mivkov/local/spack/var/spack/stage/libszip-2.1.1-vtnnw5r5ph5ly3hvz2oterymyzqixf54 -> /tmp/mivkov/spack-stage/spack-stage-ll1AAi
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Acquiring]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Acquired]
==> READ LOCK: /home/mivkov/local/spack/opt/spack/.spack-db/prefix_lock[6227754510165278046:1] [Released]
==> Installing libszip
==> Searching for binary cache of libszip
==> Warning: No Spack mirrors are currently configured
==> No binary for libszip found: installing from source
Traceback (most recent call last):
  File "/home/mivkov/local/spack/bin/spack", line 48, in <module>
    sys.exit(spack.main.main())
  File "/home/mivkov/local/spack/lib/spack/spack/main.py", line 669, in main
    return _invoke_command(command, parser, args, unknown)
  File "/home/mivkov/local/spack/lib/spack/spack/main.py", line 440, in _invoke_command
    return_val = command(parser, args)
  File "/home/mivkov/local/spack/lib/spack/spack/cmd/install.py", line 318, in install
    install_spec(args, kwargs, abstract, concrete)
  File "/home/mivkov/local/spack/lib/spack/spack/cmd/install.py", line 197, in install_spec
    install(spec, kwargs)
  File "/home/mivkov/local/spack/lib/spack/spack/cmd/install.py", line 186, in install
    spec.package.do_install(**kwargs)
  File "/home/mivkov/local/spack/lib/spack/spack/package.py", line 1402, in do_install
    **kwargs)
  File "/home/mivkov/local/spack/lib/spack/spack/package.py", line 1511, in do_install
    spack.store.layout.create_install_directory(self.spec)
  File "/home/mivkov/local/spack/lib/spack/spack/directory_layout.py", line 253, in create_install_directory
    mkdirp(spec.prefix, mode=perms)
  File "/home/mivkov/local/spack/lib/spack/llnl/util/filesystem.py", line 435, in mkdirp
    raise e
OSError: [Errno 13] Permission denied: '/-'

The problem seems to be with some cache that spack has set up. You can clean it up using $ spack clean -a, and then try again.

Page last edited 2019-10-22