当前位置: 代码迷 >> Ruby/Rails >> rubygems.org guides 通译十二(跑自己的gem server)
  详细解决方案

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

热度:323   发布时间:2016-04-29 02:20:38.0
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.rurequire "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.gemEnter the root url for your personal geminabox instance. (E.g. http://gems/)Host:  http://localhost:9292Pushing 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 secretgemSuccessfully installed secretgem-0.0.11 gem installed

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

[~/dev/myapp] cat Gemfilesource "http://localhost:9292"gem "secretgem"[~/dev/myapp] bundleUsing 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.

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  相关解决方案