我已经在 Ubuntu 服务器上安装了 rbenv。我可以 cd 进入我的应用程序目录并$ bundle
毫无问题地运行,但是我需要运行$ sudo bundle exec ...
,这给我一个错误:
捆绑包:找不到命令
为什么会这样,我该如何解决?
我已经在 Ubuntu 服务器上安装了 rbenv。我可以 cd 进入我的应用程序目录并$ bundle
毫无问题地运行,但是我需要运行$ sudo bundle exec ...
,这给我一个错误:
捆绑包:找不到命令
为什么会这样,我该如何解决?
不完全确定,但也许这对你有用:
sudo -i -u $USER bundle exec...
或者
sudo -i -u username_with_correct_env bundle exec...
Dan Carley 的rbenv-sudo看起来会做你想做的事:
rbenv-sudo 是一个用于 rbenv 的插件,它允许您在 sudo 会话中运行 rbenv 提供的 Rubies 和 Gems。
本文提供了有关其工作原理的更详细说明:Sudo Rbenv Me a Sandwich
您收到错误的原因已经得到解决。但我能够通过说:
sudo /full/path/to/bundle exec ...
就我而言,我使用的是 rbenv,所以我必须:
sudo /home/renier/.rbenv/shims/bundle exec ...
那行得通。要让 sudo 不要求输入密码,您需要为此配置/etc/sudoers
文件。请参阅https://serverfault.com/a/160587。
要在不使用 rbenv 或 rvm 的情况下执行此操作,请执行以下操作:
sudo -E bundle exec ...
-E The -E (preserve environment) option will override the env_reset option in sudoers(5). It is only available when either the matching command has the SETENV tag or the setenv option is set in sudoers(5). sudo will return an error if the -E option is specified and the user does not have permission to preserve the environment.