rubygems.org guides 翻译十二(跑自己的gem server)

There are times you would like to run your own gem server.你或许希望分享你的gem给你的同事,但是又苦于没有网络。你或许私有代码仓库,组织内部网络的需求,你希望 distribute and manage as gems 不需要公开发行。

有几种可选你的方案来设置你的gem服务器在内部网中。这份文档包含 gem server 命令和 Gem in a Box 项目。他也讨论怎样使用这些gem server。

一、运行内建的gem server

当你安装rubygems后,他添加了gem server 命令到你的系统中。这是最简单的启动gem服务器的方式。只需要运行以下命令:

gem server

 

这会工作在你的所有本地安装的gem,主机地址是 http://localhost:8808. 如果你在浏览器中打开这个地址,你会发现 gem server 提供了一份html文档。

当你安装新的gem后,内建的gem server会自动使用它们。

完整的选项请运行:

gem server --help

在其他选项中,你可以更改端口。

 

二、运行gem在box

如果gem服务器需要更多的功能,例如包含push gem试试 Gem in a Box 这个项目。

首先,安装 geminabox:

[~/dev/geminabox] gem install geminabox

创建一个data目录来存放gems:

[~/dev/geminabox] mkdir data

在 config.ru 文件里面包含如下:

[~/dev/geminabox] cat config.ru
require "rubygems"
require "geminabox"

Geminabox.data = "./data"
run Geminabox::Server

 

然后运行服务器:

[~/dev/geminabox] rackup
[2011-05-19 12:09:40] INFO  WEBrick 1.3.1
[2011-05-19 12:09:40] INFO  ruby 1.9.2 (2011-02-18) [x86_64-darwin10.5.0]
[2011-05-19 12:09:40] INFO  WEBrick::HTTPServer#start: pid=60941 port=9292

然后你可以push gem使用 gem inabox 命令。第一次这样做的时候, you’ll be prompted for the location of your gem server.

[~/dev/secretgem] gem build secretgem.gemspec
  Successfully built RubyGem
  Name: secretgem
  Version: 0.0.1
  File: secretgem-0.0.1.gem
[~/dev/secretgem] gem inabox ./secretgem-0.0.1.gem
Enter the root url for your personal geminabox instance. (E.g. http://gems/)
Host:  http://localhost:9292
Pushing secretgem-0.0.1.gem to http://localhost:9292/...

 

同时也在 http://localhost:9292 有效。更多信息请查看 Gem in a boxREADME.

 

三、从你的服务器使用gems

不管你和私用 gem server, 还是Gem in a Box, 或者其他 gem server, 你可以配置 RubyGems 使用你的本地或者内部原而不是其他原,例如 http://rubygems.org.

使用 gem sources 命令添加你的gem server到你的 system-wide gem 原. 以下URL在通过rackup运行gem in a box 默认的:

gem sources --add http://localhost:9292

然后像往常一样安装gem:

[~] gem install secretgem
Successfully installed secretgem-0.0.1
1 gem installed

如果你使用 Bundler ,你可以在你的 Gemfile:中修改gem原。

[~/dev/myapp] cat Gemfile
source "http://localhost:9292"
gem "secretgem"

[~/dev/myapp] bundle
Using secretgem (0.0.1)
Using bundler (1.0.13)
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(gem server)