所以,阅读http://git-scm.com/book/en/v1/Git-on-the-Server-Public-Access,我正试图按照简单的http服务器上的指示设置一个裸仓库(没有git-daemon,我需要一个吗?)。
我的gem在root中有一个gemname.gemspec,似乎都很好。
使用Gemfile:
gem 'gemname', :git => 'http://path'
好的,那么
> bundle install
...
Installing blah...
Using gemname (1.0.0) from source at 'http://path'
...
一切似乎都很好,直到我列出宝石并且'gemname'不在那里。要求也失败。
那么,计划#2:因为我们将服务器镜像为路径,我想我将使用直接路径到没有git repo的gem:
gem 'gemname', :path => 'path/to_gemname'
再次,捆绑者说好了。
Using gemname (1.0.0) from source at 'path/to_gemname'
但同样,不会在应用程序中安装或正确引用它。
关于它应该如何工作的任何想法(即正确的目录布局等)或者我需要一个真正的git / gem服务器来做这个吗?
谢谢!
答案 0 :(得分:2)
您需要先使用Bundler.setup
。
require "rubygems"
require "bundler/setup"
require "gemname"
# use gemname
您可能还会发现调用Bundler.require
很有用。这将自动地要求Gemfile中的所有gem。无需为您使用的每个宝石调用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>)