`
lanvige
  • 浏览: 36512 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论
阅读更多

Gem介绍


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


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


升级RubyGem

 

$ gem update --system

 

安装新的Gem

 

$ gem install rai

 

指定安装某一版本的Gem包

 

$ gem install [gemname] --version=1.3.2

 

 

在安装过程中可以看到如下提示,说明它是从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

 

$ gem update 

 


更新指定的 gem

 

$ gem update [gemname]

 

 

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


 

gem install [gemname] --version=[ver]


 

删除某gem的所有安装版本

 

gem uninstall [gemname]

 

 

删除某gem指定版本

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


 

$ gem uninstall [gemname] --version
$ sudo gem uninstall thor --version=0.14.2

 

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

gem cleanup
 

 

查看本机所安装过的gems

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


 

$ gem list --local

 

 

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


 

$ gem list --local | grep [gemname]

 

 

Bundle 使用

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

关于Gemfile 和 Gemfile.lock

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


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

显示所有的依赖包

$ bundle show 

 

显示某个Gem包的安装位置

 

$ bundle show [gemname]


 

可以檢查目前缺少哪些 rubygem

 

$ bundle check 


 

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


如何安装所缺少的RubyGem呢?

 

$ bundle install
$ bundle install [gemname]


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


 

$ bundle update
$ bundle update [gemname]

 

 

这样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:


gem 'rails', '3.0.1'
gem 'sqlite3-ruby', :require => 'sqlite3'
gem "haml"
gem 'declarative_authorization'
gem 'uuidtools'

 


锁定当前环境

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

 

$ bundle lock

 

 

通过unlock来解除锁定:

 

$ bundle unlock

 

 

打包当装环境

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

 

Bundle支持Git安装

使用bundle install 更新

 

Gem & Plugin的选择

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

 

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


 

分享到:
评论
1 楼 lanvige 2010-11-06  
谁能告诉我如何去掉代码中的html标签,javaeye的editor是我见过很烂的。。

相关推荐

    youtube_gem_example:Youtube Gem 示例

    Youtube_dl Gem 示例 入门 git clone git@github.com:michaelachrisco/youtube_gem_example.git cd youtube_gem_example bundle rails s

    Ruby相关入门教程网址

    同时,熟悉并掌握一些常见的Ruby开发工具,如 pry 调试工具,rake 构建工具,gem 包管理器,以及bundle来管理项目依赖,都是提高开发效率的关键。 总的来说,这份Ruby入门教程应该能帮助初学者建立起对Ruby语言的...

    ully-gem:Ruby Gem 用于抽象 Ully API 的使用

    $ bundle 或者自己安装: $ gem install ully 入门 require "ully" # Create new instance of Ully api = Ully :: Client . new ( "access_token" ) 文档 #stats(格式=假) 参数: format类型: String示例: ...

    week-of-month:给出给定日期的一个月的一周

    入门 一个月的一周以Ruby Gem的形式发布。 该gem将安装在Ruby on Rails应用程序中。 要安装,只需将以下内容添加到您的Gemfile中: gem 'week_of_month' 运行bundle install,不要忘了重启服务器。 您还可以从...

    kiris:Phate Radio是有关动漫,游戏和流行音乐的实验性互联网广播

    入门如果尚未安装,请在命令提示符处安装Bundler and Rails: $ gem install bundle --no-document $ gem install rails --no-document使用bundler安装gem依赖项: $ bundle install如果尚未初始化数据库,请执行...

    photo-app

    安装gem文件中指定的gem bundle install --without production 启动本地开发服务器 rails s 您现在可以在访问服务器 数据库迁移和播种 运行数据库迁移和播种器,您已完成 rails db:migrate rails db:seed 注意:...

    angular-gem:[已弃用]

    入门将 gem 添加到您的应用程序 Gemfile 中: gem "angular-gem"运行bundle install 。 要引导事物,请运行: rails g angular:install指定版本默认情况下,此 gem 将在您的 application.<js> 文件中

    cloudinary_gem:用于Ruby on Rails集成的Cloudinary GEM

    云量 Cloudinary是一种云服务,可为Web应用程序...如果您使用Rails 3.x或更高版本,请编辑Gemfile ,添加以下行并运行bundle install gem 'cloudinary' 或者在Rails 2.x中,编辑您的environment.rb并添加: config.g

    gamesdb:与 TheGamesDB API 交互的 Ruby gem

    安装和快速入门 这个 gem 需要 Ruby 2.5 或更高版本。 将此行添加到您的应用程序的Gemfile中: gem 'thegamesdb' 并运行: $ bundle install 或者使用以下命令将其安装在您的系统中: $ gem install ...

    wot_api_ru:Wargaming.net公共API的Ruby gem

    WotApiRu Ruby gem入门WotApiRu从Rails 4.1开始就可以使用。 您可以使用以下命令将其添加到您的Gemfile中: gem 'wot_api_ru' , github : 'shved270189/wot_api_ru' # from GitHubgem 'wot_api_ru' # from rubygems ...

    gem-miner:找出您在哪里使用宝石!

    宝石矿工 在 ,我们希望摆脱一些旧的存储库-它们什么也没做,而且使新的入门者感到困惑。 但是,我们要确保这些存储库... 要将这个gem安装到本地计算机上,请运行bundle exec rake install 。 要发布新版本,请更新ver

    dotenv-example:关于使用 dotenv gem 从代码中分离敏感数据(例如,密码、令牌)的教程

    一个 dotenv 示例 内容 什么是 dotenv? 可以轻松加载特定于项目的环境变量。 这意味着我们不必为了在... “bundler” gem 提供了bundle命令。 在dotenv-example目录中,运行 bundle install 安装必要的宝石。 如

    Template:使用Satin,Forge和Youi与Metal一起创建实时图形的入门模板

    Satin&Forge&Youi的模板入门从此模板向上克隆Satin,Forge和Youi文件夹 cd .. && git clone git@github....

    google_simple_api:Ruby gem,可以轻松访问来自 Google apis 的数据

    入门 将此行添加到应用程序的 Gemfile 中: gem 'google_simple_api' 然后执行: $ bundle 或者自己安装: $ gem install google_simple_api 如何使用 要使用 gem,您需要在 Google 上设置一个项目。 为此,您...

    skoogle-docs:Ruby Gem 将 Google Docs 导入并转换为漂亮的 HTML 和 PDF 文档

    $ bundle 或者自己安装: $ gem install skoogle_docs 用法 TODO放在 RubyGems 上 文件使用 贡献 TODO写 Contributing.md 入门 git clone git@github.com:Skookum/skoogle-docs.git cd skoogle-docs * [...代码,...

    getting-started:Middleman、Bourbon 和 Susy Grid 入门

    gem install bundler git remote add production git@heroku.com:app-name.git git remote add staging git@heroku.com:app-name-staging.git bundle exec middleman (在本地浏览器中运行)` bundle exec ...

    rails_入门详细笔记(官网翻译).

    在开发过程中,可能会需要安装一些外部依赖的 gems,可以通过执行 `$ bundle install` 命令来安装 Gemfile 中列出的所有 gems。 #### 六、配置数据库 Rails 支持多种数据库,可以根据需求进行配置: - 默认情况下...

    stsplatform-lib-ruby:STS平台Ruby库

    确保安装它要从源代码安装,请运行:“ bundle exec rake install”要从RubyGems安装,请运行:“ gem install stsplatform” require 'stsplatform' 创建一个STS平台客户端: c = STSPlatform::Client.new() ...

Global site tag (gtag.js) - Google Analytics