Rails3:使用bundler管理gems
Rails3:使用bundler管理gems
bundler 是一套为了 Rails3 所打造的全新 Gem dependencies 管理工具:一套基于 Rubygems 的更高阶套件管理工具,适合让 Application 管理多套 Gems 依存关係的複杂情境。而你在 Rails3 中 (Bundler 不只用在 Rails3,其他例如 Sinatra 或是 Rails2 也都可以使用) 要使用的 Gems,也都必须宣告在它的 Gemfile 裡,没写在裡面的话,就算手动 require 也找不到。这跟已往你可以直接 require 任意 rubygems 不同,在使用 Bundler 的环境中,要 require 什麽 rubygems 必须透过 Gemfile 管理。
Gemfile 的寫法大致如下:
# 第二个参数可以指定版本gem "rails", "3.0.0.beta3"# 如果 require 的档名不同,可以加上 :requiregem "sqlite3-ruby", :require => "sqlite3"# 可以用 Git 当做来源,甚至可以指定 branch, tag 或 ref。gem "authlogic", :git => "git://github.com/odorcicd/authlogic.git",:branch => "rails3"# 可以直接用电脑裡的其他目录gem "rails", :path => "/Users/ihower/github/rails"# Group 功能可以让特定环境才会载入group :test dogem "rspec-rails", ">= 2.0.0.beta.8"gem "webrat"end |
设定好 Gemfile 之后,我们有一些指令可以用:
- bundle check 可以检查目前缺少哪些 rubygem,然后你可以手动透过 sudo gem install 安装到系统裡。
- bundle install 安装所有需要的套件。如果系统已经有装了,就用系统的,不然会装到 $BUNDLE_PATH 下,预设是你家目录 ~/.bundle (因此请不要用 sudo 执行 bundle install)。如果来源是 git (例如上述的 authlogic),每次执行 bundle install 就会自动 git pull 更新,十分方便。
- bundle lock 和 bundle unlock 会做 snapshotting 记录下目前所有套件的版本在 Gemfile.lock,建议这个档桉也一起 commit 出去。适合要佈署或多人开发时,可以确保大家的版本都一致。
- bundle package 如果你的 Server 没联外网路,或是怕 rubygems.org 连不上,可以用这个指令把所有套件都打包到 vendor/cache 下。基本上,跟以往 Rails 1.X 2.X 时代佈署时会建议你尽量打包依存套件并 commit 出去,在使用 Bundler 后已经大大地不需要了,因为透过 bundle lock 我们就可以确保每台机器上执行的套件版本一致。
- bundle exec 因为 Bundle 可以说是独立出一个套件环境,所以如果有非 Rails 的指令需要执行,而且你的系统 Gems 又没有安装,那就会需要透过 bundle exec XXX 来执行。例如 bundle exec cucumber。
- bundle show gem_name 可以查看这个 online casino gem 的目录位置
- bundle open gem_name 可以用编辑器打开这个 gem 的目录
Rails3:使用bundler管理gems的更多相关文章
- 项目管理软件---redmine安装配置
redmine是一个开源的项目管理软件,其主页是:http://www.redmine.org redmine是基于Ruby on Rails框架的,跨平台和跨数据库. 安装过程 ========== ...
- Windows下安装Redmine-2.5.3
安装准备 服务器操作系统:Windows Server 2008 R2 Standard,64位操作系统. RailsInstaller版本:2.2.4 (下载地址http://railsinsta ...
- Unix 下 使用 RVM 管理 Ruby 和 gem
转载:http://www.ibm.com/developerworks/cn/aix/library/au-aix-manage-ruby/ 尽管 Internet Relay Chat.论坛和 ...
- ansible 模块 分享
A a10_server 管理A10 Networks AX / SoftAX / Thunder / vThunder设备 a10_service_group 管理A10网络设备的服务组 a10_v ...
- centos7安装redmine3.4
前言:安装要求 Ruby解释器 给定Redmine版本所需的Ruby版本是: Redmine版本 支持的Ruby版本 使用Rails版本 4.0 ruby 2.2(2.2.2及更高版本),2.3,2. ...
- 基于ruby环境搭建Redmine
环境说明 系统版本 CentOS 6.9 x86_64 软件版本 ruby 2.4.4 rails 4.2 redmine-3.4.5 Redmine是一个开源的.基于Web的项目管理和缺 ...
- rackup工具
gem包rack提供了rackup工具来启动webapplication 下面是一个入门范例,使用 bundler 管理库的一个sinatra应用 在begin文件夹下有三个文件 begin.ru ...
- 《Effective-Ruby》读书笔记
本篇是在我接触了 Ruby 很短一段时间后有幸捧起的一本书,下面结合自己的一些思考,来输出一下自己的读书笔记 前言 学习一门新的编程语言通常需要经过两个阶段: 第一个阶段是学习这门编程语言的语法和结构 ...
- WEEX-EROS开发小笔记
本文是作者之前刚接触移动端跨平台开发,使用weex-eros开发项目平日里记下来的一些笔记,分享出来方便为新手解惑,weex-eros是weex的一套解决方法,使用vue语法糖,对于前端开发者来说可以 ...
随机推荐
- Jenkins安装以及配置
Jenkins介绍 Jenkins是一个java开发的.开源的.非常好用持续集成的工具,它能帮我们实现自动化部署环境.测试.打包等等的工作,还可以在构建任务成功或者失败之后给我们发邮件通知. 什么叫持 ...
- Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView、TTreeViewItem
Delphi XE2 之 FireMonkey 入门(44) - 控件基础: TTreeView.TTreeViewItem TScrollBox -> TCustomTreeView -> ...
- python学习笔记:(八)条件语句
if语句,python中if语句的一般形式如下: conditon1为真,执行statement_block_1 condition1为假,判断conition_2,如果condition_2为真,执 ...
- vue--综合组件间的通信
二.综合组件之间的通信 实现一个ToDoList. ①完成所有的组件的创建和使用 ②add点击add按钮时候,将用户输入的内容(todoinput),显示在(todolist) 核心代码:兄弟组件间通 ...
- 【FICO系列】SAP FICO-模块 关于固定资产年结和折旧的问题
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP FICO-模块 关于固定 ...
- pymysql操作数据库
pymysql.connect()参数说明:(连接数据库时需要添加的参数)host(str): MySQL服务器地址port(int): MySQL服务器端口号user(str): 用户名passwd ...
- tensorflow学习之tf.placeholder
placeholder函数相当于一个占位符,tf.placeholder(dtype, shape=None, name=None) dtype:数据类型.常用的是tf.float32,tf.floa ...
- Linux 项目上线流程
命令行样式修改 1 打开配置文件vim /etc/bashrc2 添加配置信息PS1="\[\e[37;40m\][\[\e[32;1m\]\u\[\e[37;40m\]@\h \[\e[3 ...
- 第四周课程总结与第二次实验报告(Java简单类与对象)
1.写一个名为Rectangle的类表示矩形.其属性包括宽width.高height和颜色color,width和height都是double型的,而color则是String类型的.要求该类具有: ...
- [BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块)
[BZOJ 2154]Crash的数字表格(莫比乌斯反演+数论分块) 题面 求 \[\sum_{i=1}^{n} \sum_{j=1}^{m} \mathrm{lcm}(i,j)\] 分析 \[\su ...