2011-03-24 85 views
4

我寫了幾個寶石,我已經發布到rubygems使用Gemcutter和源存儲在github上。創建一個寶石服務器,我可以發佈寶石

我有一個問題,我需要創建一個不能開源的gem,也不可用於社區,但僅限於我的團隊成員。

我知道我可以在本地存儲的寶石,在我的Gemfile瞄準他們,但是我希望能夠做到

rake version:bump 
rake release 

或相似。這會碰撞版本,並將其推送到我的寶石服務器,並仍然保留舊的寶石,以便人們可以安裝它的舊版本。

似乎它應該是相當簡單的事情。我只是想念如何去做

回答

3

這是相當簡單的,如果你有一臺服務器,你可以承載你的私人寶石。設置一個子域,如gems.companyname.com,並設置虛擬主機來託管您的域。你會將虛擬主機指向一個文件夾,就像任何網站一樣,並從那裏設置寶石服務器。

實施例:

mkdir /var/www/gemserver 
mkdir /var/www/gemserver/gems 
cp private-gem-0.1.0.gem /var/www/gemserver/gems 
cd /var/www/gemserver 
gem generate_index 

/var/www/gemserver將是根目錄。最後所有你需要做的就是添加一個新的源到您的Gemfile

source 'http://rubygems.org' 
source 'http://gems.companyname.com' 

所以任何人都知道您的自定義域名可以訪問的寶石。唯一的麻煩是每次重建寶石時,需要在將寶石上傳到寶石文件夾後再次運行generate_index命令。

+0

謝謝。但它不是很自動化。有沒有辦法讓這個自動化或我需要編寫自定義耙任務/掛鉤等? – Yule 2011-03-25 07:33:56

+0

你必須編寫你自己的rake任務/鉤子,這也相當簡單!只需要命令''scp filename-0.0.1.gem [email protected]:/ var/www/gemserver/gems''然後登錄並運行命令,這裏有很多選項。 – Garrett 2011-03-25 21:34:43