使用sudo执行命令提示command not found

发表时间
评论 没有

使用sudo bundle install的时候,提示command not found,但是直接使用bundle install会导致权限问题:

$ sudo bundle install
sudo: bundle: command not found
$ bundle install
Following files may not be writable, so sudo is needed:
  /usr/bin
  /usr/share/gems
  /usr/share/gems/build_info
  /usr/share/gems/cache
  /usr/share/gems/doc
  /usr/share/gems/extensions
  /usr/share/gems/gems
  /usr/share/gems/specifications
  ……

这种情况应该是环境变量导致的,使用 env |grep PATH 和 sudo env |grep PATH 发现两者变量值不一样

$ sudo env |grep PATH
PATH=/root/.rbenv/bin:/root/.rbenv/shims:/root/.rbenv/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin/bundler:/root/bin
$ env |grep PATH
PATH=/home/opc/.local/bin:/home/opc/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

解决办法:

使用 sudo vim /etc/sudoers 打开文件修改env_reset参数,然后 :wq! 退出


  
接着修改.bashrc文件,使用vim ~/.bashrc打开,加上 alias sudo=‘sudo env PATH=$PATH’ ,然后 :wq 退出,使用 source ~/.bashrc 重新加载

作者
分类 电脑网络, 电脑网络

评论

本文评论功能已关闭。

← 较早的 较新的 →

相关文章