Как вызвать chruby из сценария ruby - PullRequest
0 голосов
/ 04 октября 2018

Я пишу скрипт 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 Ответ

0 голосов
/ 05 октября 2018

После более глубокого изучения выясняется, что 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...