>我目前正在使用 Capistrano 从本地计算机部署到开发服务器。 开发服务器为我的项目提供了一个名为"vcc"的 gemset,但正如互联网上明确指出的那样,Capistrano 将其捆绑包安装到 shared/bundle 而不是 rvm gemset 中。
制作一个 .rvmrc 文件并在我进入项目时选择"vcc"gemset 非常简单。 但是,此 gemset 不会作为部署的一部分进行更新。 所以我通常仍然使用"bundle exec"运行所有命令,它选择"共享/捆绑"而不是 rvm gemset。
我想做的是让 rvm gemset 保持更新,这样当我进入项目时,我就不必在一切之前运行 bundle exec。 我不确定最好的方法是什么。 我唯一的想法是在"vcc"gemset 目录中创建一个指向"共享/捆绑"目录的符号链接。 我读到一些 rvm 应该是自包含的,并且不会遵循/rvm 目录之外的符号链接?
我已经看到可以将 Capistrano 部署到您的宝石集,但不建议这样做。 我可以让 Capistrano 处理宝石和 rvm 处理红宝石,我只想摆脱"捆绑执行"。 也许有一种更简单的方法与配置 Capistrano 或 rvm 无关?
实际上,不建议使用供应商的宝石,它几乎没有问题,使用宝石集会更安全。
rvm-capistrano
已经建议您在此处禁用供应商的 gem https://github.com/wayneeseguin/rvm-capistrano#disabling-bundle---deployment-when-using-gemsets:
set :bundle_dir, ''
set :bundle_flags, '--system --quiet'
这样,宝石将安装在宝石组中,一切正常。