【问题标题】:Gem installed, but not found by Ruby?已安装 Gem,但 Ruby 找不到?
【发布时间】:2013-03-15 11:43:59
【问题描述】:

我有以下 Capistrano sn-p:

namespace :bundle do
    task :install do
        run "gem list && bundle -v"
    end
end

当我跑步时

cap bundle:install

我得到以下输出:

 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] *** LOCAL GEMS ***
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] bundler (1.3.4)
 ** [out :: ....compute-1.amazonaws.com] rake (10.0.3)
 ** [out :: ....compute-1.amazonaws.com] rubygems-bundler (1.1.1)
 ** [out :: ....compute-1.amazonaws.com] rvm (1.11.3.6)
 ** [out :: ....compute-1.amazonaws.com]
 ** [out :: ....compute-1.amazonaws.com] ERROR: Gem bundler is not installed, run `gem install bundler` first.

gem 显示 bundler 已安装,但是当我尝试运行 bundle -v 时,我得到一个矛盾的错误,说它不是?我不明白为什么?

我尝试的另一件事是通过终端登录服务器,当我在那里运行 bundle -v 时,它工作正常吗?

有什么想法吗?

【问题讨论】:

  • 问题是我的.rvm路径没有定义,不知道.rvm路径是在哪里定义的。

标签: bash ssh capistrano


【解决方案1】:

你使用rvm-capistrano gem吗?它会为你加载 RVM。

【讨论】:

  • 根本不使用 rvm-capistrano。我编写了一个 bash 脚本,用于检查 rvm 版本、安装我的 rubies、gemset 并进行捆绑安装等。
【解决方案2】:

我设法通过添加一些环境变量使我的脚本正常工作:

set :default_environment, {
    :PATH => "/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset/bin:" +
        "/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@global/bin:" +
        "/home/ubuntu/.rvm/rubies/ruby-1.9.2-p320/bin:" +
        "/home/ubuntu/.rvm/bin:" +
        "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
    :RUBY_VERSION => 'ruby-1.9.2-p320',
    :GEM_HOME => '/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset',
    :GEM_PATH => '/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@my_gemset:/home/ubuntu/.rvm/gems/ruby-1.9.2-p320@global'
}

【讨论】:

    猜你喜欢
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-03
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多