我的背景:
sudo ./runner
Rails需要RubyGems> = 1.3.2。 请安装RubyGems并重试: http : //rubygems.rubyforge.org
(因为sudo有一个有限的PATH)
sudo PATH = $ PATH ./runner:运行正常,因为runner在PATH中有/ usr / local / bin
题:
有没有其他的select(可能更优雅 – 以最小的变化)启动与sudo亚军,当gem不在/斌或/ usr /斌?
那些我想到的(但不满意):
也许有一个configuration文件或一个命令行参数运行的方式?
您应该能够在sudoers使用env_file选项,并将您的path指定放在它指向的文件中。 就像是:
sudoers :
Cmnd_Alias RUBY = /path/to/runner Defaults!RUBY env_file=/path/to/rubypathfile ALL ALL=(ALL) RUBY
/path/to/rubypathfile :
PATH=/usr/local/bin:/usr/bin:/bin
你也可以find有用的env_keep选项。
看看sudo sudo -V | less sudo sudo -V | less看,看它是否告诉你任何有趣的事情。 特别是对“path”或“ruby”进行不区分大小写的search。