搭建gem server

搭建gem server弄明白了其实并不难,参考下列两个链接的方法后

 

http://eshilin.blog.163.com/blog/static/132880330201062642954212/ 搭建gem server部分在该文最下面

http://qa.taobao.com/?p=2307 用iis的

我也实现了指定source(gem server ip/name)来安装gem包,但是还是自己总结一下

先说说做一个简单的gem包吧,ruby代码一点不会弄,但是做个gem包子还是会的

制作gem包

1、安装gem build需要用到的gem软件

写道
gem install gem_plugin

2、初始化一个包

写道
gpgen testgem

成功执行后,会有如下输出

写道
Creating directory testgem
Creating file testgem/COPYING
Creating directory testgem/lib
Creating directory testgem/lib/project
Creating file testgem/lib/project/init.rb
Creating file testgem/LICENSE
Creating file testgem/Rakefile
Creating directory testgem/resources
Creating file testgem/resources/defaults.yaml
Creating file testgem/README
Creating proper 'testgem/lib/testgem/init.rb' file

 看看也知道会生成哪些东西勒

gem包的配置文件吧,算是rakefile了,在里面随便改改名字,版本的,不过也是ruby代码了。。。其他我也不会。。。

3、改完rakefile之后就可以生成一个包了,在testgem目录下执行

写道
gem build Rakefile

 成功执行后,会在当前目录下生成一个name-version.gem包了,我这里的名字就叫testgem-1.0.0.gem吧

如果你懂ruby代码的话,google一下创建gem包,网上一大堆文件,自己去看吧,可以根据自己需求修改rakefile,添加gemspec

测试用的gem包有了,下面开始搭建gem server吧,也不难

搭建gem server

搭建gem server我们以用nginx的web服务器为例,其实差不多的都

1、配置nginx的访问目录

写道
server {
listen 80;
server_name 192.168.1.174;
index index.html index.htm index.php;
root /opt/web/wordpress;
passenger_enabled on;
}

 /opt/web/wordpress是能够通过web访问的

2、创建gems目录

写道
在/opt/web/wordpress下创建一个gems目录

mkdir /opt/web/wordpress/gems

 将你的gem包(testgem-1.0.0.gem)复制到/opt/web/wordpress/gems目录下

写道
cp testgem-1.0.0.gem /opt/web/wordpress/gems

3、生成gem包目录索引

在/opt/web/wordpress目录下(注意,不是/opt/web/wordpress/gems目录下,是gems的上一级目录)直接执行

写道
gem generate_index -d /opt/web/wordpress

 执行完成后,会生成几个文件和yaml文件,其中yaml文件就是gem包的索引,当别人执行source访问时,就是读取yaml文件来获取gem包目录的

4、重新加载nginx

web访问目录下搞了这么多文件出来,nginx肯定要reload一下

写道
/opt/nginx/sbin/nginx -s reload

5、指定source安装testgem

找过一个服务器,注意两台服务器的gem版本一定要是一样的,在另外一个服务器上执行

写道
gem install testgem --source http://192.168.1.174/

 这样就可以了,如果有需要依赖软件的话,想通过source来安装的话,就直接将对应的gem包复制到gems目录下即可,这样就会安装testgem中申明所需要的依赖包了

貌似就这些了。。

猜你喜欢

转载自laibulai.iteye.com/blog/1225299