使用bin/rake和bundle exec rake有什么区别.哪个是首选风格?
bin/rake db:migrate
bundle exec rake db:migrate
小智 -1
在典型系统上您有 3 个选项:
bin/rake db:migraterake db:migratebundle exec db:migrate第一个选项只是调用程序的路径rake,其启动器可以在隐藏文件夹中找到/bin。该启动器通常只是在您的/.rvm目录中找到的程序内容的符号链接。你可以通过执行找到它的原始位置$ which rake,这会给你类似的东西/home/ubuntu/.rvm/gems/ruby-2.2.3-p481@devonzuegel/bin/rake。
默认情况下,第二个选项与大多数系统上的第一个选项基本相同。这就是所谓的别名,基本上只是其他程序的速记命令。这在 shell 设置中的某处定义为类似alias rake='/bin/rake'. 不过,这个别名可能指向您计算机上的另一个程序,因此在相信我的话之前请先检查一下。
当您使用时,bundle exec您告诉捆绑程序确保仅Gemfile.lock加载您的 gem 及其指定版本。仅当您所在的目录包含 ,Gemfile.lock或者其父/祖父目录包含 时,此功能才有效。