我已经安装了exa
viacargo
并将路径添加到我的~/.bashrc
文件:PATH=/root/.cargo/bin:$PATH
按照安装后说明:
警告:请务必添加
/root/.cargo/bin
到您的 PATH 以便能够运行已安装的二进制文件
尽管如此,当我尝试跑步时,exa
我遇到了
Command 'exa' not found, did you mean:
...
...
...
当我跑步时printenv PATH
,/root/.cargo/bin
出现在结尾PATH 的路径,尽管我在一开始就添加了它。
当我运行时sudo /root/.cargo/bin/exa
,该命令运行良好。是什么导致了这个/我怎样才能让它正常运行?
答案1
您需要执行以下操作之一:
1.
source ~/.bashrc
2.
. ~/.bashrc
- 注销并重新登录。
答案2
如果获取路径不起作用,则可能是权限问题。该sudo
版本使用不同的PATH
变量,因为您以 root 身份运行,因此虽然权限不是问题,但您在路径中找不到二进制文件。
对于要“遍历”(我不确定这是什么技术术语)目录的用户,他们需要对该目录具有“执行”权限。在列出目录内容时,它会在第 3 个位置显示为 X。所以当我运行时,sudo ls -lash /root
一些结果如下所示:
4.0K drwx------ 10 root root 4.0K Feb 3 2020 .
4.0K drwxr-xr-x 24 root root 4.0K May 28 16:27 ..
第二组字母和破折号是权限。前导d
表示它是一个目录,接下来的三个字母(rwx
)是文件所有者的读、写和执行权限。接下来的三个(---
在 的情况下.
是/root
,r-x
在 的情况下..
是/
)用于与文件关联的“组”。最后一组是给其他人的。
如果您的权限与我的权限类似,则整个根文件夹只能由 root 用户读取、写入和传递。虽然您可能可以通过添加执行来解决这个问题,但/root
弄乱sudo chmod +x /root
根目录/帐户的权限通常是一个坏主意,并且使用单个命令而不是组或其他管理工具来执行此操作尤其是坏主意。
相反,您可能想做的是寻找一种为所有用户安装二进制文件的方法。可能有一个安装方法,通常是这样的:
sudo make install
但你可以查看文档,他们可能会做其他事情。