niyue

Archive for May, 2008|Monthly archive page

发布Ruby Gem

In ruby on May 21, 2008 at 10:17 PM

RubyGems是一个用于Ruby的包管理工具,虽然并未包含在Ruby的发行版中,但是可以认为是事实上Ruby世界中标准的发布Ruby程序和库的工具,可以很方便的管理gem之间的依赖性。

如果你是在进行Open Source的Ruby程序开发,可以直接通过Rubyforge来发布gem。不过如果是自己的私有项目,可能就需要自己搭建一个Web server来进行gem的发布了。如果系统中已经安装了RubyGems的话,通过gem server (gem help server看看用法)就可以启动一个简单的gem发布的server。不过很可能的,你已经有一个Web Server在系统环境中了(如Apache Web Server),这个时候就通过以下的几个步骤可以完成把这个Web Server改造成为一个gem distribution server:

1) 建立一个发布目录,并设置Apache(或者其他的Web Server)使得这一目录能够通过Web访问。并在这一发布目录下建立一个名为gems的子目录。

比如我们在htdocs目录下建立一个目录dist,并建立一个gems子目录。

2) 拷贝打包好的gem到dist/gems目录中。

 如拷贝allmighty-1.0.gem到htdocs/dist/gems目录中。

3) 在命令行界面中,进入dist目录,运行“gem generate_index .”(请注意最后的一个点,表示当前目录)。这一命令会对gems子目录中的所有gem建立一个索引文件yaml,并存放在dist目录下,以便可以通过gem install命令安装时查找。

4) You’re done~

在这之后,你就可以通过”gem install allmighty –source http://yourhost.com/dist/”命令来安装你新发布的gem了。

5) 如果以后还有新的gem需要发布或者有新的版本的gem需要发布,请从步骤2)开始继续即可。

关于RubyGems,有一本很好的书,介绍了其使用、开发和发布等,有兴趣的话可以看看。

Practical Ruby Gems

Advertisements