我尝试使用this指南将我的Rails应用项目部署到我的Digital Ocean vps。
当它说:
cap production deploy:check
我收到错误:
DEBUG [8906f2ab] Running /usr/bin/env [ ! -d ~/.rbenv/versions/2.1.2 ] on 178.62.204.53
DEBUG [8906f2ab] Command: [ ! -d ~/.rbenv/versions/2.1.2 ]
DEBUG [8906f2ab] Finished in 1.320 seconds with exit status 0 (successful).
ERROR rbenv: 2.1.2 is not installed or not found in ~/.rbenv/versions/2.1.2
我跑了:
rbenv install 2.1.2
导致:
Downloading ruby-2.1.2.tar.gz...
-> http://dqw8nmjcqpjn7.cloudfront.net/f22a6447811a81f3c808d1c2a5ce3b5f5f0955c68c9a749182feb425589e6635
Installing ruby-2.1.2...
Installed ruby-2.1.2 to /home/alucardu/.rbenv/versions/2.1.2
当我检查rbenv -v时,我得到:
rbenv 0.4.0-129-g7e0e85b
当我签入我的文件屏幕并转到/home/alucardu/.rbenv/versions/2.1.2
那里的内容时。
当我检查我的Ruby时,我得到了:
ruby 2.1.2p95 (2014-05-08 revision 45877) [i686-linux]
有人能指出我的问题所在吗?
答案 0 :(得分:2)
你在哪里运行rbenv install 2.1.2
命令?在本地还是在服务器上?
Capistrano需要在服务器上安装ruby
!
此外,您需要为要部署的用户安装ruby
。
您似乎遵循的教程建议使用root
用户进行部署(可能不是最佳做法),因此在这种情况下capistrano
会在root用户中查找ruby家庭目录/root/.rbenv...
所以"修复"是:
- 以ssh root@<server_ip>
为root用户登录服务器
- 现在,用rbenv install 2.1.2
如果您不想搞砸,我专门为此创建了一个capistrano-rbnev-install插件。该插件可确保您不再需要担心ruby版本。