有人能解释一下为什么这不起作用吗???我不明白。
$ 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
原因可能有多种,您可以按照以下步骤进行检查:
- 使用此命令检查
symlink
目标是否可执行,ls -la /opt/cmake/bin/cmake
如果不能,请授予适当的权限 sudochmod +x /opt/cmake/bin/cmake
。 cmake
您的变量中列出的目录中可能有另一个可执行文件PATH
,请检查是否执行此操作which -a cmake
。- 检查是否存在单个错误
PATH
变量,例如多余的空格。 - 验证符号链接指向
readlink -f /opt/cmake/bin/cmake
- 检查 /opt/cmake/bin 是否在你的 PATH 变量中
- 检查 /opt/cmake/bin 是否损坏
- 在其他 shell 中检查