Как вызвать chruby из сценария ruby
Я пишу скрипт ruby, чтобы загрузить новый компьютер MacBook. Я установил chruby
а также ruby-install
через доморощенный. Если я позвоню chruby
из командной строки это работает.
$ chruby
* ruby-2.4.1
Но если я назову это из сценария ruby, то так.
def failing_function
`chruby`
end
failing_function
Я получаю эту ошибку
No such file or directory - chruby (Errno::ENOENT)
В качестве теста я попробовал это
def successful_function
`ruby-install`
end
successful_function
И я получаю такой же вывод для ruby-install
в сценарии, как я делаю из командной строки.
У кого-нибудь есть идеи, что я делаю не так?
1 ответ
После более глубокого изучения выясняется, что chruby
это не правильный двоичный файл, а функция bash, которая добавляется в среду путем вызова source /usr/local/share/chruby/chruby.sh
, Я провел быстрый тест, запустив echo $SHELL
в консоли ruby, и это показывало, что она использует мою оболочку zsh, поэтому не уверен, почему не был загружен полный конфиг. В любом случае, я получил его на работу, сделав это
def successful_function
`source /usr/local/share/chruby/chruby.sh && chruby`
end
successful_function