Почему моя символическая ссылка на / usr / local / bin не работает?

Я установил Юлию локально, распаковав ее в папку. Затем я попытался добавить исполняемый файл в / usr / local / bin , так как я не хочу изменять $ PATH .

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

Если я сейчас выполню Julia в новой оболочке В окне появляется следующее сообщение:

$ 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

Очевидно, что символическая ссылка существует, но моя оболочка сообщает мне, что команда не найдена. В чем проблема?

4
задан 1 January 2021 в 12:35

1 ответ

Решение довольно простое. Используйте здесь абсолютную символическую ссылку, чтобы первым аргументом ln -s был полный путь.

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

Теперь открывается правильно и работает как положено.

Второе и более сложное решение — использовать относительную символическую ссылку. Однако это должно быть относительно папки, в которой будет создана символическая ссылка. Таким образом, начиная с /usr/local/bin, нужно переместиться на три папки вверх, чтобы оказаться в /, а затем спуститься в соответствующую папку.

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

Обновление: Комментарий ниже правильно, и я соответствующим образом отредактировал ответ. Относительные симлинки — это хорошо и существуют по уважительным причинам, однако здесь они не имеют никакого смысла, так как сильно усложняют путь.

11
ответ дан 1 January 2021 в 09:35

Другие вопросы по тегам:

Похожие вопросы: