Reputation: 598
We're setting up spack on our machine, to be used by multiple people (some/most of which will not be in sudo), but all of us are new to spack. Spack is installed at root level so users cannot modify the installed software at will.
Part of the appeal of spack is that it allows to create environments. However, spack env create testenv
tries to create an environment within the root-level spack directory, and I can't find any option to create an environment at the user level. This makes it more or less useless for non-root end users, since we can't tell the admins to create an environment for them every time they need one.
What's the preferred solution here? Re-install spack for every user in addition to the central spack installation? Change the permissions of the var/spack/environments
directory? Or is there an option to change the target directory of the environment?
Addenda:
I later found that spack env create -d testenv
creates a new "anonymous" environment in ./testenv
; however, as far as I can tell, this does not allow the user to install their own software within this environment if the software is not already installed system-wide. I gather this might even be an intended limitation of spack?
To be perfectly clear, what I have in mind as the "desired setup" is the following: The system admins provide a central spack installation which provides most of the software the user will want. Then each user can create their own user-level environments, into which they load some of the centrally provided software, but into which they can also install software of their own liking which is not centrally installed. (The idea being to take workload off of the sys admins who wouldn't have to centrally install any ever-so-niche piece of software that only a single user needs.)
Upvotes: 1
Views: 720
Reputation: 91
One way to do this would be to use spack's upstream feature and have each user create their own instance of spack.
Then they can upstream the central admin spack installation with rX
permissions.
Another idea is to set the config:install_tree
config parameter which you can see here.
differently at for the system and user scopes. If you scoped the users to have a different install_tree
they can install their own software. You would still need to upstream the main installation that you want at the system level.
These are a couple of ideas. It might not be a bad idea to ask around on the spack slack channel (instruction to join in the Spack GitHub README) if they don't work for you.
Upvotes: 1