卡皮斯特拉诺从rvm拉出了错误的红宝石版本

时间:2018-01-27 20:11:52

标签: ruby-on-rails rvm capistrano

我有一个rails 5 app。我试图寻找内存泄漏,它开辟了一堆蠕虫。其中一个蠕虫是rvm和deploy。我没有

rvm_ruby_string

设置项目中的任何位置。如果我转到项目目录,并执行

bundle exec ruby --version

ruby --version

都会导致

ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]

然而,如果我这样做

cap staging deploy

你可以看到它以某种方式选择了错误的版本:

DEBUG [778e15cb] Running /usr/bin/env which passenger as deploy@xxxx
DEBUG [778e15cb] Command: /usr/bin/env which passenger
DEBUG [778e15cb]    /usr/bin/passenger
DEBUG [778e15cb] Finished in 0.710 seconds with exit status 0 (successful).
DEBUG [0da5c891] Running [ -d ~/.rvm ] as xxx
DEBUG [0da5c891] Command: [ -d ~/.rvm ]
DEBUG [0da5c891] Finished in 0.101 seconds with exit status 0 (successful).
DEBUG [f2734c3e] Running ~/.rvm/bin/rvm version as 
xxx
DEBUG [f2734c3e] Command: ~/.rvm/bin/rvm version
DEBUG [f2734c3e]    rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, 
Wayne E. 
Seguin [https://rvm.io/]
DEBUG [f2734c3e] Finished in 0.268 seconds with exit status 0 (successful).
rvm 1.29.1 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin 
[https://rvm.io/]
DEBUG [a2e3d82a] Running ~/.rvm/bin/rvm current as xx
DEBUG [a2e3d82a] Command: ~/.rvm/bin/rvm current
DEBUG [a2e3d82a]    ruby-2.5.0

现在,如果我只是试图通过将以下内容复制并粘贴到命令行来模仿capistrano所说的内容:

~/.rvm/bin/rvm current

我得到了

ruby-2.3.1

所以,我很难过。 Capistrano从哪里拉出rvm var?

1 个答案:

答案 0 :(得分:0)

您可能在运行cap staging deploy时以不同的用户身份运行ruby --version

根据capistrano输出,您正在使用deploy用户进行部署。如果是这种情况,则需要将ruby 2.3.1安装为deploy用户,并将2.3.1设置为"默认和当前"。

您可以测试我的ruby --version运行deploy用户和您第一次运行它的其他用户。