Мой контекст:
sudo ./runner
Rails требует RubyGems> = 1.3.2. Пожалуйста, установите RubyGems и попробуйте еще раз: http://rubygems.rubyforge.org
(потому что sudo имеет ограниченный PATH)
sudo PATH = $ PATH ./runner: работает правильно, так как runner снова имеет / usr / local / bin в своем PATH
Вопрос:
Есть ли другие альтернативы (возможно, более элегантные - с минимальными изменениями) для запуска runner с sudo, когда gem не находится в / bin или / usr / bin?
Те, о которых я думаю (но не удовлетворен):
Может быть, есть способ с файлом конфигурации или аргументом командной строки для runner?
Вы должны уметь использовать env_file
вариант в sudoers
и поместите свой путь в файл, на который он указывает. Что-то вроде:
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
Вы также можете найти env_keep
вариант полезный.
Взгляни на sudo sudo -V | less
и посмотрите, расскажет ли он вам что-нибудь интересное. В частности, ищите слова "path" или "ruby" без учета регистра.