![arm linux gcc 编译.. .bashrc 中的导出路径不适用于 sudo,但适用于 su](https://linux22.com/image/1126042/arm%20linux%20gcc%20%E7%BC%96%E8%AF%91..%20.bashrc%20%E4%B8%AD%E7%9A%84%E5%AF%BC%E5%87%BA%E8%B7%AF%E5%BE%84%E4%B8%8D%E9%80%82%E7%94%A8%E4%BA%8E%20sudo%EF%BC%8C%E4%BD%86%E9%80%82%E7%94%A8%E4%BA%8E%20su.png)
我是一个使用了 1 周的 Linux 用户。
我已经添加
export PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin
用于.bashrc
friendlyarm项目,效果很好。arm-linux-gcc -v
命令显示了详细信息。
当我使用make modules
linux-2.6.38 源文件夹中的命令进行编译时,出现“权限被拒绝”错误。所以我使用sudo make modules
但它不识别arm-linux-gcc
它说:
make: arm-linux-gcc: Command not found
因此我必须使用su
并以 root 身份使用make modules
,一切正常。
为什么当我使用 sudo 时它无法识别我添加到 .bashrc 的路径?这是正常的吗?
答案1
使用sudo -E
而不是sudo
来保存修改的PATH
。否则PATH
不会保存,因此arm-linux-gcc
无法找到(请参阅 了解man sudo
详细信息和可能的永久修复)。
如果那不起作用,请尝试sudo env PATH=/path/to/gcc:$PATH make target
。