2012-04-24 91 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

相關問題