2011-03-24 58 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