我是Linux的新手。目前,我正在使用Ubuntu 18.04 LTS。其实我有问题。我使用rbenv安装了Ruby。当我运行诸如rbenv install 2.6.3
和gem install bundler
之类的命令时。我没有像sudo
和sudo rbenv install 2.6.3
那样使用sudo gem install bundler
。
现在的问题是,当我在/var/www/mydirectory/code
的{{1}}中运行命令时。然后我得到以下输出
bundle install --deployment --without development production
如果我执行There was an error while trying to write to `/var/www/mydirectory/code/.bundle/config`. It is likely that you need to grant write permissions for that path.
,则会得到以下输出结果
sudo bundle install --deployment --without development production
对于命令sudo: bundle: command not found
。我得到以下输出
which bundle
现在,如果我键入命令/home/NHLSAdmin/.rbenv/shims/bundle
。然后我得到以下输出
echo 'echo $PATH' | sh
如果我键入命令/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
。然后我得到以下输出
echo 'echo $PATH' | sudo sh
如我所见,对于sudo而言,该路径不包含/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
,/home/NHLSAdmin/.rbenv/shims/bundle
之类的目录。这就是/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin
无法找到它的原因。
现在,我想使这些变量可用于sudo。实际上,我将使用一些自动化工具来运行命令并使用ruby。所以我也想将这些变量也用于sudo。
现在我做了一些研究,发现的一个解决方案是
1)通过运行命令sudo
修改/etc/sudoers
,并通过添加目录来编辑sudo visudo
2)在secure_path
的末尾添加alias sudo='sudo env PATH=$PATH'
主要我想将/root/.bashrc
,/home/NHLSAdmin/.rbenv/shims/bundle
这些目录添加到我的sudo路径中。因此,当我运行/home/NHLSAdmin/.rbenv/plugins/ruby-build/bin:/home/NHLSAdmin/.rbenv/shims:/home/NHLSAdmin/.rbenv/bin
时,它就会运行。
哪个更好,还有其他方法可以实现我想要的目标。或者我可以使用sodu rbenv install 2.6.3等再次重复相同过程的整个安装过程。
谢谢