使用Capistrano部署Ruby on Rails应用程序 - cap deploy:setup失败

4

我在这个问题上浪费了几天时间,我相信这是一个简单的解决方案,请帮忙! 当我从我的笔记本电脑用户账户运行$ cap deploy:setup时,我会得到下面粘贴的错误。看来RVM有问题,但我知道已安装,也预先安装了我的应用程序将需要的所有宝石。是否有其他人遇到类似的错误?任何帮助都将不胜感激!

  * executing `deploy:setup'
  * executing "mkdir -p /usr/local/www/sites/arbiter.nullpointer.ca/public/ /usr/local/www/sites/arbiter.nullpointer.ca/public/releases /usr/local/www/sites/arbiter.nullpointer.ca/public/shared /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/system /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/log /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/pids &&  chmod g+w /usr/local/www/sites/arbiter.nullpointer.ca/public/ /usr/local/www/sites/arbiter.nullpointer.ca/public/releases /usr/local/www/sites/arbiter.nullpointer.ca/public/shared /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/system /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/log /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/pids"
    servers: ["arbiter.nullpointer.ca"]
    [arbiter.nullpointer.ca] executing command
 ** [out :: arbiter.nullpointer.ca] 
 ** [out :: arbiter.nullpointer.ca] $rvm_path (system_wide) does not exist.
*** [err :: arbiter.nullpointer.ca] /usr/local/rvm/scripts/rvm: line 154: __rvm_teardown: command not found
*** [err :: arbiter.nullpointer.ca] /usr/local/rvm/bin/rvm-shell: line 74: rvm: command not found
*** [err :: arbiter.nullpointer.ca] Error: RVM was unable to use 'default'
    command finished
failed: "rvm_path=system_wide /usr/local/rvm/bin/rvm-shell 'default' -c \"mkdir -p /usr/local/www/sites/arbiter.nullpointer.ca/public/ /usr/local/www/sites/arbiter.nullpointer.ca/public/releases /usr/local/www/sites/arbiter.nullpointer.ca/public/shared /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/system /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/log /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/pids &&  chmod g+w /usr/local/www/sites/arbiter.nullpointer.ca/public/ /usr/local/www/sites/arbiter.nullpointer.ca/public/releases /usr/local/www/sites/arbiter.nullpointer.ca/public/shared /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/system /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/log /usr/local/www/sites/arbiter.nullpointer.ca/public/shared/pids\"" on arbiter.nullpointer.ca

你使用的RVM版本是什么?由于这个问题似乎与此相关,因此更新可能是值得的:https://github.com/wayneeseguin/rvm/issues/586 - Christopher Manning
嗨,感谢您的回复。我正在使用rvm 1.10.2。 - J K
1
看起来是您配置的问题,请发布rvm的“set”设置。 - mpapis
这个问题似乎已经意外解决了。不太确定我做了什么...但现在我又出现了另一个错误。我将发布包含新错误的帖子链接。 - J K
这是我的新错误:http://stackoverflow.com/questions/9252200/type-error-during-capistrano-deploysetup - J K
2个回答

15

虽然我的安装提示错误,但我遇到了这个问题:

out :: server]
** [out :: server] $rvm_path (/home/nebula/.rvm/) does not exist.
*** [err :: server] /usr/local/rvm/scripts/rvm: line 185: __rvm_teardown: command not found
*** [err :: server] /usr/local/rvm/bin/rvm: line 52: /home/nebula/.rvm//scripts/rvm: No such file or directory
*** [err :: server] Error sourcing RVM!
*** [err :: server] Error: RVM was unable to use 'ruby-1.9.3-p392'

我正在使用rvm进行系统范围内的安装(标准安装至/usr/local/rvm)。在我的Capfile文件中添加以下内容解决了这个问题:

require 'capistrano/rvm'
set :rvm_type, :system
set :rvm_path, "/usr/local/rvm"

确实有效!作为附注,我要补充一下,我最初使用了 set :rvm_bin_path, "/usr/local/rvm/bin",虽然这个信息是正确的(我确实有一个包含可执行文件的 bin 文件夹),但它仍然给了我相同的错误。当我将该行更改为 set :rvm_path, "/usr/local/rvm" 时,它完美地运行了。 - SylvainB

0
错误提示:RVM 无法使用 'default' gemset。这意味着 RVM 找不到要使用的名为 'default' 的 gemset。请检查您的 deploy.rb 文件中以下行:
set :rvm_ruby_string, 'gemset-name-here'  => put a valid gemset here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接