Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Curl 通过capistrano V3安装RVM,将垃圾扔进终端_Curl_Ssh_Capistrano_Rvm Capistrano - Fatal编程技术网

Curl 通过capistrano V3安装RVM,将垃圾扔进终端

Curl 通过capistrano V3安装RVM,将垃圾扔进终端,curl,ssh,capistrano,rvm-capistrano,Curl,Ssh,Capistrano,Rvm Capistrano,我正在尝试进行设置,这样当我有新的服务器时,我就可以不用映像而直接执行capistrano部署设置 我的问题很多,我认为这是由于我使用了CapistranoV3。例如,我的第一个想法是使用rvm capistrano gem,但我遇到了以下问题。我确实在deploy.rb文件和capfile文件中都包含了require“rvm/capistrano”以确保安全 cap staging rvm:install_rvm cap aborted! Don't know how to build tas

我正在尝试进行设置,这样当我有新的服务器时,我就可以不用映像而直接执行capistrano部署设置

我的问题很多,我认为这是由于我使用了CapistranoV3。例如,我的第一个想法是使用rvm capistrano gem,但我遇到了以下问题。我确实在deploy.rb文件和capfile文件中都包含了require“rvm/capistrano”以确保安全

cap staging rvm:install_rvm
cap aborted!
Don't know how to build task 'rvm:install_rvm'
然后我环顾四周,发现有一个capistrano rvm gem,看起来是专门为capistrano v3设计的,但它似乎还没有开发,并且有相同的问题,capistrano不理解rvm:installrvm

所以后来我决定尝试在任务本身中安装rvm,这样做

sudo "apt-get -y install curl"
execute "\curl -L https://get.rvm.io | bash"
execute "source ~/.rvm/scripts/rvm"
execute "rvm requirements"
execute "rvm install ruby"
execute "rvm use ruby --default"
execute "rvm rubygems current"
execute "gem install rails"
但我明白了,不知道为什么curl的字母cu会消失:

INFO [7e26eda7] Running /usr/bin/env rl -L https://get.rvm.io | bash on 192.168.1.126
DEBUG [7e26eda7] Command: rl -L https://get.rvm.io | bash
DEBUG [7e26eda7]        bash: $'\025rl': command not found
DEBUG [7e26eda7]
 INFO [7e26eda7] Finished in 0.006 seconds command successful.
 INFO [14e12c80] Running /usr/bin/env source ~/.rvm/scripts/rvm on 192.168.1.126
DEBUG [14e12c80] Command: source ~/.rvm/scripts/rvm
 INFO [14e12c80] Finished in 0.153 seconds command successful.
 INFO [a501984d] Running /usr/bin/env rvm requirements on 192.168.1.126
DEBUG [a501984d] Command: rvm requirements
cap aborted!
rvm requirements stdout: Nothing written
rvm requirements stderr: Nothing written
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/command.rb:94:in `exit_status='
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'
所以在谷歌搜索之后我试着

execute "curl -L get.rvm.io | bash -s stable --auto"
但作为回报,我得到了

 INFO [0e84ae63] Running /usr/bin/env source ~/.rvm/scripts/rvm on 192.168.1.126
DEBUG [0e84ae63] Command: source ~/.rvm/scripts/rvm
 INFO [0e84ae63] Finished in 0.139 seconds command successful.
 INFO [9e5a9f02] Running /usr/bin/env rvm requirements on 192.168.1.126
DEBUG [9e5a9f02] Command: rvm requirements
cap aborted!
rvm requirements stdout: Nothing written
rvm requirements stderr: Nothing written
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/command.rb:94:in `exit_status='
/home/hak8or/.rvm/gems/ruby-2.0.0-p247/gems/sshkit-0.0.34/lib/sshkit/backends/netssh.rb:125:in `block (4 levels) in _execute'
以及从curl命令中获得的大量数据。我假设RVM安装不正确

如果我只是让capistrano运行一个包含所有这些命令的脚本,那么我的终端窗口中也会有大量垃圾。当我在本地运行它时,这意味着我使用ssh连接到机器并运行它

\curl -L https://get.rvm.io | bash
rvm requirements
我没有问题。我认为这与它通过ssh连接运行有关,特别是与Capistrano的连接,但没有任何线索。我在一个完全更新的ubuntu服务器上的deploy用户上运行所有这些,出于测试目的,我将完全无密码sudo授予deploy用户

  • 报告rvm/capistrano的错误=>

  • 您正在ruby string中使用escape,这将成为垃圾,要使用shell escape,您需要在ruby中对其进行转义,因此命令如下:

     execute "\\curl -L https://get.rvm.io | bash"
    
  • 报告rvm/capistrano的错误=>

  • 您正在ruby string中使用escape,这将成为垃圾,要使用shell escape,您需要在ruby中对其进行转义,因此命令如下:

     execute "\\curl -L https://get.rvm.io | bash"
    

  • 下面是我用来构建jenkins服务器的完整安装Ruby函数。请记住,我使用Capistrano V2。享受

    task :install_ruby, roles => :app  do
      run "yum --exclude=*.i386 --exclude=*.i586 install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel libxml2-devel libxslt-devel"
      run "bash -s stable < <(curl -k -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)"
      run "source /etc/profile"  
      run "rvm install 1.9.3 --autolibs=enabled"
      run "rvm use 1.9.3 --default"   
      run "gem install capistrano", { :shell => 'bash'}
      run "gem install railsless-deploy", { :shell => 'bash'}
      run "gem install ntlm-http; true", { :shell => 'bash'}
      run "gem install domain_name", { :shell => 'bash'}
      run "gem install webrobots", { :shell => 'bash'}
      run "gem install mechanize", { :shell => 'bash'}
    end
    
    task:install\u ruby,roles=>:app do
    运行“yum--exclude=*.i386--exclude=*.i586安装-y gcc-c++修补程序readline readline devel zlib zlib-devel libyaml-devel libffi-devel libxml2-devel libxslt-devel”
    
    运行“bash-s stable<这是我完整的安装Ruby函数,我用它来构建jenkins服务器。请记住,我使用的是Capistrano V2。请欣赏

    task :install_ruby, roles => :app  do
      run "yum --exclude=*.i386 --exclude=*.i586 install -y gcc-c++ patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel libxml2-devel libxslt-devel"
      run "bash -s stable < <(curl -k -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)"
      run "source /etc/profile"  
      run "rvm install 1.9.3 --autolibs=enabled"
      run "rvm use 1.9.3 --default"   
      run "gem install capistrano", { :shell => 'bash'}
      run "gem install railsless-deploy", { :shell => 'bash'}
      run "gem install ntlm-http; true", { :shell => 'bash'}
      run "gem install domain_name", { :shell => 'bash'}
      run "gem install webrobots", { :shell => 'bash'}
      run "gem install mechanize", { :shell => 'bash'}
    end
    
    task:install\u ruby,roles=>:app do
    运行“yum--exclude=*.i386--exclude=*.i586安装-y gcc-c++修补程序readline readline devel zlib zlib-devel libyaml-devel libffi-devel libxml2-devel libxslt-devel”
    运行“bash-s stable”<