2010-09-30 64 views
3

所以當你有捆綁者從github安裝一個gem時,它並不是實際上是得到安裝,是嗎? gem list將不會列出這些寶石。Bundler和github上的寶石

這使我想到了我的難題:我正在研究一個腳本,希望使用其中一個實際上並未安裝的寶石。怎麼辦?我可以手動檢查github repo並構建/安裝gem,但現在我已經有一個版本由bundler管理,另一個版本不是。我可以將腳本指向〜/ .rvm中的gem目錄,但在開始生產時這不是一個好主意。

我試圖找到一個捆綁器命令,將使任何寶石從github「註冊」與rubygems,但沒有到目前爲止。有什麼建議麼?

+2

你嘗試打字「 bundle show agemthatdoesntshowingemlist「(用gem列表中沒有顯示的gem替換agemthatdoesntshowingemlist) – hellvinz 2010-09-30 17:34:55

+0

當然,它列出它在'〜/ .rvm/gems'中的位置,但它顯然沒有被rubygems」註冊「因爲'require'hiddengem''不起作用:'LoadError:no file to load - hiddengem'。就像我說的那樣,我可能需要完整的gem路徑,而且我的腳本在我的本地系統上工作得很好,但是如果我把代碼放在其他地方,它會在各處破壞。 – 2010-09-30 17:48:06

回答

2

諷刺的是,這是相同的答案前一個問題我有,我回答自己與此相同的解決方案(雖然它是捆綁0.9略有不同):

require 'rubygems' 
require 'bundler/setup' 
require 'hiddengem' 

bundler/setup使得打捆「堆棧「就像他們經常安裝寶石一樣。遲早我會記住這一點。 :)

0

rubygems-bundler是解決此問題的寶石。如果它安裝在你的系統上,你的項目中不需要額外的代碼。它可能需要安裝爲@global,因此,要總結這一切:

$ rvm use @global 
$ gem install rubygems-bundler 

,然後要回了RVM版本你使用:

$ rvm use @