1

因此,阅读http://git-scm.com/book/en/v1/Git-on-the-Server-Public-Access,我正在尝试按照简单 http 服务器上的说明设置一个裸仓库(没有 git -daemon,我需要一个吗?)。

我的 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:由于我们将服务器镜像为路径,我想我将使用没有 git repo 的 gem 的直接路径:

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

再次,捆绑器说好的。

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

但同样,没有安装它或从应用程序中正确引用它。

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

谢谢!

4

1 回答 1

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 is not 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>)
于 2012-04-24T17:15:53.817 回答