2010-01-07 93 views
1

我正在託管一個紅寶石寶石庫,它爲我的應用程序託管了幾個我的寶石。當我嘗試安裝一個與rubyforge上的寶石同名的寶石時,我遇到了一些問題。安裝紅寶石時名稱衝突

gem.config

--- 
:benchmark: false 
:update_sources: true 
:verbose: true 
:backtrace: false 
:sources: 
- http://gems.rubyforge.org 
- http://localhost:8888 
:bulk_threshold: 1000 

使用命令來安裝mygem:

gem install mygem --config-file gem.config 

這將安裝從http://gems.rubyforge.org庫中的 'mygem'。當我重新排列gem.config文件中的源代碼時,我得到了相同的結果。

如果找不到gem,有沒有辦法將我的gem存儲庫定義爲默認值並回退到另一個存儲庫?

回答

3

寶石名稱必須是全球唯一的。如果有多個同名的寶石,結果是未定義的。

+0

當您必須從公共存儲庫(gemcutter.org)和本地存儲庫安裝gems時,是否知道任何最佳實踐?在我的寶石名稱(例如:myuniquenamespace-mygem)之前添加一個唯一的名稱或將所有必需的寶石存儲在本地存儲庫中,並且永遠不必從公共存儲庫進行安裝? – Trevor 2010-01-11 13:12:29

0

如果寶石倉庫是當地的,你可以使用寶石命令--local選項:

gem install mygem --local --config-file gem.config 

而且我相信如果你將你的源順序(localhost指定第一)創業板將嘗試該倉庫首先(並拿起寶石,你有同名的rubygems存儲庫)

+0

存儲庫現在是本地存儲,但最終將託管在另一臺計算機上。另外,我嘗試重新排序源代碼並得到相同的結果。 – Trevor 2010-01-07 20:08:31