`
yawl
  • 浏览: 61040 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

简化gem安装

    博客分类:
  • ruby
阅读更多
Ruby on Rails项目往往用到大量第三方的gems,在项目有新成员加入,或配置新的开发系统时,一个个的安装是件很繁琐的事情。

我用的办法就是写一个自己的gem,让它依赖于项目里用到的其他gems。这样的话,安装这个gem的时候,就会顺带把其他gems安装了。

代码非常简单:

>cat install-gems.gemspec
#
#Usage:
#gem build install-gems.gemspec
#gem install install-gems.0.0.1.gem
#gem uninstall install-gems (optional, remove this useless gem)
#
spec = Gem::Specification.new do |s|
  s.name = "install-gems"
  s.version = "0.0.1"
  s.author = "yawl"
  s.email = "yawl@iteye.com"
  s.homepage = "http://xruby.iteye.com"
  s.platform = Gem::Platform::RUBY
  s.summary = "This gem has no content in itself, it helps to install all the gems we depend on"
  s.add_dependency('actionmailer', '>=2.0.2')
  s.add_dependency('actionpack', '>=2.0.2')
  s.add_dependency('activerecord', '>=2.0.2')
  s.add_dependency('activeresource', '>=2.0.2')
  s.add_dependency('activesupport', '>=2.0.2')
  s.add_dependency('acts_as_ferret', '>=0.4.3')
  s.add_dependency('capistrano', '>=2.1.0')
  s.add_dependency('mysql', '>=2.7')
  s.add_dependency('rails', '>=2.0.2')
  s.add_dependency('rake', '>=0.8.1')
  # add more here
end
分享到:
评论
7 楼 yawl 2008-04-25  
嗯,这个好。

leondu 写道

rake gems:unpack      # Unpacks all gems into vendor/gems.

6 楼 leondu 2008-04-25  
yawl 写道
用了一下2.1的这个功能还不错。

一个小问题就是gem安装需要root权限,而我们自动deploy时是以普通用户进行的,所以没有把'rake gems:install'加到脚本里。

我知道可以把sudo设成不要密码,或者把gem安装目录的权限改了。但从安全的考虑都不愿意实施。


rake gems:unpack      # Unpacks all gems into vendor/gems.
5 楼 yawl 2008-04-24  
用了一下2.1的这个功能还不错。

一个小问题就是gem安装需要root权限,而我们自动deploy时是以普通用户进行的,所以没有把'rake gems:install'加到脚本里。

我知道可以把sudo设成不要密码,或者把gem安装目录的权限改了。但从安全的考虑都不愿意实施。
4 楼 Stainlesssteel 2008-04-20  
lgn21st 写道

# environment.rb实例

Rails::Initializer.run do |config| 
  # config.gem "bj"
  # config.gem "hpricot", :version => '0.6', :source => "http://code.whytheluckystiff.net" 
  # Require a gem that needs to require a file different than the gem's name
  # config.gem "aws-s3", :lib => "aws/s3"
  config.gem "tzinfo", :version => '>= 0.3.8'
  config.gem "ambition", :version => '>= 0.5.2'
  config.gem "ambitious-activerecord", :version => '>= 0.1.1', 
                                       :lib => 'ambition/adapters/active_record'

  # 或者如下写法
  gem 'will_paginate', '~> 2.2.1'
  require 'will_paginate'

 # 用法
  # rake gems             # List the gems that this rails application depends on
  # rake gems:install     # Installs all required gems for this application.
  # rake gems:unpack      # Unpacks all gems into vendor/gems.
  # rake gems:unpack:dependencies      # Unpack all dependencies
  # rake gems:unpack:dependencies GEM=foo #Unpack all dependencies for gem foo
  # rake gems:build       # for build native extensions.

end 
3 楼 lgn21st 2008-04-19  
2 楼 rubynroll 2008-04-19  
Hmm, 内部gemserver这个时候就很好用了
1 楼 caryl 2008-04-19  
恩,这个办法不错

相关推荐

    ruby离线安装所需所有的gem文件(另有安装包)

    将这些gem文件移动到你的系统GEM目录(通常在`C:\Ruby193\lib\ruby\gems\[version]\gems`下,具体取决于你的安装路径),然后打开命令行,使用以下命令安装gem: ```bash gem install [gem_file_name].gem --local ...

    ruby gem 命令参考(狂刀整理)

    Ruby Gem 是 Ruby 语言的软件包管理器,它允许开发者轻松地发布、安装和管理代码库,这些代码库被称为 Gems。Gems 包含了 Ruby 库、框架、工具和其他可重用的代码组件,极大地简化了开发流程。在本指南中,我们将...

    secs /gem 中文详解

    SECS/GEM(Standard for Exchange of Status and Control Data/General Equipment Model)协议最初是为半导体制造业设计的,旨在通过标准化的数据交换格式来简化设备之间的通信。该协议通过提供一套通用的通信标准,...

    redis-3.2.1.gem

    总结来说,`redis-3.2.1.gem` 是为 Ruby 开发者提供的一键式安装 Redis 集群的工具,它简化了在开发环境中设置和管理 Redis 集群的过程。了解如何安装和使用这个 gem 以及如何配置和管理 Redis 集群,对构建高可用和...

    Ruby-gemdiff查找gem的源码仓库并打开比较和更新过时的gem版本

    总之,`gemdiff` 是一个强大的工具,它简化了Ruby开发者对Gem依赖的管理和更新过程。通过查找源码仓库,比较版本差异以及更新Gem,`gemdiff` 提供了一个高效、可视化的解决方案,让开发者能够更好地掌控项目中的Gem...

    redis-3.0.0.gem

    Redis 是一个开源的、高性能的键值存储...总之,`redis-3.0.0.gem` 对于淘淘商城的 Redis 集群搭建至关重要,它不仅简化了安装过程,还为通过 Ruby 脚本管理和操作 Redis 提供了便利,有助于构建高效、稳定的电商平台。

    ITRI SECS GEM Solution

    QuickGEM Driver支持多种编程语言,如VC、VB6.0、***、LabWindows等,并且利用csv文件编写系统变量(SV)、设备常量(EC)、事件(Event)和报警(Alarm)信息,简化了符合GEM规范的通讯功能的开发。产品优势在于让...

    GEM2.7.6版本

    RubyGems是Ruby编程语言的核心组成部分,它提供了一个方便的包管理器,用于安装、管理和使用Ruby库,也就是所谓的gem。在Ruby社区,gem是共享代码和构建应用程序的标准方式。当我们提到“GEM2.7.6版本”时,这指的是...

    SECSI_SECSII_HSMS_GEM总结.rar_GEM_GEM/SECS_SECS HSMS_SECSI gem_sec

    GEM包含了设备初始化、过程控制、报警处理、数据记录等一系列功能,极大地简化了设备与fab的连接和通信。 HSMS,作为SECS协议的一部分,提供了更高级别的消息服务,它允许设备和主机进行双向的、异步的消息传递。...

    SECS_GEM 模拟器,符合最新2020的SEMI标准规范,带使用说明书

    SML是一种专为描述SECS消息而设计的语言,简化了消息的创建和调试过程,提高了开发效率。 使用SECS_GEM模拟器,开发者可以测试设备控制软件的功能,确保它们按照SEMI标准正确地发送和接收数据。这包括验证设备启动...

    DerivaGem软件

    这种模型将连续时间过程离散化,简化了期权定价的计算。 DerivaGem软件利用了二叉树模型来计算美式期权的价格,考虑了多个关键参数,包括: 1. **期权类型**:区分看涨期权(Call)和看跌期权(Put)。 2. **标的...

    sungem.rar_GEM_gem ethernet

    它提供了一个统一的接口,用于驱动不同厂商的物理层(PHY)设备,简化了开发和维护工作。GEM驱动程序不仅处理了与MAC层的交互,还负责与网络协议栈的通信,实现了硬件层面的数据包传输和接收。 Sun GEM 驱动程序则...

    ruby savon gem

    在这个案例中,我们看到压缩包包含了nokogiri-1.6.8.gem和savon-2.11.1.gem两个文件,这意味着你已经有了这两个库的本地副本,可以直接进行安装。 2. 在Ruby代码中,引入Savon库: ```ruby require 'savon' ``` 3....

    搭载金南瓜PLC SECS 、GEM解决方案

    - 金南瓜科技提供了EAP模拟器,帮助用户模拟自动化控制过程,测试设备的SECS/GEM效果,通过直观的操作界面简化了SECS/GEM的学习和操作。 8. **Stream Function**: Stream Function可能是指金南瓜系统中的流处理...

    GEM3000血气介绍

    【GEM3000血气分析仪】是美国实验仪器公司Instrumentation Laboratory(IL)生产的一款便携式、多参数血气分析设备,专用于临床重症监护和凝血分析领域。IL公司自1959年在波士顿成立以来,一直致力于血气、血凝和...

    SEMIE30-0200_GEM.pdf

    遵循GEM标准的设备能够更容易地被工厂系统监控和控制,同时简化了设备配置、维护和升级的过程。 总之,SEMI E30-0200标准作为半导体行业内的一个重要规范,为制造商和终端用户提供了实现高效、可靠半导体制造设备...

    半导体SECS GEM的PLC解决方案书

    GEM模型使得半导体设备在与工厂信息系统的通信过程中具有标准化的特性,从而简化了设备与工厂信息系统的集成过程。 在SECS/GEM的实现方案中,可使用可编程逻辑控制器(PLC)作为设备侧的控制系统。然而,传统解决...

Global site tag (gtag.js) - Google Analytics