如何从 ruby 脚本调用 chruby
How to call chruby from a ruby script
我正在为 bootstrap 一台新的 macbook 计算机编写 ruby 脚本。我通过自制软件安装了 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
输出。
有人知道我做错了什么吗?
深入研究后,发现 chruby
不是正确的二进制文件,而是通过调用 source /usr/local/share/chruby/chruby.sh
添加到环境中的 bash 函数。我 运行 运行 echo $SHELL
在 ruby 控制台中进行了快速测试,它确实显示它正在使用我的 zsh shell,所以不确定为什么完整未加载配置。无论如何,我通过这样做让它工作
def successful_function
`source /usr/local/share/chruby/chruby.sh && chruby`
end
successful_function
我正在为 bootstrap 一台新的 macbook 计算机编写 ruby 脚本。我通过自制软件安装了 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
输出。
有人知道我做错了什么吗?
深入研究后,发现 chruby
不是正确的二进制文件,而是通过调用 source /usr/local/share/chruby/chruby.sh
添加到环境中的 bash 函数。我 运行 运行 echo $SHELL
在 ruby 控制台中进行了快速测试,它确实显示它正在使用我的 zsh shell,所以不确定为什么完整未加载配置。无论如何,我通过这样做让它工作
def successful_function
`source /usr/local/share/chruby/chruby.sh && chruby`
end
successful_function