直接从github(:git => 'whatever'
)安装gems时出现了一个有趣的错误。
首先,当我删除所有宝石并运行捆绑安装命令时,我会得到以下内容:
Installing gem1 Installing gem2 Using gem3 (the one from github)
然后当我想查看我的内容时,我会使用宝石列表看到以下内容:
gem1 (x.x.x) gem2 (y.y.y)
没有gem3 ......现在,靠近文件系统,我看到以下内容:
ls -l ~/.rvm/gems/ruby-1.9.3-p125/gems gem1 gem2
那么宝石3在哪里?不是我期待它的地方:
ls -l ~/.rvm/gems/ruby-1.9.3-p125/bundler/gems gem3-213213213
所以它属于bundler / gems并且 gem list 不可见......并且通过Capistrano部署可以看到:
git://github.com/author/gem3.git (at master) is not checked out. Please run `bundle install`
我更担心卡皮斯特拉诺无法部署......任何人都有任何线索?
答案 0 :(得分:1)
Bundler从您系统上的各种来源获取宝石。只要它们是正确的版本,它就会将它们拉进去。
部署时,它具有更严格/保守的行为。
从bundle help install
开始,在指定--deployment
标志时使用的部署模式部分中:
Gems安装到vendor / bundle而非您的默认系统位置 灰
在开发过程中,分享您使用的宝石很方便 应用程序与其他应用程序和其他脚本运行 系统
在部署中,隔离是一个更重要的默认设置。此外, 部署应用程序的用户可能没有权限 将gems安装到系统,或者Web服务器可能没有perms- 请阅读它们。
因此,捆绑安装 - 部署将宝石安装到 应用程序中的dor / bundle目录。这可能会被覆盖 使用--path选项。