Skip to content

Commit f9fffad

Browse files
authored
Add shared instance config and activation scripts
1 parent c9225f3 commit f9fffad

2 files changed

+99
-0
lines changed

activate-shared-spack-instance.sh

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Activate a shared Spack instance in your local ~/.spack configuration(s).
4+
5+
declare -xr SHARED_SPACK_VERSION='0.17.3'
6+
declare -xr SHARED_SPACK_INSTANCE_NAME='gpu'
7+
declare -xr SHARED_SPACK_INSTANCE_VERSION='b'
8+
declare -xr SHARED_SPACK_ROOT="/cm/shared/apps/spack/${SHARED_SPACK_VERSION}/${SHARED_SPACK_INSTANCE_NAME}/${SHARED_SPACK_INSTANCE_VERSION}"
9+
10+
declare -xr LOCAL_SPACK_NAMESPACE="${USER}"
11+
declare -xr LOCAL_SPACK_TMPDIR='/tmp'
12+
declare -xr LOCAL_SPACK_ROOT="${HOME}/.spack/${SHARED_SPACK_VERSION}/${SHARED_SPACK_INSTANCE_NAME}/${SHARED_SPACK_INSTANCE_VERSION}/${SHARED_SPACK_USER}"
13+
14+
. "${SHARED_SPACK_ROOT}/share/spack/setup-env.sh"
15+
module use "${LOCAL_SPACK_ROOT}/share/spack/lmod/linux-rocky8-x86_64"
16+
17+
alias spack="spack --config-scope ${LOCAL_SPACK_ROOT}"

configure-shared-spack-instance.sh

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
#!/usr/bin/env bash
2+
#
3+
# Configure a shared Spack instance in your local ~/.spack directory.
4+
5+
declare -xr SHARED_SPACK_VERSION='0.17.3'
6+
declare -xr SHARED_SPACK_INSTANCE_NAME='gpu'
7+
declare -xr SHARED_SPACK_INSTANCE_VERSION='b'
8+
declare -xr SHARED_SPACK_ROOT="/cm/shared/apps/spack/${SHARED_SPACK_VERSION}/${SHARED_SPACK_INSTANCE_NAME}/${SHARED_SPACK_INSTANCE_VERSION}"
9+
10+
declare -xr LOCAL_SPACK_NAMESPACE="${USER}"
11+
declare -xr LOCAL_SPACK_TMPDIR='/tmp'
12+
declare -xr LOCAL_SPACK_ROOT="${HOME}/.spack/${SHARED_SPACK_VERSION}/${SHARED_SPACK_INSTANCE_NAME}/${SHARED_SPACK_INSTANCE_VERSION}/${SHARED_SPACK_USER}"
13+
14+
module reset
15+
module list
16+
. "${SHARED_SPACK_ROOT}/share/spack/setup-env.sh"
17+
printenv
18+
19+
mkdir -p "${LOCAL_SPACK_ROOT}"
20+
21+
mkdir -p "${LOCAL_SPACK_ROOT}/var/spack/repos/${LOCAL_SPACK_NAMESPACE}/packages"
22+
tee -a "${LOCAL_SPACK_ROOT}/var/spack/repos/${LOCAL_SPACK_NAMESPACE}/repo.yaml" << EOF
23+
repo:
24+
namespace: ${LOCAL_SPACK_NAMESPACE}
25+
EOF
26+
27+
mkdir -p "${LOCAL_SPACK_ROOT}/var/spack/stage"
28+
mkdir -p "${LOCAL_SPACK_ROOT}/var/spack/cache"
29+
mkdir -p "${LOCAL_SPACK_ROOT}/share/spack/modules"
30+
mkdir -p "${LOCAL_SPACK_ROOT}/share/spack/lmod"
31+
mkdir -p "${LOCAL_SPACK_ROOT}/opt/spack"
32+
33+
architecture='${ARCHITECTURE}'
34+
compilername='${COMPILERNAME}'
35+
compilerver='${COMPILERVER}'
36+
package='${PACKAGE}'
37+
version='${VERSION}'
38+
hash='${HASH}'
39+
40+
mkdir -p "${LOCAL_SPACK_ROOT}/etc/spack"
41+
tee -a "${LOCAL_SPACK_ROOT}/config.yaml" << EOF
42+
config:
43+
install_tree:
44+
root: ${LOCAL_SPACK_ROOT}opt/spack
45+
projections:
46+
all: ${architecture}/${compilername}-${compilerver}/${package}-${version}-${hash}
47+
template_dirs:
48+
- ${SHARED_SPACK_ROOT}/share/spack/templates
49+
module_roots:
50+
tcl: ${LOCAL_SPACK_ROOT}share/spack/modules
51+
lmod: ${LOCAL_SPACK_ROOT}share/spack/lmod
52+
build_stage:
53+
- ${LOCAL_SPACK_ROOT}var/spack/stage
54+
- ${LOCAL_SPACK_TMPDIR}/${USER}/spack-stage
55+
source_cache: ${LOCAL_SPACK_ROOT}var/spack/cache
56+
misc_cache: ~/.spack/cache
57+
connect_timeout: 10
58+
verify_ssl: true
59+
suppress_gpg_warnings: false
60+
install_missing_compilers: false
61+
checksum: true
62+
dirty: false
63+
build_language: C
64+
locks: true
65+
build_jobs: 1
66+
ccache: false
67+
db_lock_timeout: 3
68+
package_lock_timeout: null
69+
shared_linking: 'rpath'
70+
allow_sgid: true
71+
EOF
72+
73+
tee -a "${LOCAL_SPACK_ROOT}/repos.yaml" << EOF
74+
repos:
75+
- ${LOCAL_SPACK_ROOT}var/spack/repos/${LOCAL_SPACK_NAMESPACE}
76+
EOF
77+
78+
tee -a "${LOCAL_SPACK_ROOT}/upstreams.yaml" << EOF
79+
upstreams:
80+
spack-instance-1:
81+
install_tree: ${SHARED_SPACK_ROOT}/opt/spack
82+
EOF

0 commit comments

Comments
 (0)