/usr/local/bin/ 上的符号链接不起作用

/usr/local/bin/ 上的符号链接不起作用

有人能解释一下为什么这不起作用吗???我不明白。

$ echo $PATH
/usr/sbin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games

正如你所见,我已经/usr/local/bin在那儿了。

然后出现错误:

$ cmake
-bash: cmake: command not found

但我确实有一个符号链接:

$ ls -la /usr/local/bin/
total 8
drwxr-xr-x  2 root root 4096 Mar 27 09:07 .
drwxr-xr-x 10 root root 4096 Jan 23 23:23 ..
lrwxrwxrwx  1 root root   20 Mar 27 09:07 cmake -> /opt/cmake/bin/cmake

事实上,从目录内部运行它是可行的:

cd /usr/local/bin/
./cmake 

有任何想法吗?

当然,如果我编辑我的.bashrc并添加如下一行:

export PATH="/opt/cmake/bin:$PATH"

然后它就起作用了。但这不是我想要的。

谢谢!

答案1

原因可能有多种,您可以按照以下步骤进行检查:

  1. 使用此命令检查symlink目标是否可执行,ls -la /opt/cmake/bin/cmake如果不能,请授予适当的权限 sudo chmod +x /opt/cmake/bin/cmake
  2. cmake您的变量中列出的目录中可能有另一个可执行文件PATH,请检查是否执行此操作which -a cmake
  3. 检查是否存在单个错误PATH变量,例如多余的空格。
  4. 验证符号链接指向readlink -f /opt/cmake/bin/cmake
  5. 检查 /opt/cmake/bin 是否在你的 PATH 变量中
  6. 检查 /opt/cmake/bin 是否损坏
  7. 在其他 shell 中检查

相关内容