我目前正在使用Capistrano从我的本地计算机部署到一个开发服务器。dev服务器为我的项目提供了一个名为'vcc‘的gemset,但在互联网上很明显,Capistrano将其bundle安装到了shared/bundle中,而不是rvm gemset中。
当我进入项目时,创建一个.rvmrc文件并选择'vcc‘gemset非常容易。但是,此gemset不会作为部署的一部分进行更新。因此,我通常仍然使用'bundle exec‘来运行我的所有命令,它选择'shared/bundle’而不是rvm gemset。
我想要做的是让rvm gemset保持更新,这样当我进入项目时,就不必在所有事情之前运行bundle exec。我不确定做这件事最好的方法是什么。我唯一的想法是在'vcc‘gemset目录中创建一个指向'shared/bundle’目录的符号链接。我读到一些东西,rvm应该是自包含的,并且不会跟随/rvm目录之外的符号链接?
我已经看到可以让Capistrano部署到您的gemset上,但不推荐这样做。我同意让Capistrano处理get,让rvm处理ruby,我只是想摆脱"bundle exec“。也许有一种更简单的方法,不需要配置Capistrano或rvm?
发布于 2013-09-05 07:08:46
实际上,我们不推荐使用厂商提供的gem,因为它几乎没有什么问题,使用gemset会更安全。
rvm-capistrano已经建议您在https://github.com/wayneeseguin/rvm-capistrano#disabling-bundle---deployment-when-using-gemsets中禁用供应商提供的gem:
set :bundle_dir, ''
set :bundle_flags, '--system --quiet'这样,gem就会安装到gemset中,一切都会很好地工作。
https://stackoverflow.com/questions/18623538
复制相似问题