在第一次运行bundle install之后,生成了Gemfile.lock文件,里面记录gem的具体版本号,按照官方文档说明,以后运行bundle install就不会再依据Gemfile,而是根据lock文件来安装gem,以免在新的机器中安装的版本与lock中不同,导致gem混乱。
实际试验步骤:
1、第一次运行bundle install,lock文件中为 sqlite3 (1.3.11-x86-mingw32)
2、将Gemfile文件中的 gem 'sqlite3'   改为 gem 'sqlite3' , '1.3.9' ,然后运行bundle install,lock文件中为 sqlite3 (1.3.9-x86-mingw32)
2.1、将gem 'sqlite3' ,  '1.3.9'改回到gem 'sqlite3', 运行bundle install,lock文件中为 sqlite3 (1.3.9-x86-mingw32)
2.2、将gem 'sqlite3' ,  '1.3.9'改回到gem 'sqlite3' '1.3.11' , 运行bundle install,lock文件中为 sqlite3 (1.3.11-x86-mingw32)
2.3、将gem 'sqlite3' ,  '1.3.9'改回到gem 'sqlite3' '>=1.3.9',运行bundle install,lock文件中为 sqlite3 (1.3.9-x86-mingw32),并没有升级到1.3.11
2.4、将gem 'sqlite3' ,  '1.3.9'改回到gem 'sqlite3' '>=1.3.10' , 运行bundle install,lock文件中为 sqlite3 (1.3.11-x86-mingw32)
 
结论:
1 可能将Gemfile中不标注具体版本的gem改为具体版本,运行bundle install,会修改lock文件,反过来就不再修改了,另外2.3和2.4的情况很奇怪,不好解释,个人以为2.4不应该更新lock文件
2 最好的实践是在Gemfile中写清具体版本,如果之后需要更改,每次用bundle update XXgem更改一个gem版本,充分测试后再更改第二个gem的版本;一定将lock文件纳入版本管理控制。
 

关于bundle install 的一点补充的更多相关文章

  1. 对于Tomcat服务器环境变量和启动配置的一点补充

    我们之前第一次使用Tomcat服务器运行jsp应用时,曾经给Tomcat配置过一个环境变量CATALINA_HOME,这个变量指定了Tomcat的安装位置,对于多个开发项目,我们一般会释放多个tomc ...

  2. [转载]提高rails new时bundle install运行速度

    最近在新建rails项目时,rails new老是卡在bundle install那里,少则五分钟,多则几十分.这是因为rails new时自动会运行bundle install,而bundle in ...

  3. WCF的一点补充-Restful相关

    参考 配置WCF心得 对REST架构 风格下WCF的一点补充 Securing WCF REST Service with Azure AppFabric Access Control Service ...

  4. 【RoR win32】提高rails new时bundle install运行速度

    在新建rails项目时,rails new老是卡在bundle install那里,少则五分钟,多则几十分.这是因为rails new时自动会运行bundle install,而bundle inst ...

  5. bundle install rake-10.4.2

    这个是由于被墙了的原因,提供一个不用FQ解决的方法 淘宝做了一个gem镜像,地址是http://ruby.taobao.org/  为什么有这个? 由于国内网络原因(你懂的),导致 rubygems. ...

  6. bundle install 出现 'gem install mysql2 -v '0.3.15' succeeds before bunding '

    bundle install 出现  'gem install mysql2 -v '0.3.15' succeeds before bunding ' 解决:sudo apt-get install ...

  7. bundle install 安装的 gem 提示 cannot load such file

    /usr/local/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load ...

  8. bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装

    bundle install 老是中断,可以在gemfile里面把source换成taobao源,可以自动安装

  9. C++基础--引用的一点补充

    这一篇是对引用的一点补充,内容基本上是来自<C++ primer plus>一书第八章的内容. 前面一篇介绍了引用的一点特点,这里补充一个,将引用用于类对象的时候,有一个体现继承的特征,就 ...

随机推荐

  1. clang_intprt_t类型探究

    作者:玄魂工作室-钱海龙 问题 这篇手把手教你构建 C 语言编译器,里面有着这样的代码 void eval() { int op, *tmp; while (1) { if (op == IMM) { ...

  2. Entity Framework 6 Recipes 2nd Edition(12-7)译 -> 设定默认值

    12-7. 设定默认值 问题 在把一个实体保存到数据库之前,设置该实体属性的默认值 解决方案 假设你有一个如Figure 12-9所示的表, 它保存采购订单(purchase order). 主键Pu ...

  3. hibernate一对一主键单向关联

    关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...

  4. C#中的Session

    一: 网站开发中,为了保存用户信息我们就会用到session. Session具有以下特点:(1)Session中的数据保存在服务器端:(2)Session中可以保存任意类型的数据:(2)Sessio ...

  5. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  6. javaScript笔记

    两边符号是tab键上面的那个键,不是单引号 即在sort内置的函数中先将各字符串转化为统一的大写或者小写,再进行比较即可. -------------------------------------- ...

  7. 【分布式】Zookeeper在大型分布式系统中的应用

    一.前言 上一篇博文讲解了Zookeeper的典型应用场景,在大数据时代,各种分布式系统层出不穷,其中,有很多系统都直接或间接使用了Zookeeper,用来解决诸如配置管理.分布式通知/协调.集群管理 ...

  8. CSS知识总结(四)

    CSS常用样式 2.元素样式 1)宽度 width:auto|length 单位:设置以像素计的宽度值(px) 设置以百分比计的宽度值(%) 例:p {width:200px;} div {width ...

  9. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  10. WangSql 1.0源码共享

    一,项目背景 现在基本上大大小小的项目都需要和数据库打交道,自然而然数据库操作会有很多地方,而使用传统ADO.NET整个流程有点麻烦,出参都需要手动转换为对象.基于以上,我们需要一个SQL执行工具,能 ...