使用带有RVM的git gems的“bundle install”时,'gem list'找不到宝石

时间:2012-06-28 22:57:33

标签: ruby git gem rvm bundler

我目前正在尝试运行'bundle install'来使用Gemfile安装基于git的gem,因此使用ruby / other ruby​​命令而不使用最新版本的RVM(1.14.3)。

我认为问题的原因是捆绑器正在将git gem安装到.rvm / gems / ruby​​-1.9.3-p194 @ something / bundler / gems中,而所有其他宝石都安装到.rvm / gems / ruby​​中-1.9.3-p194@something/gems。因此,“捆绑列表”显示了宝石,但“宝石列表”没有。

有什么想法吗?我真的不想使用bundle来执行所有操作。

1 个答案:

答案 0 :(得分:6)

Bundler用于将gem与应用程序捆绑在一起。将它用于系统宝石是没有意义的。不幸的是,非捆绑宝石系统没有提供安装基于git的宝石的直接方法(我之前实际上问过这个问题,请参阅Is it possible to directly install a gem from a git repository?)。相反,您必须分三步手动完成:

  1. 克隆gem repo(这假设是一个github存储库,但它适用于托管在任何地方的存储库,只需替换正确的git repo位置)。

    git clone git://github.com/user/gem.git
    
  2. 转到克隆的gem repo目录并构建gem(这也将检查依赖关系并在安装因缺少依赖关系而失败时发出警告 - 在这种情况下只需安装依赖项并再试一次)。

    rake gem
    

    如果那不起作用:

    gem build gem.gemspec
    
  3. 这应该创建一个名为pkg/gem-1.2.3.gem的文件(有时它会像{my}}目录一样构建在这个目录中,有时会在gem repo根目录下构建。您现在可以安装它。

    pkg