关于bundle install 的一点补充

在第一次运行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文件纳入版本管理控制。

时间: 2024-11-06 00:57:38

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

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 libmysql-ruby '如果你找不到包尝试以下的包 參考:http://packages.ubuntu.com/search?keywords=mysql-ruby ruby-dataobjects-mysql libmysqldb-ruby ruby-dbd-mysql sudo apt-

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 libmysql-ruby '若找不到这个包试试下面到包 参考:http://packages.ubuntu.com/search?keywords=mysql-ruby ruby-dataobjects-mysql libmysqldb-ruby ruby-dbd-mysql sudo apt-

对于Tomcat服务器配置的一点补充

我们之前第一次使用Tomcat服务器运行jsp应用时,曾经给Tomcat配置过一个环境变量CATALINA_HOME,这个变量指定了Tomcat的安装位置,对于多个开发项目,我们一般会释放多个tomcat服务器,那么到最后启动的是不是本身的服务器呢,看一下tomcat的启动脚本,startup.bat或者startup.sh也许会有所发现: 通过这段代码段,可以大致看出来脚本去寻找%CATALINA_HOME%这个环境变量所在的目录,如果环境变量被设置并且正确找到,那么就会启动环境变量指定位置的

bundle install rake-10.4.2

这个是由于被墙了的原因,提供一个不用FQ解决的方法 淘宝做了一个gem镜像,地址是http://ruby.taobao.org/ 为什么有这个? 由于国内网络原因(你懂的),导致 rubygems.org 存放在 Amazon S3 上面的资源文件间歇性连接失败.所以你会与遇到 gem install rack 或 bundle install的时候半天没有响应,具体可以用 gem install rails -V 来查看执行过程. 这是一个完整 rubygems.org 镜像,你可以用此代替官

bundle install 找不到库文件,用 config 参数指定本地类库

在 FreeBSD Jail 中安装 Gitlab,执行 bundle install 时,有个类库文件找不到,最后修改 config 文件顺利通过. 出现的错误: Building nokogiri using packaged libraries. ----- libiconv is missing. please visit http://nokogiri.org/tutorials/installing_nokogiri.html for help with installing dep

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 such file -- sequel (LoadError) from /usr/local/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require' from dna_in.rb:2:in `<ma

有关MySQL索引的一点补充

索引算是MySQL里面一个相当重要的东西了,常见的概念网上到处都是,这里就不写出来了,主要写点自己在平时使用过程中的一点注意事项,以备后期自己查阅: - like '%xx' select * from tb1 where name like '%cn'; --未使用索引 select * from tb1 where name like 'cn%'; --使用索引 - 使用函数 --未使用索引 select * from tb1 where reverse(name) = 'Hwan'; --

关于爬虫Demo的一点补充

上一篇简单的Demo确实实现了一些爬虫的功能.但是距真正的搜索引擎爬虫确实想去甚远. 1.首先下载URL时,大多是维护一个DNS服务器,找到相应的IP在进行下载网页. 2.维护URL队列时,上篇程序属于纵向的深度遍历,所以维护队列会越来越大,这算是比较大的bug了.解决方法起线程,或者每个页面只抓取一个URL. 3,关于URL抓取和种子URL写的也比较简陋,好吧,原谅他只是个Demo. urllib2的库非常强大加入Header或者模仿cookies设置proxy等等... 先来说说urlope

20151217--Ajax的一点补充

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-