0

首先,我在ubuntu上使用rvm 1.15.8(stable)通過wayne開發應用程序導軌,我將部署到我的vps。無法使用RVM部署應用程序Capistrano

這裏構建的歷史軌道上我的VPS應用:

  1. 使用用戶 「用戶」 在我的VPS安裝RVM,我從this試過了,和這裏的是rvm info

    [[email protected] ~]$ rvm info 
    
    ruby-1.9.3-p392: 
    
        system: 
        uname:  "Linux mydomain.com 2.6.32-358.6.1.el6.i686 #1 SMP Tue Apr 2 
    3 18:13:20 UTC 2013 i686 i686 i386 GNU/Linux" 
        system:  "centos/6.4/i386" 
        bash:  "/bin/bash => GNU bash, version 4.1.2(1)-release (i386-redhat-l 
    inux-gnu)" 
        zsh:   " => not installed" 
    
        rvm: 
        version:  "rvm 1.19.6 (stable) by Wayne E. Seguin <[email protected] 
    m>, Michal Papis <[email protected]> [https://rvm.io/]" 
        updated:  "16 hours 9 minutes 44 seconds ago" 
    
        ruby: 
        interpreter: "ruby" 
        version:  "1.9.3p392" 
        date:   "2013-02-22" 
        platform:  "i686-linux" 
        patchlevel: "2013-02-22 revision 39386" 
        full_version: "ruby 1.9.3p392 (2013-02-22 revision 39386) [i686-linux]" 
    
        homes: 
        gem:   "/usr/local/rvm/gems/ruby-1.9.3-p392" 
        ruby:   "/usr/local/rvm/rubies/ruby-1.9.3-p392" 
    
        binaries: 
        ruby:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby" 
        irb:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/irb" 
        gem:   "/usr/local/rvm/rubies/ruby-1.9.3-p392/bin/gem" 
        rake:   "/usr/local/rvm/gems/ruby-1.9.3-p392/bin/rake" 
    
        environment: 
        PATH:   "/usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/r 
    [email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:/usr/local/r 
    vm/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user/bin" 
        GEM_HOME:  "/usr/local/rvm/gems/ruby-1.9.3-p392" 
        GEM_PATH:  "/usr/local/rvm/gems/ruby-1.9.3-p392:/usr/local/rvm/gems/ruby- 
    [email protected]" 
        MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-1.9.3-p392" 
        IRBRC:  "/usr/local/rvm/rubies/ruby-1.9.3-p392/.irbrc" 
        RUBYOPT:  "" 
        gemset:  "" 
    
  2. 我'm使用kloxo控制面板爲我的vps目錄根上/home/admin/myapp/public

  3. 我會部署一個這裏Ð是deploy.rb

require "bundler/capistrano" 
require "rvm/capistrano" 

server "xxx.xxx.xxx.xxx", :web, :app, :db, primary: true 

set :bundle_cmd, "/usr/local/rvm/gems/[email protected]" 
set :bundle_dir, "/usr/local/rvm/gems/ruby-1.9.3-p392" 
set :rvm_ruby_string, EVN['GEM_HOME'].gsub(/.*\?/,"") 
set :rvm_type, :user 

set :default_environment, { 
    'PATH' => "/usr/local/rvm/gems/ruby-1.9.3-p392/bin:/usr/local/rvm/gems/r 
[email protected]/bin:/usr/local/rvm/rubies/ruby-1.9.3-p392/bin:/usr/local/r 
vm/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user/bin", 
    'RUBY_VERSION' => 'ruby 1.9.3', 
    'GEM_HOME' => "/usr/local/rvm/gems/ruby-1.9.3-p392", 
    'GEM_PATH' => "/usr/local/rvm/gems/ruby-1.9.3-p392:/usr/local/rvm/gems/ruby- 
[email protected]", 
    'BUNDLE_PATH' => "/usr/local/rvm/gems/ruby-1.9.3-p392" 
} 

set :application, "myapp" 
set :user, "user" 
set :deploy_to, "/home/admin/#{application}" 
set :deploy_via, :remote_cache 
set :use_sudo, false 

set :scm, "git" 
set :repository, "[email protected]:myuser/#{application}.git" 
set :branch, "master" 

default_run_options[:pty] = true 
ssh_options[:forward_agent] = true 
after "deploy", "deploy:cleanup" # keep only the 

我嘗試運行cap deploy:setup,我得到一個錯誤

executing "mkdir -p /home/admin/myapp /home/admin/myapp/release /home/admin/myapp/shared /home/admin/myapp/shared/system /home/admin/myapp/shared/log /home/admin/myapp/shared/pids" 
    servers: ["xxx.xxx.xxx.xx"] 
Password: 
    [xxx.xxx.xxx.xxx] executing command 
** [out :: xxx.xxx.xxx.xxx] env : /home/user/.rvm/bin/rvm-shell: No such file or directory 
failed : "env PATH: .........etc" 

能否請你幫我糾正我的腳步,我的代碼?

回答

0

嘗試將rvm-capistrano的要求移動到文件末尾。我最近也這樣做了。

當您正在使用RVM你不需要設置捆綁CMD,bundle_dir,或default_environment(除非也許你正在做別的東西?

它也像你正試圖檢測您使用在本地部署中使用,這樣做set :rvm_ruby_string, :local紅寶石版本是所有你需要

+0

沒有變化,仍是同樣的錯誤.. – 2013-05-05 13:13:53

+0

RVM Capistrano的會讀rvm_path的位置' $ HOME/.rvm',而我的rvm路徑位於'/ usr/local/rvm /',所以我應該把默認的rvm_path設置成'/ usr/local/rvm /'。現在,我的問題找不到rmv-shell的目錄。 – 2013-05-05 14:08:08

+2

由於您使用的是系統級ruby,因此您需要將rvm_type設置爲:system – cpuguy83 2013-05-05 14:21:33

0

對於我來說,

set :rvm_ruby_string, :local #doesn't work 

沒有工作,我不得不用明確的版本:

set :rvm_ruby_string, "2.1.2" #works 
  • Capistrano的(2.15.5)
  • RVM-Capistrano酒店(1.5.2)
相關問題