Repository navigation
Bug: No LocalPreferences.toml written #39
Description
The script defines JULIA_PREF_PROJECT and JULIA_PREFS:
Lines 190 to 191 in f510cfa
| export JULIA_PREF_PROJECT="$JULIA_PREFDIR/Project.toml" | |
| export JULIA_PREFS="$JULIA_PREFDIR/LocalPreferences.toml" |
Then calls julia_pref many times to write to those files. However, in my install today with Julia 1.11.6+0.x64.linux.gnu, no LocalPreferences.toml file was written. I get only Project.toml.
Verbose output indicates this is because paths in /dev/shm/$USER are not executable.
[ JUHPC: Starting installation of HPC setup for juliaup, julia and HPC key packages requiring system libraries...
[ JUHPC: Installing juliaup and julia temporarily in /dev/shm/99r/juliaup...
info: downloading installer
Checking for new Julia versions
Installing Julia 1.11.6+0.x64.linux.gnu
Configured the default Julia version to be 'release'.
[ JUHPC: ... done: temporary installation completed.
[ JUHPC: Creating preferences for HPC key packages (this can take a few minutes, because some packages have to be temporarily installed)...
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
./juhpc: line 73: /dev/shm/99r/juliaup/bin/julia: Permission denied
[ JUHPC: ERROR: preferences file is missing or empty.
[ JUHPC: cleaning up temporary juliaup installation in /dev/shm/99r/juliaup.
Error running 02-script in /tmp/build/99r/juhpc.yaml
Manually running the juliaup installer to install to /dev/shm/99r/juliaup shows the file is marked executable. It's a system permission error.
$ ls -l /dev/shm/99r/juliaup/bin/julia
lrwxrwxrwx 1 99r 99r 38 Aug 5 16:55 /dev/shm/99r/juliaup/bin/julia -> /dev/shm/99r/juliaup/bin/julialauncher
$ ls -l /dev/shm/99r/juliaup/bin/julialauncher
-rwxr-xr-x 1 99r 99r 3307984 Apr 23 11:39 /dev/shm/99r/juliaup/bin/julialauncher
That causes the following line to break:
https://github.com/JuliaParallel/JUHPC/blob/f510cfa9eb7d3fdb244b93ca7b20b9cd5487a9a0/juhpc#L240C1-L240C83
My full process was:
export JUHPC_CUDA_HOME=$CUDA_HOME
export JUHPC_CUDA_RUNTIME_VERSION=$CRAY_CUDATOOLKIT_VERSION
export JUHPC_MPI_VENDOR=cray
export JUHPC_MPI_EXEC=srun
export JUHPC_HDF5_HOME=$HDF5_DIR
bash -l ./juhpc $prefix/juhpc $prefix/juliaup --verbose=2
So, the error is from my system. However, the temporary directory is not configurable as it needs to be to work around this cleanly.
Activity
omlins commentedon Sep 22, 2025
Thanks for opening this issue; this is a community scripting project, so a PR is most welcome!
Making the temporary directory configurable is straightforward: you can add a third keyword argument
tmp=...and use this value if it is set. If the keyword argument is not set, it can use the old logic to choose the temp directory. There should not be required any change beyond these few lines: https://github.com/JuliaParallel/JUHPC/blob/main/juhpc#L126-L163(plus the documentation of the new keyword argument in the docs)