2012-04-24 92 views
1

因此,读http://git-scm.com/book/en/v1/Git-on-the-Server-Public-Access,我试图设置一个简单的http服务器(没有git守护进程,我需要一个?)指示裸回购。捆绑器可以从一个裸git回购安装宝石?

我的gem在根目录中有一个gemname.gemspec,并且都很好。

在使用Gemfile中有:

gem 'gemname', :git => 'http://path' 

确定,然后

> bundle install 
... 
Installing blah... 
Using gemname (1.0.0) from source at 'http://path' 
... 

和一切似乎都很好,直到我列出了宝石和 'gemname' 是不存在的。要求也失败。

那么,计划#2:因为我们镜像服务器的路径,我想我会用一个直接的路径宝石不混帐回购协议:

gem 'gemname', :path => 'path/to_gemname' 

再次,打捆说OK。

Using gemname (1.0.0) from source at 'path/to_gemname' 

但是,再次,不安装它或从应用程序内正确引用它。

关于这应该如何工作的任何想法(即适当的目录布局等),还是我需要一个真正的git/gem服务器来做到这一点?

谢谢!

回答

2

您首先需要使用Bundler.setup

require "rubygems" 
require "bundler/setup" 

require "gemname" 

# use gemname 

您可能还会感兴趣拨打Bundler.require。这将需要Gemfile中的所有宝石自动。无需为每个使用的宝石拨打require "gem name"

require "rubygems" 
require "bundler/setup" 

Bundler.require 

# use any gem in Gemfile 

也有看看这个类似的答案,它提供了上面的代码更复杂的版本:Bundler isn't loading gems

您可以检查,如果一切通过在命令行窗口中输入bundle list工作。你应该看到如下所示的内容。

$ bundle list 
Gems included by the bundle: 
    * bundler (1.1.3) 
    * some_dependency (0.0.1) 
    * gemname (1.2.3 <git-sha-hash>) 
+0

哦,很好,工作!谢谢!哦!现在我明白了...... doh!它正好在Bundler页面上,但我已经习惯了Rails为我做这一点...不用说这不是一个rails应用程序,所以我必须手动完成。谢谢! (doh!) – 2012-04-24 17:39:15

+0

我也有很多这些时刻:)例如,我花了很长时间弄清楚为什么5.days.from.now没有工作,当我第一次使用轨道应用程序以外的时间类... – 2012-04-24 19:08:46

相关问题