Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

was: mktemp: failed to create directory via template ‘/local/tmp/tmp.XXXXXXXXXX’: No such file or directory; juliaup: command failed: mktemp -d RHEL 8, now "ERROR: add requires at least one package, ERROR: preferences file is missing or empty." #34

Open
SomePersonSomeWhereInTheWorld opened this issue Jan 17, 2025 · 1 comment

Comments

@SomePersonSomeWhereInTheWorld
Copy link

SomePersonSomeWhereInTheWorld commented Jan 17, 2025

Does juliaup attempt to run a mktemp -d? I'm just setting TMP=/local which has 777 permissions.

./juhpc $JUHPC_SETUP_INSTALLDIR $JULIAUP_INSTALLDIR --verbose=2 


     ██╗  ██╗   ██╗  ██╗  ██╗██████╗  ██████╗
     ██║  ██║   ██║  ██║  ██║██╔══██╗██╔════╝
     ██║  ██║   ██║  ███████║██████╔╝██║     
██╗  ██║  ██║   ██║  ██╔══██║██╔═══╝ ██║     
╚█████╔╝  ╚██████╔╝  ██║  ██║██║     ╚██████╗
 ╚════╝    ╚═════╝   ╚═╝  ╚═╝╚═╝      ╚═════╝


[ JUHPC: Starting installation of HPC setup for juliaup, julia and HPC key packages requiring system libraries...
[ JUHPC: Installing juliaup and julia temporarily in /local/juliaup...
mktemp: failed to create directory via template ‘/local/tmp/tmp.XXXXXXXXXX’: No such file or directory
juliaup: command failed: mktemp -d
[ JUHPC: ERROR: failed to install Juliaup (and Julia) in /local/juliaup.
[ JUHPC: cleaning up temporary juliaup installation in /local/juliaup.

EDIT: Well there was a start up script setting $TMPDIR to/local/tmpwhich does not exist after a reboot. I changed it to /local, which got past this error.

However the script terminates with:

  2 dependencies successfully precompiled in 1 seconds. 3 already precompiled.
ERROR: add requires at least one package
Stacktrace:
 [1] pkgerror(msg::String)
   @ Pkg.Types /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/Types.jl:68
 [2] require_not_empty
   @ /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:140 [inlined]
 [3] add(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, target::Symbol, allow_autoprecomp::Bool, kwargs::@Kwargs{io::IOContext{IO}})
   @ Pkg.API /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:258
 [4] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::IOContext{IO}, kwargs::@Kwargs{})
   @ Pkg.API /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:159
 [5] add(pkgs::Vector{Pkg.Types.PackageSpec})
   @ Pkg.API /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:148
 [6] add(pkgs::Vector{String})
   @ Pkg.API /local/juliaup/depot/juliaup/julia-1.11.2+0.x64.linux.gnu/share/julia/stdlib/v1.11/Pkg/src/API.jl:147
 [7] top-level scope
   @ none:1
[ JUHPC: ERROR: preferences file is missing or empty.
[ JUHPC: cleaning up temporary juliaup installation in /local/juliaup.

I didn't choose a preference nor--postinstallwhich the instructions say is optional.

What do folks do when only a few nodes have a GPU and different versions of OpenMPI or MPICH are loadable modules?

@SomePersonSomeWhereInTheWorld SomePersonSomeWhereInTheWorld changed the title mktemp: failed to create directory via template ‘/local/tmp/tmp.XXXXXXXXXX’: No such file or directory; juliaup: command failed: mktemp -d RHEL 8 was: mktemp: failed to create directory via template ‘/local/tmp/tmp.XXXXXXXXXX’: No such file or directory; juliaup: command failed: mktemp -d RHEL 8, now "ERROR: add requires at least one package, ERROR: preferences file is missing or empty." Jan 21, 2025
@SomePersonSomeWhereInTheWorld
Copy link
Author

OK some observations and perhaps suggestions.:

I kept getting tripped up on the path to HDF5. I'd suggest not hard coding this or at least be more clear in the docs:

julia_pref 'using HDF5; HDF5.API.set_libraries!("$(ENV["JUHPC_HDF5_HOME"])/lib/libhdf5.so", "$(ENV["JUHPC_HDF5_HOME"])/lib/libhdf5_hl.so")'

Many Linux flavors don't have that, or are perhaps lib64.

I'd suggest clarifying this instruction:

preferences for HPC key packages that require system libraries

And be specific on which one(s) are needed and/or provide an example.

The generated activate script is nice but is not very Lmod/module file friendly and if one uses the Lmod-provided sh_to_modulefile script the module file is far from usable. The source-sh option only became available in Lmod 8.6

Here's a partial modulefile I created that appears to be working:

setenv		JULIAUP_DEPOT_PATH	/home/$::env(USER)/juliaup/depot
setenv		JULIA_DEPOT_PATH	/home/$::env(USER)/juliaup/depot
setenv		JULIA_LOAD_PATH		/opt/julia-parallel/julia_preferences
prepend-path	PATH			/home/$::env(USER)/juliaup/bin
prepend-path	PATH			/opt/julia-parallel/juliaup_wrapper

module load openmpi/gcc/64

We may end up adding CUDA but not all nodes have a GPU and we'd need to document the usage.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant