【问题标题】:"/usr/bin/env ruby" defaults to Ruby 1.8 when RVM is clearly installed and in the environment当 RVM 明确安装并在环境中时,“/usr/bin/env ruby​​”默认为 Ruby 1.8
【发布时间】:2012-10-04 18:32:21
【问题描述】:

我在构建脚本以通过 Boxcar 发送通知时遇到问题。该脚本在顶部设置了#!/usr/bin/env ruby,但是当 SABnzb 触发后处理脚本时,它会出现以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require': no such file to load -- boxcar_api (LoadError) from
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require' from /Applications/Sick-Beard/autoProcessTV/sabnzb-notification.rb:4

此外,当我从终端运行脚本时,它执行得很好。仅当 SABnzb 在后处理中执行时。

如果我运行 which ruby、ruby -v 和 /usr/bin/env ruby -v,它们都会输出正确版本的 Ruby。

$ which ruby
/Users/ericc/.rvm/rubies/ruby-1.9.3-p286/bin/ruby
$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0]
$ /usr/bin/env ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin12.2.0]
$ rvm -v
rvm 1.16.13 (master) by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]

~/.bash_profile

export PATH="/usr/local/bin:/usr/local/sbin:~/bin:$PATH"
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

有人知道为什么要加载 Ruby 1.8 而不是 RVM?

【问题讨论】:

    标签: ruby rvm osx-mountain-lion


    【解决方案1】:

    SABnzb 在不知道您的 rvm 安装的环境中启动。有几种方法可以解决这个问题:

    1. 明确说明脚本正在调用的 ruby​​。 (即,将 shebang 更改为 #!/Users/ericc/.rvm/rubies/ruby-1.9.3-p286/bin/ruby)
    2. 在调用脚本之前编写一个设置环境的包装器 shell 脚本。让 SABnzb 先调用包装脚本。
    3. 编辑启动 SABnzb 的初始化脚本并将 rvm 环境添加到其中。仅当 SABnzb 以安装 rvm 的用户身份启动时才有效。
    4. 如果 SABnzb 以与 rvm 安装不同的用户身份运行,则全局安装 rvm 或以运行 SABnzb 的同一用户身份安装,然后编辑 SABnzb 初始化脚本以使用 rvm 环境设置脚本。

    【讨论】:

      【解决方案2】:

      rvm use ruby-1.9.3-p286 --default 适合你吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-02-21
        • 2013-03-11
        相关资源
        最近更新 更多