4

I installed Julia locally by unpacking it into a folder. Then I tried to add the executable to /usr/local/bin since I don't want to modify the $PATH.

sudo ln -s bin/julia-1.5.3/bin/julia /usr/local/bin/julia

If I now execute Julia in a new shell window the following message pops up:

$ julia
zsh: command not found: julia

$ ls -l /usr/local/bin/
total 12
lrwxrwxrwx 1 root root 25 Jan  1 10:08 julia -> bin/julia-1.5.3/bin/julia

So obviously the symlink exists nevertheless my shell tells me the command was not found. What is the problem here?

2
  • 3
    The symlink does indeed exist, but the question is, does the file that it points to exist? I.e. are you 100% sure that there actually exists an executable file at /usr/local/bin/bin/julia-1.5.3/bin/julia? – Jörg W Mittag Jan 1 at 20:46
  • There is information missing I guess. I executed this in my home folder so the folder is at $HOME/bin/julia. Executing this command with the working directory in home leads to the described error. I used bash completetion for the paths so I am 100% sure they were correct when I called ln. – matt3o Jan 2 at 18:05
11

The solution is rather simple. Use an absolute symlink here such that the first argument of ln -s is a full path instead.

sudo ln -s /home/user/bin/julia-1.5.3/bin/julia /usr/local/bin/julia

Now it opens correctly and executes as expected.

The second and more complex solution is to use a relative symlink. However it has to be relative to the folder where the symlink will be created. Thus starting at /usr/local/bin one has to move up three folders to be at / and then descend into the appropriate folder.

sudo ln -s ../../../home/user/bin/julia-1.5.3/bin/julia /usr/local/bin/julia

Update: The comment below is correct and I edited the answer accordingly. Relative symlinks are fine and exist for good reasons however here they don't make any sense since they complicate the path a lot.

2
  • 13
    It doesn't always have to be absolute, it's just the reasonable thing to do in this case. Relative symlinks have their uses, or they wouldn't exist in the first place. – hobbs Jan 1 at 17:50
  • Good comment! I just now tried to understand how a solution with a relative symlink would look like and upated the answer. – matt3o Jan 3 at 11:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.