RubyGems简介和使用

文章一来自:http://lanvige.iteye.com/blog/804477

 

Gem介绍

 

Gem是一个ruby库和程序的标准包,它通过RubyGem来定位、安装、升级和卸载,非常的便捷。

 

Ruby 1.9.2版本默认安装RubyGem,如果你使用其它版本,请参考如何安装RubyGem。

 

升级RubyGem

 

Ruby代码    收藏代码
  1. <span style="">$ gem update --system</span>  

 

安装新的Gem

 

Ruby代码    收藏代码
  1. <span style="">$ gem install rai</span>  

 

指定安装某一版本的Gem包

 

Ruby代码    收藏代码
  1. <span style="">$ gem install [gemname] --version=1.3.2</span>  

 

 

在安装过程中可以看到如下提示,说明它是从rubygems.org内去寻找并安装gem package的。

Fetching source index for http://rubygems.org/

gem 的安装方式

所有的Gem包,会被安装到 [Ruby root]/lib/ruby/gems/1.9.1/

这其中包括了Cache、doc、gems、specifications 4个目录,cache下放置下载的原生gem包,gems下则放置的是解压过的gem包。

 

当安装过程中遇到问题时,可以进入这些目录,把有问题的gem删掉,重新 gem install 即可。

更新所有的 gems

 

Ruby代码    收藏代码
  1. <span style="">$ gem update </span>  

 

 

更新指定的 gem

 

Ruby代码    收藏代码
  1. <span style="">$ gem update [gemname]</span>  

 

 

在升级gem时遇到一个问题,如何升级到一个指定版本,系统是不提供 update [gemname] --version的,但可以使用install

 

 

Ruby代码    收藏代码
  1. <span style="">gem install [gemname] --version=[ver]</span>  

 

 

删除某gem的所有安装版本

 

Ruby代码    收藏代码
  1. <span style="">gem uninstall [gemname]</span>  

 

 

删除某gem指定版本

但有时只是想删除一个旧版本的gem,则使用如下的命令:

 

 

Ruby代码    收藏代码
  1. <span style="">$ gem uninstall [gemname] --version</span>  
Ruby代码    收藏代码
  1. <span style="">$ sudo gem uninstall thor --version=0.14.2</span>  

 

 

清除已经升级后所留的旧版gems

 

Java代码    收藏代码
  1. gem cleanup  

 

 

查看本机所安装过的gems

会显示出本机所有安装过的gem包和其所有版本号

 

 

Ruby代码    收藏代码
  1. <span style="">$ gem list --local</span>  

 

 

查看本机是否装了某个gem?

 

 

Ruby代码    收藏代码
  1. <span style="">$ gem list --local | grep [gemname]</span>  

 

 

Bundle 使用

Rails 3 中引入Bundle来管理项目中所有gem依赖,该命令只能在一个含有Gemfile的目录下执行,如rails 3项目的根目录

关于Gemfile 和 Gemfile.lock

所有project的信赖包都在Gemfile中进行配置,不再像以往那样,通过require来查找。Rails 3中如果需要 require 某个 gem 必须通过 Gemfile 来管理。

 

Gemfile.lock 则用来记录本机目前所有依赖的 RubyGems 和其版本,所以强烈建议将该文件放入版本控制器,从而保证大家基于同一环境下工作。

显示所有的依赖包
Ruby代码    收藏代码
  1. $ bundle show   

 

显示某个Gem包的安装位置

 

Ruby代码    收藏代码
  1. <span style="">$ bundle show [gemname]</span>  

 

 

可以檢查目前缺少哪些 rubygem

 

Ruby代码    收藏代码
  1. <span style="">$ bundle check </span>  

 

 

不缺的话则会输出:The Gemfile's dependencies are satisfied

 

如何安装所缺少的RubyGem呢?

 

Ruby代码    收藏代码
  1. <span style="">$ bundle install</span>  
Ruby代码    收藏代码
  1. <span style="">$ bundle install [gemname]</span>  

 

如果gems有新版本,Gemfile.lock如何同步更新

 

 

Ruby代码    收藏代码
  1. <span style="">$ bundle update</span>  
Ruby代码    收藏代码
  1. <span style="">$ bundle update [gemname]</span>  

 

 

这样bundle会去检查 http://rubygems.org/ 上 gem的最新版本,如果本地旧的话,会去更新到最近版本。然后同步更新Gemfile.lock

 

在Linux下不要使用 sudo bundle install/update,这样会在.bundle目录下查找bundle install path 的配置,找到后安装到该目录,而非系统指定的目录,不方便管理。

 

如何向项目中添加新的Gem引用?

Add the gem to Gemfile. just like below:

 

 

Ruby代码    收藏代码
  1. gem 'rails''3.0.1'  
  2. gem 'sqlite3-ruby':require => 'sqlite3'  
  3. gem "haml"  
  4. gem 'declarative_authorization'  
  5. gem 'uuidtools'  

 

 

锁定当前环境

使用bundle lock来锁定当前开发环境,这样,便不能通过bundle update来更改本地包的版本,使开发保持在一个稳定的环境中

 

 

Ruby代码    收藏代码
  1. $ bundle lock  

 

 

通过unlock来解除锁定:

 

 

Ruby代码    收藏代码
  1. $ bundle unlock  

 

 

打包当装环境

bundle package 会把当前所有信赖的包都放到 ./vendor/cache/ 目录下,发布时可用来保证包版本的一致性。

 

Bundle支持Git安装

使用bundle install 更新

 

Gem & Plugin的选择

在Rails 2中,开发人员会更便向使用plugin,因为安装、更新的布署都会经常遇到问题,但在 Rails3 中引入了bundle之后,更多的人喜欢使用gem的方式来管理引用。

 

这样你的本地代码库会很干净,便于理解。也不需要将这些库放到版本控制器中,减少空间 ;)

 

 

文章二来自:http://www.blogjava.net/byterat/archive/2006/12/15/87867.html

 

 

 

RubyGems是一个方便而强大的Ruby程序包管理器( package manager),类似RedHat的RPM.它将一个Ruby应用程序打包到一个gem里,作为一个安装单元。无需安装,最新的Ruby版本已经包含RubyGems了。


特点:
能远程安装包
包之间依赖关系的管理
简单可靠的卸载(uninstallation)
查询机制,能查询本地和远程服务器的包信息
能保持一个包的不同版本
基于Web的查看接口,能查看你安装的gem的信息。


使用:
1. gem query --remote        # shortcut: gem q -R
#列出所有包
2. gem query --remote --name-matches doom   # shortcut: gem q -R -n doom
#列出所有名字匹配的包
3. gem install --remote progressbar  # shortcut: gem i -r progressbar
#安装指定名字的包。
gem ins -r progressbar --version '> 0.0.1' #这里可以匹配版本
4. gem specification  progressbar  # shortcut: gem spec progressbar
#查看安装过的指定包详细信息
5.gem uninstall progressbar
#卸载包
6. gem query --local # shortcut: 'gem q -L'
#列出所有本地安装过的包
7. gem ins rake
#在本地安装,如果没有远程安装
8. gem list -b ^C
#列出所有以C开头的包
9. gem_server
开启rdoc服务。可以查看安装包的rdoc

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值