很抱歉,如果这是重复的,我已经看到了一些关于bundler和git的问题但是没有完全明白。
我在github上分叉了一个宝石 - 我的叉子是https://github.com/toastkid/contentapi-ruby
在我的Gemfile中,我更改了gem行以使用:git选项,指向我的新fork:
gem "guardian-content", :git => "git://github.com/toastkid/contentapi-ruby.git"
然后我做了
bundle update guardian-content
,它说
Using guardian-content (0.2.2) from git://github.com/toastkid/contentapi-ruby.git (at master)
我认为这意味着我现在已经安装了宝石,但我不知道:它不在gem list
,我不能在红宝石中使用宝石控制台。
我读到github不再进行gem托管了。我不是百分之百的实际意义(宝石托管而不是托管宝石的源代码?)。所以,我将我的叉子克隆到我的机器上,并在那里构建它。然后,我更改了Gemfile中的行以指向包含gemspec文件的本地文件夹:
gem "guardian-content", :path => './gems/contentapi-ruby'
然后我做了
bundle update guardian-content
Using guardian-content (0.2.2) from source at ./gems/contentapi-ruby
gem list
中仍然没有监护人内容宝石,仍然无法满足要求。
有人能让我直截了当吗?如何在捆绑安装中使用我的分叉(理想)或本地构建(如果需要)gem?我将把它部署到我的服务器上,所以需要让它以可靠的方式运行。
谢谢,最大
答案 0 :(得分:3)
在Bundler中使用来自git(或来自本地文件系统:带路径)的gems不会将它们安装到您的GEM_HOME中,因此它们不能以通常的方式提供给RubyGems,但它确实使它们可用于Bundler只要他们在Gemfile中。
如果要在irb中包含gem,请确保Gemfile和Gemfile.lock位于当前目录中并且(在irb中)执行此操作:
require `bundler/setup'
require 'guardian-content'
根据您的Ruby / RubyGems版本(以及您的$ RUBYOPT),您可能必须require 'rubygems'
才能require 'bundler/setup'