在http://ruby.railstutorial.org/chapters/a-demo-app#top中看到的,使用bundle exec rake db:migrate的区别和好处是什么呢,
bundle exec 是什么意思,还可以用于其他途径吗?
1条回答 默认 最新
- horace_lee 2011-10-13 13:54关注
这个吧从头说话比较长
首先,你得知道bundle是干啥的
简单讲bundle就是为rails项目提供一个类似沙盒机制,沙盒有很多好处啦。简单讲,能保证主要是项目依赖的gem版本,rails 3呢就从gem变成core了
然后呢,bundle exec是干啥的
bundle -h 能看到
[quote] bundle exec(1) bundle-exec.1.html
Execute a script in the context of the current bundle[/quote]就说是为了维护工作环境,其实还是gem版本,bundle是拷Gemfile这个配置文件来维持统一的gem版本的。所以,你可以有多个项目使用相同的gem,但是不同的版本。
最后,说说你的这个例子命令里,有没有bundle exec的区别。
rake db:migrate是移植数据库啦。那么,这里实际是调用了一个rake的gem,所以,如果你的系统,如果有多个rake,比如,你系统是0.9但你在这个项目的Gemfile里写rake版本是0.8.7,项目多的时候完全可能,有些项目的有些gem版本就是没有升级。那么,写bundle exec会调用0.8.7的rake执行,不写的系统会默认调用最新的版本也就是0.9的rake。所以,也就是,有可能会出错了。
比较啰嗦凑合看
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 KeiI中头文件找不到怎么解决
- ¥15 QT6将音频采样数据转PCM
- ¥15 本地安装org.Hs.eg.dby一直这样的图片报错如何解决?
- ¥15 下面三个文件分别是OFDM波形的数据,我的思路公式和我写的成像算法代码,有没有人能帮我改一改,如何解决?
- ¥15 Ubuntu打开gazebo模型调不出来,如何解决?
- ¥100 有chang请一位会arm和dsp的朋友解读一个工程
- ¥50 求代做一个阿里云百炼的小实验
- ¥15 查询优化:A表100000行,B表2000 行,内存页大小只有20页,运行时3页,设计两个表等值连接的最简单的算法
- ¥15 led数码显示控制(标签-流程图)
- ¥20 为什么在复位后出现错误帧