ruby gems tips

Posted by wxianfeng Wed, 14 Apr 2010 22:09:00 GMT

相对于插件,我更喜欢gem的形式,今天在windows 上装will_paginate 和 mysql 两个gem包, 可是都失败了 , 尝试了

>gem install mysql (没添加任何source,默认从 "http://rubyforge.org/" 下)
>gem install  mysql --source "http://gems.github.com"
>gem install mysql --source 'http://gemcutter.org'

最后都失败了 , 继续搜了一下 , 发现还有一个管理gem包的地方 http://rubygems.org,最后尝试

>gem install mysql --source 'http://rubygems.org'

成功了,这过程中遇到了不少gem命令 , 再次正好总结一下:

升级ruby gem

>gem update --system

查看gem版本

>gem -v

查看gem版本,gems安装目录,remote sources等

>gem env

查看已经添加的remote sources

>gem sources

添加一个source

>gem sources -a 'htt://rubygems.org'

安装一个gem包

>gem install will_paginate

指定源位置

>gem install will_paginate --source 'http://rubygems.org'
>gem install will_paginate -s 'http://rubygems.org'

指定版本

>gem install rails -v=2.3.5

查看已经安装的全部gem包

>gem list

或者 gem list -d 查看具体的信息,例如project的author,homepage,安装在系统中的路径 等信息,建议加上该参数…
查看d开头的gem包

>gem list d

更详细的查看

>gem list will_paginate -d

卸载gem包

>gem uninstall rails

卸载指定版本

>gem uninstall rails -v=2.1.0

查找gem包

>gem search will_paginate --both (在local和remote源中search含有will_paginate关键字的)
>gem list -r will_paginate
>gem list -dr will_paginate (我常用这个)

查看gem包依赖其他的gem:

>gem dependency rails -v 2.3.5
Gem rails-2.3.5
  actionmailer (= 2.3.5, runtime)
  actionpack (= 2.3.5, runtime)
  activerecord (= 2.3.5, runtime)
  activeresource (= 2.3.5, runtime)
  activesupport (= 2.3.5, runtime)
  rake (>= 0.8.3, runtime)

查看gem包的rdoc帮助

>gem server (然后http://localhost:8808查看)

windows 平台上安装

>gem install hpricot --platform=mswin32 # 不指定在windows安装会报错

先不指定platform安装,如果不行的话,再指定platform

不安装ri 和 rdoc

>gem install hpricot --no-ri --no-rdoc

上了正式服务器上安装是不需要rdoc的,这样安装会省下很多时间

如果这些方法还是不行 , 可以到gem的网站上 , 例如rubygems.org 上搜gem包,然后下载到本地进行local安装

查看更多的gem帮助,可以 >gem -h

项目里常用gem命令

wxianfeng@wxianfeng-ubuntu:/usr/local/system/entos/netposa_redmine$ rake -T gems:
(in /usr/local/system/entos/netposa_redmine)
rake gems:build                # Build any native extensions for unpacked gems
rake gems:build:force          # Force the build of all gems
rake gems:install              # Installs all required gems.
rake gems:refresh_specs        # Regenerate gem specifications in correct format.
rake gems:unpack               # Unpacks all required gems into vendor/gems.
rake gems:unpack:dependencies  # Unpacks all required gems and their dependencies into vendor/gems.

例如你enviroment.rb 中配置了paperclip gem

config.gem 'paperclip', '2.3.5'

那么 rake gems:install 将会安装paperclip 2.3.5 到你的ruby目录里, rake gems:unpack:dependencies 将会把依赖的gem包unpack 到vendor/gems 目录下,如果你是直接从gem包copy 到vendor/gems 目录下的话,需要执行 rake gems:refresh_specs 来生成 .specifications 文件


UPDATE:
默认安装已经不会再安装ri 和rdoc
here