0

我目前正在使用 Capistrano 从本地机器部署到开发服务器。开发服务器为我的项目提供了一个名为“vcc”的 gemset,但正如互联网上所清楚的那样,Capistrano 将其捆绑安装到共享/捆绑而不是 rvm gemset。

制作 .rvmrc 文件并在我 cd 进入项目时选择“vcc”gemset 很容易。但是,此 gemset 不会作为部署的一部分进行更新。所以我通常仍然使用“bundle exec”运行我的所有命令,它选择“shared/bundle”而不是 rvm gemset。

我想要做的是让 rvm gemset 保持更新,这样当我 cd 进入项目时,我不必在一切之前运行 bundle exec 。我不确定最好的方法是什么。我唯一的想法是在“vcc”gemset 目录中创建一个指向“shared/bundle”目录的符号链接。我读到了 rvm 应该是自包含的,并且不会跟随 /rvm 目录之外的符号链接?

我已经看到可以将 Capistrano 部署到您的 gemset,但不建议这样做。我很乐意让 Capistrano 处理 gems,让 rvm 处理 ruby​​,我只是想摆脱“bundle exec”。也许有一种更简单的方法与配置 Capistrano 或 rvm 无关?

4

1 回答 1

0

实际上,不建议使用 vendored gems,它几乎没有问题,使用 gemset 会更安全。

rvm-capistrano已经建议您在此处禁用出售的宝石https://github.com/wayneeseguin/rvm-capistrano#disabling-bundle---deployment-when-using-gemsets

set :bundle_dir, ''
set :bundle_flags, '--system --quiet'

这样 gems 将安装在 gemset 中,一切都会正常工作。

于 2013-09-04T23:08:46.477 回答