4

我目前正在尝试运行“捆绑安装”以使用 Gemfile 安装基于 git 的 gem,因此使用最新版本的 RVM(1.14.3)在没有捆绑器的情况下使用 ruby​​/其他 ruby​​ 命令。

我相信问题的原因是捆绑器正在将 git gem 安装到 .rvm/gems/ruby-1.9.3-p194@something/bundler/gems 中,而所有其他 gem 安装到 .rvm/gems/ruby-1.9 中。 3-p194@something/gems。结果,'bundle list' 会显示 gem 而 'gem list' 不会。

这里有什么想法吗?我真的不想使用 bundle 来执行一切。

4

1 回答 1

6

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

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

    git clone git://github.com/user/gem.git
    
  2. 转到克隆的 gem 存储库目录并构建 gem(这还将检查依赖项并在安装因缺少依赖项而失败时发出警告——在这种情况下,只需安装依赖项并重试)。

    rake gem
    

    或者,如果这不起作用:

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

    gem install pkg/gem-1.2.3.gem
    
于 2012-06-28T23:05:11.740 回答