• #1 楼 @shinefine 不是的,这个 monthly 是指月报,有很多其它的统计指标关联着,所以 monthly 还是要保留的。,月报下面还有周报 weekly,weekly 下面有个人周报 personal_weekly,personal_weekly 下面有 overtimes(加班明细)。 当然你说直接建立 monthly_overtimes,增加一个 month 的字段去标记是哪个月,也是可以的。但即使是直接关联,不用 nest_attributes, 好像我还是想不到怎样在一个页面一个表格中,批量修改同一个 model 的 N 行数据。糊涂了。你有哪些资料可以推荐一下吗? 谢谢了:)

  • 大家都用什么备份方案? at 2014年11月25日

    #28 楼 @cn_boris 谢谢:)我研究一下……

  • 大家都用什么备份方案? at 2014年11月24日

    #26 楼 @cn_boris 我们这边是通信运营商,自家好像有很多服务器,所以生产环境肯定不用云。但备份我是想着不要放本地的好。我有又拍云的账号,所以到时看看吧,主要我不懂写什么接口什么的,dropbox 和 s3 这种现成的又被墙……

  • 大家都用什么备份方案? at 2014年11月24日

    #18 楼 @cn_boris 也是用 backup 吗?要写什么接口之类吗?

  • 大家都用什么备份方案? at 2014年11月23日

    #19 楼 @Yujing_Z 国内的服务器,不怕被墙么?

  • 大家都用什么备份方案? at 2014年11月22日

    #16 楼 @gihnius 这不被墙吗?

  • 大家都用什么备份方案? at 2014年11月21日

    #4 楼 @Rei 我在跟你的帖子做,用 backup+whenever+local 的方案。我的 app 没弄 mail 部分,那就不能在备份失败时通知我,是吗?

  • 大家都用什么备份方案? at 2014年11月21日

    #4 楼 @Rei 我在跟你的帖子做,用 backup+whenever+local 的方案。我的 app 没弄 mail 部分,那就不能在备份失败时通知我,是吗?

  • 大家都用什么备份方案? at 2014年11月21日

    #6 楼 @huihen 阿里云要钱啊!RDS 是什么意思?

  • 大家都用什么备份方案? at 2014年11月21日

    #2 楼 @Rei 可是我现在用的是单独的服务器,不是云主机……另外,你那篇两年前的方案现在不好用了么?

  • #13 楼 @flowerwrong #18 楼 @jimrokliu 额,我手动把 database.yml 复制到 shared 下了…… 是复制不是移动,因为 rails 本身好像是会回到原来的 config 位置找的,另外设置貌似也有点复制,我就先让它同时存在了,这样好吗?

  • #13 楼 @flowerwrong #18 楼 @jimrokliu 现在执行的命令应该是

    cap production deploy:check:linked_files
    

    提示的是:

    file /var/www/weekly.com/shared/config/database.yml does not exist
    

    我手动复制过去好吗?还是说应该在哪里设置一下的?

  • #13 楼 @flowerwrong
    另外,my_property: :my_value,这句是干什么的? 我不知道从哪抄了句:

    server 'xxx.xxx.xxx.xxx', user: 'root', roles: %w{web app db}, primary: true
    
    

    但我也不知道 primary: true 是干什么的……

  • #13 楼 @flowerwrong 终于前进了一点点。 现在发现之前的两三个小问题,一个是

    set :rvm_custom_path, '/usr/local/rvm'  # only needed if not detected
    

    而我本来的地址可能写的不对,写了"/usr/local/rvm/bin/rvm"

    另一个是

    set :rvm_ruby_version, '2.1.2'      # Defaults to: 'default'
    

    我原来写的是 '2.1.2p95'

    现在提示的新问题是:

    ERRORlinked file /var/www/weekly.com/shared/config/database.yml does not exist on xxx.xxx.xxx.xxx
    cap aborted!
    

    但哪个放在 share 难道不应该是 capinstrano 自己搞的吗?我要自己复制过去?

  • #13 楼 @flowerwrong 终于前进了一点点。 现在发现之前的两三个小问题,一个是

    set :rvm_custom_path, '/usr/local/rvm'  # only needed if not detected
    

    而我本来的地址可能写的不对,写了"/usr/local/rvm/bin/rvm"

    另一个是

    set :rvm_ruby_version, '2.1.2'      # Defaults to: 'default'
    

    我原来写的是 '2.1.2p95'

    现在提示的新问题是:

    ERRORlinked file /var/www/weekly.com/shared/config/database.yml does not exist on xxx.xxx.xxx.xxx
    cap aborted!
    

    但哪个放在 share 难道不应该是 capinstrano 自己搞的吗?我要自己复制过去?

  • #13 楼 @flowerwrong 终于前进了一点点。 现在发现之前的两三个小问题,一个是

    set :rvm_custom_path, '/usr/local/rvm'  # only needed if not detected
    

    而我本来的地址可能写的不对,写了"/usr/local/rvm/bin/rvm"

    另一个是

    set :rvm_ruby_version, '2.1.2'      # Defaults to: 'default'
    

    我原来写的是 '2.1.2p95'

    现在提示的新问题是:

    ERRORlinked file /var/www/weekly.com/shared/config/database.yml does not exist on xxx.xxx.xxx.xxx
    cap aborted!
    

    但哪个放在 share 难道不应该是 capinstrano 自己搞的吗?我要自己复制过去?

  • #10 楼 @flowerwrong 请教一下,deploy/production.rb 中

    server 'xxx.xxx.xxx.xxx',
           user: 'root',
           roles: %w{web app},
           ssh_options: {
               user: 'root', # overrides user setting above
               keys: %w(/Users/yebiying/.ssh/yby),
               forward_agent: false,
               auth_methods: %w(publickey password)
              # password: 'please use keys'
            }
    

    那个 keys , 是写的本机的私钥的地址,还是服务器中 publickey 的地址?

  • 是 capfile 吧?加了的

    # Load DSL and Setup Up Stages
    require 'capistrano/setup'
    
    # Includes default deployment tasks
    require 'capistrano/deploy'
    
    # Includes tasks from other gems included in your Gemfile
    require 'capistrano/rvm'
    require 'capistrano/bundler'
    require 'capistrano/rails/assets'
    require 'capistrano/rails/migrations'
    require 'capistrano/passenger'
    
    
    # Loads custom tasks from `lib/capistrano/tasks' if you have any defined.
    Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
    

    但 deploy.rb 中,

    # set :rvm_type, :system                     # Defaults to: :auto
    set :rvm_ruby_version, '2.1.2p95'
    set :rvm_roles, [:app, :web, :db]
    

    在 deploy/production.rb 中

    server 'xxx.xxx.xxx.xxx',
           user: 'root',
           roles: %w{web app},
           ssh_options: {
               user: 'root', # overrides user setting above
               keys: %w(/Users/yebiying/.ssh/yby),
               forward_agent: false,
               auth_methods: %w(publickey password)
              # password: 'please use keys'
            }
    

    主要我还是没看出是哪里有错,

    SSHKit::Runner::ExecuteError: Exception while executing on host xxx.xxx.xxx.xxx: ruby exit status: 2
    

    好像都 google 不到 status:2 是指什么……

  • #8 楼 @flowerwrong 不懂怎么玩啊。反正我现在按说服务器里刚已经 git pull , 并 bundle install,已经用了 cap 3 了。我还 touch tmp/restart.txt,如果平时手动更新也就这么个步骤了吧?

    但还是同样出错。

    $ cap production deploy:check --trace
    
    
    ** Invoke production (first_time)
    ** Execute production
    ** Invoke load:defaults (first_time)
    ** Execute load:defaults
    ** Invoke rvm:hook (first_time)
    ** Execute rvm:hook
    DEBUG[e614ad80] Running /usr/bin/env [ -d ~/.rvm ] on xxx.xxx.xxx.xxx
    DEBUG[e614ad80] Command: [ -d ~/.rvm ]
    DEBUG[e614ad80] Finished in 5.743 seconds with exit status 1 (failed).
    DEBUG[ad2818c3] Running /usr/bin/env [ -d /usr/local/rvm ] on xxx.xxx.xxx.xxx
    DEBUG[ad2818c3] Command: [ -d /usr/local/rvm ]
    DEBUG[ad2818c3] Finished in 1.495 seconds with exit status 0 (successful).
    ** Invoke rvm:check (first_time)
    ** Execute rvm:check
    DEBUG[88e3ae89] Running /usr/local/rvm/bin/rvm version on xxx.xxx.xxx.xxx
    DEBUG[88e3ae89] Command: /usr/local/rvm/bin/rvm version
    DEBUG[88e3ae89]     rvm 1.25.34 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
    DEBUG[88e3ae89] Finished in 1.899 seconds with exit status 0 (successful).
    rvm 1.25.34 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
    DEBUG[ef7d1ca6] Running /usr/local/rvm/bin/rvm current on xxx.xxx.xxx.xxx
    DEBUG[ef7d1ca6] Command: /usr/local/rvm/bin/rvm current
    DEBUG[ef7d1ca6]     ruby-2.1.2
    DEBUG[ef7d1ca6] Finished in 1.519 seconds with exit status 0 (successful).
    ruby-2.1.2
    DEBUG[8e5f9ffa] Running /usr/local/rvm/bin/rvm 2.1.2p95 do ruby --version on xxx.xxx.xxx.xxx
    DEBUG[8e5f9ffa] Command: /usr/local/rvm/bin/rvm 2.1.2p95 do ruby --version
    cap aborted!
    SSHKit::Runner::ExecuteError: Exception while executing on host xxx.xxx.xxx.xxx: ruby exit status: 2
    ruby stdout: Nothing written
    ruby stderr: Nothing written
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/command.rb:97:in `exit_status='
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:148:in `block (5 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:551:in `call'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:551:in `do_request'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:561:in `channel_request'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:221:in `preprocess'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:205:in `process'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `block in loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:269:in `wait'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:170:in `block (3 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:514:in `call'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:514:in `do_open_confirmation'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:545:in `channel_open_confirmation'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:221:in `preprocess'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:205:in `process'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `block in loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:172:in `block (2 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:186:in `with_ssh'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:131:in `block in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:128:in `tap'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:128:in `_execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:77:in `capture'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-rvm-0.1.2/lib/capistrano/tasks/rvm.rake:11:in `block (3 levels) in <top (required)>'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `run'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/runners/parallel.rb:13:in `block (2 levels) in execute'
    SSHKit::Command::Failed: ruby exit status: 2
    ruby stdout: Nothing written
    ruby stderr: Nothing written
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/command.rb:97:in `exit_status='
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:148:in `block (5 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:551:in `call'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:551:in `do_request'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:561:in `channel_request'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:221:in `preprocess'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:205:in `process'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `block in loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:269:in `wait'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:170:in `block (3 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:514:in `call'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/channel.rb:514:in `do_open_confirmation'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:545:in `channel_open_confirmation'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:465:in `dispatch_incoming_packets'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:221:in `preprocess'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:205:in `process'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `block in loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/net-ssh-2.9.1/lib/net/ssh/connection/session.rb:169:in `loop'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:172:in `block (2 levels) in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:186:in `with_ssh'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:131:in `block in _execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:128:in `tap'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:128:in `_execute'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:77:in `capture'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/capistrano-rvm-0.1.2/lib/capistrano/tasks/rvm.rake:11:in `block (3 levels) in <top (required)>'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `instance_exec'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/backends/netssh.rb:54:in `run'
    /Users/yebiying/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/sshkit-1.5.1/lib/sshkit/runners/parallel.rb:13:in `block (2 levels) in execute'
    Tasks: TOP => rvm:check
    
    
  • #6 楼 @flowerwrong 我本机的已经是 cap 3 了。服务器的我这两天 commit 的没有更新,那看来我在第一次用 cap 之前,还是得先手动更新下次? 我现在进服务器手动 git pull 最新代码了。

  • #3 楼 @bestjane #2 楼 @flowerwrong 已经在服务器加上我本机的 SSH KEY,因为我现在输入 ssh [email protected],不用密码就能直接进入服务器了。 可是,运行

    cap production deploy:check
    

    会出现

    DEBUG[9b8c96d0] Running /usr/bin/env [ -d ~/.rvm ] on xxx.xxx.xxx.xxx
    DEBUG[9b8c96d0] Command: [ -d ~/.rvm ]
    DEBUG[9b8c96d0] Finished in 25.961 seconds with exit status 1 (failed).
    DEBUG[2447555d] Running /usr/bin/env [ -d /usr/local/rvm ] on xxx.xxx.xxx.xxx
    DEBUG[2447555d] Command: [ -d /usr/local/rvm ]
    DEBUG[2447555d] Finished in 6.133 seconds with exit status 0 (successful).
    DEBUG[7985b73b] Running /usr/local/rvm/bin/rvm version on xxx.xxx.xxx.xxx
    DEBUG[7985b73b] Command: /usr/local/rvm/bin/rvm version
    DEBUG[7985b73b]     rvm 1.25.34 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
    DEBUG[7985b73b] Finished in 7.365 seconds with exit status 0 (successful).
    rvm 1.25.34 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]
    DEBUG[dcd2a0bb] Running /usr/local/rvm/bin/rvm current on xxx.xxx.xxx.xxx
    DEBUG[dcd2a0bb] Command: /usr/local/rvm/bin/rvm current
    DEBUG[dcd2a0bb]     ruby-2.1.2
    DEBUG[dcd2a0bb] Finished in 7.068 seconds with exit status 0 (successful).
    ruby-2.1.2
    DEBUG[b8c3e406] Running /usr/local/rvm/bin/rvm 2.1.2p95 do ruby --version on xxx.xxx.xxx.xxx
    DEBUG[b8c3e406] Command: /usr/local/rvm/bin/rvm 2.1.2p95 do ruby --version
    cap aborted!
    SSHKit::Runner::ExecuteError: Exception while executing on host xxx.xxx.xxx.xxx: ruby exit status: 2
    ruby stdout: Nothing written
    ruby stderr: Nothing written
    
    SSHKit::Command::Failed: ruby exit status: 2
    ruby stdout: Nothing written
    ruby stderr: Nothing written
    
    Tasks: TOP => rvm:check
    

    没看懂这是哪里出错了……

  • 牛!简洁清晰易懂,赞!

  • #2 楼 @flowerwrong 我平时 push 代码到 github,bitbucket 都是用 SSH 的。服务器之前 pull 代码也是用 SSH 通过验证的。不过我没试过从自己机子到服务器用 SSH,我折腾下……

  • 看标题就感觉好牛 X 了!

  • 哥们开玩笑吧?周四下午,谁有时间去啊?为什么不是周末啊? 本来挺感兴趣的,一看这时间,O 了……

  • rubygems 网站更新了 at 2014年11月19日

    封面不好,但内页更清晰更清新,明显又是移动优先的设计了。https://rubygems.org/gems/capistrano

  • #20 楼 @hanluner 不能在原有 nginx 上加 module,你看这段

    Nginx is a different from other web servers in that it does not support loadable modules. The only way to extend Nginx is to recompile it entirely from source. Since Phusion Passenger consists of some external executables plus an Nginx module, you must recompile Nginx when first installing Phusion Passenger, but also when upgrading Nginx itself or when upgrading the Phusion Passenger version.

    If you’ve already installed Nginx before, but without Phusion Passenger support, then you should uninstall it first. You don’t have to, because you can also install another Nginx with Phusion Passenger support, in parallel to the existing Nginx. We merely recommend uninstalling the existing in order to avoid user confusion, but the choice is yours.