2014-03-28 65 views
0

我需要安裝gem表單git倉庫。存儲庫包含.gemspec文件。在我的寶石文件我有以下代碼:我該如何從git倉庫安裝Gems?

gem 'echo_server', :git => 'http://127.0.0.1/org/echo_server.git' 

當我運行捆綁安裝的寶石在.bundeler安裝和gem list不顯示。

我的問題是: 如何在系統中使用寶石,以便我可以在require中使用?

還有一些類似的SOQ,但它並沒有幫助我。

+0

只有'echo-server'gem沒有顯示在寶石名單或其他人? –

+0

從紅寶石寶石中安裝的其他寶石正在顯示。 – suvankar

回答

2

當您鍵入gem list時,它不會顯示,因爲它不像常規寶石一樣安裝。你可以像require那樣,因爲Bundler知道它並且會爲你設置它。你應該看到它在你的$LOAD_PATH

$LOAD_PATH.grep(/nameofgem/) 

查看此Bundler documentation以獲取更多信息。

如果您想將其作爲Git存儲庫中的常規gem安裝,則可以克隆存儲庫,然後構建並安裝生成的gem。例如:

gem build echo_server.gemspec 
gem install echo_server-X.Y.Z.gem 

還有specific_install

+0

是的,如果我使用'gem bild'然後'捆綁安裝',那麼它工作正常。但一些我需要如何使用'bundle install'來自動化它。有什麼辦法可以實現它嗎?在ruby中沒有添加任何東西$ LOAD_PATH – suvankar

+1

據我所知,Bundler不能用來從Git倉庫安裝gem到像gem install這樣的gem路徑。你可以看到Bundler在'bundle show echo_server'安裝gem的地方。我還更新了我的答案,以鏈接到[specific_install](https://github.com/rdp/specific_install)。 – blom

+0

如果我做'捆綁安裝'gem安裝在$ BUNDLER_PATH中。我怎麼能在irb中使用它? irb> require'echo_server'#=> LoadError:無法加載此文件。因爲irb在紅寶石家中尋找它,但捆綁商將它安裝在家中。 – suvankar