Mina: configuração rvm_path não pega

Criado em 11 jun. 2013  ·  26Comentários  ·  Fonte: mina-deploy/mina

Meu servidor possui uma instalação de rvm em todo o sistema em / usr / local / rvm / scripts / rvm.

quando tento defini-lo no meu deploy.rb conforme abaixo

conjunto: rvm_path, "/ usr / local / rvm / scripts / rvm"

não está sendo configurado e quando tento implantar, ele falha com a mensagem de erro abaixo

! Ruby Version Manager não encontrado
! Se o RVM estiver instalado, verifique sua configuração: rvm_path.

Eu também tentei com set_default
set_default: rvm_path, "/ usr / local / rvm / scripts / rvm"

Mas o problema ainda está lá.

quando tentei codificar o caminho no arquivo abaixo da gema, funcionou sem problemas:
https://github.com/nadarei/mina/blob/master/lib/mina/rvm.rb

Abaixo está a modificação:

linha original:
set_default: rvm_path, "$ HOME / .rvm / scripts / rvm"

linha codificada por mim:
set_default: rvm_path, "/ usr / local / rvm / scripts / rvm"

Então, agora funciona, mas codificar o caminho não é uma solução para mim ou para qualquer outra pessoa.

você pode me orientar sobre o que há de errado aqui ....

Eu vi a documentação online de todas as configurações possíveis (http://nadarei.co/mina/settings/) e descobri que você não listou rvm_path lá.

a gema não suporta esta configuração atualmente .. ???

Comentários muito úteis

use o caminho rvm_use_path
set :rvm_use_path, '/usr/local/rvm/scripts/rvm'

Todos 26 comentários

Recebo o mesmo erro e pude ver o rvm no caminho. Você conseguiu fazer isso funcionar?

wow umm então mesmo problema .... alguém com soluções?

Edit: umm então na verdade eu acabei de fazer funcionar ... Eu aparentemente escrevi algo errado -.-. Alarme falso!

Mesmo aqui :(

Aqueles que o fizeram funcionar, podem me dizer o que o fez funcionar.
Na verdade, devido ao problema de RVM acima, mudei para Capistrano para automatizar minha implantação.

Acabei tendo que usar o caminho fornecido quando você faz rvm info . Isso parece funcionar.

Edit: Eu estava enganado. Não é which rvm , você deve executar rvm info e poderá obter o caminho do rvm. Você ainda precisa anexar /scripts/rvm ao final do caminho obtido com rvm info

Eu tenho exatamente o mesmo problema. Alguém resolveu? Codifiquei set_default :rvm_path, "/usr/local/rvm/scripts/rvm" mas não tive sorte :(

@zolzaya tenho certeza que o caminho codificado deve ser algo /usr/local/.rvm/scripts/rvm . Verifique o. na frente do primeiro rvm, é sorrateiro.

Obrigado por responder. Mas não funciona para mim :(. Como encontrar esse caminho? Eu corro which rvm . Ele me mostra /usr/local/rvm/bin/rvm

hmm desculpe, o comando é na verdade rvm info e você terá que seguir /scripts/rvm até o final do caminho que você obteve de rvm info . Embora pareça que você está no caminho certo. que tipo de erro você está recebendo?

Aqui, a saída completa do comando rvm info :

root<strong i="7">@user</strong>:~# rvm info

[email protected]:

  system:
    system:      "ubuntu/13.10/x86_64"
    bash:        "/bin/bash => GNU bash, version 4.2.45(1)-release (x86_64-pc-linux-gnu)"
    zsh:         " => not installed"

  rvm:
    version:      "rvm 1.25.18 (stable) by Wayne E. Seguin <[email protected]>, Michal Papis <[email protected]> [https://rvm.io/]"
    updated:      "2 days 21 hours 49 minutes 14 seconds ago"
    path:         "/usr/local/rvm"

  ruby:
    interpreter:  "ruby"
    version:      "2.0.0p353"
    date:         "2013-11-22"
    platform:     "x86_64-linux"
    patchlevel:   "2013-11-22 revision 43784"
    full_version: "ruby 2.0.0p353 (2013-11-22 revision 43784) [x86_64-linux]"

  homes:
    gem:          "/usr/local/rvm/gems/[email protected]"
    ruby:         "/usr/local/rvm/rubies/ruby-2.0.0-p353"

  binaries:
    ruby:         "/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/ruby"
    irb:          "/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/irb"
    gem:          "/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/gem"
    rake:         "/usr/local/rvm/rubies/ruby-2.0.0-p353/bin/rake"

  environment:
    PATH:         "/usr/local/rvm/gems/[email protected]/bin:/usr/local/rvm/gems/ruby-2.0.0-p353@global/bin:/usr/local/rvm/rubies/ruby-2.0.0-p353/bin:/usr/local/rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
    GEM_HOME:     "/usr/local/rvm/gems/[email protected]"
    GEM_PATH:     "/usr/local/rvm/gems/[email protected]:/usr/local/rvm/gems/ruby-2.0.0-p353@global"
    MY_RUBY_HOME: "/usr/local/rvm/rubies/ruby-2.0.0-p353"
    IRBRC:        "/usr/local/rvm/rubies/ruby-2.0.0-p353/.irbrc"
    RUBYOPT:      ""
    gemset:       "rails-4.1"

Não consigo encontrar /scripts/rvm nesse resultado. BTW, estou recebendo os erros abaixo:

 !     Ruby Version Manager not found
 !     If RVM is installed, check your :rvm_path setting.

 !     Command failed.
       Failed with status 1

ele mostra que o caminho do seu rvm é /usr/local/rvm , você apenas tem que adicionar /scripts/rvm ao final disso. Só sei que funciona no meu caso, mas não tenho um bom entendimento. Parece que você escolheu o caminho certo inicialmente. Qual é o erro que você está obtendo para que não funcione?

Não funciona :( O erro é exatamente o mesmo Ruby Version Manager not found . A propósito, obrigado pelo conselho :)

Não tenho certeza do que mais olhar. Se você quiser, pode colocar seu arquivo deploy.rb no pastebin e vinculá-lo aqui. A única coisa em que consigo pensar é ter certeza de que require 'mina/rvm' comentou. Também na máquina de destino, só quero confirmar se você tem o rvm e o ruby ​​instalados para acesso multiusuário, certo?

Obrigado por tentar me ajudar :). Estou multiusuário instalado. Aqui está o deploy.rb. Por motivos de segurança, removi as configurações de domínio, deploy_to e repositório.

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
# require 'mina/rbenv'  # for rbenv support. (http://rbenv.org)
require 'mina/rvm'    # for rvm support. (http://rvm.io)

# Basic settings:
#   domain       - The hostname to SSH to.
#   deploy_to    - Path to deploy into.
#   repository   - Git repo to clone from. (needed by mina/git)
#   branch       - Branch name to deploy. (needed by mina/git)

set :branch, 'master'

# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
# They will be linked in the 'deploy:link_shared_paths' step.
set :shared_paths, ['config/database.yml', 'log']

# Optional settings:
set :user, 'root'    # Username in the server to SSH to.
#   set :port, '30000'     # SSH port number.

# ISSUE: https://github.com/nadarei/mina/issues/124
# set_default :rvm_path, '/usr/local/rvm/scripts/rvm'
# set_default :rvm_path, '/usr/local/rvm/bin/rvm'
set_default :rvm_path, '/usr/local/rvm/scripts/rvm'

# This task is the environment that is loaded for most commands, such as
# `mina deploy` or `mina rake`.
task :environment do
  # If you're using rbenv, use this to load the rbenv environment.
  # Be sure to commit your .rbenv-version to your repository.
  # invoke :'rbenv:load'

  # For those using RVM, use this to load an RVM version@gemset.
  invoke :'rvm:use[ruby-2.0.0-p353@rails-4-1]'
end

# Put any custom mkdir's in here for when `mina setup` is ran.
# For Rails apps, we'll make some of the shared paths that are shared between
# all releases.
task :setup => :environment do
  queue! %[mkdir -p "#{deploy_to}/shared/log"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/log"]

  queue! %[mkdir -p "#{deploy_to}/shared/config"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/shared/config"]

  queue! %[touch "#{deploy_to}/shared/config/database.yml"]
  queue  %[echo "-----> Be sure to edit 'shared/config/database.yml'."]
end

desc "Deploys the current version to the server."
task :deploy => :environment do
  deploy do
    # Put things that will set up an empty directory into a fully set-up
    # instance of your project.
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'

    # to :launch do
    #   queue "touch #{deploy_to}/tmp/restart.txt"
    # end
  end
end

# For help in making your deploy script, see the Mina documentation:
#
#  - http://nadarei.co/mina
#  - http://nadarei.co/mina/tasks
#  - http://nadarei.co/mina/settings
#  - http://nadarei.co/mina/helpers

Adicionei meus conjuntos de joias:

root<strong i="9">@user</strong>:~# rvm gemset list

gemsets for ruby-2.0.0-p353 (found in /usr/local/rvm/gems/ruby-2.0.0-p353)
   (default)
   global
=> rails-4-1

Hmm, a única coisa que posso pensar que pode afetar você é que é invoke :'rvm:use[2.1.0]' . Estou usando Ruby v2.1.0, então acho que o seu deveria ser algo como invoke :'rvm:use[2.0.0]' . Espero que funcione. O resto parece igual ao meu.

Não funciona. Estou apenas desistindo :(

@zolzaya Desculpe. Eu gostaria de poder ajudar mais, mas estou muito limitado em minha compreensão de como usar o mina. Eu meio que hackeei o padrão para trabalhar com meu projeto. Sempre pretendo ler a documentação quando tenho uma chance, mas infelizmente essa chance ainda não apareceu. Espero que alguém com uma resposta à sua pergunta possa ajudá-lo. Eu diria que tente stackoverflow e veja se você consegue encontrar alguém aí para ajudar.

Boa sorte!
J

rvm_path já é usado por scripts rvm:

~$ echo $rvm_path
/usr/local/rvm

Eu só mudei rvm_path para outro nome de variável a fim de corrigir esse problema.

Tenho o mesmo problema:
! Ruby Version Manager não encontrado
! Se o RVM estiver instalado, verifique sua configuração: rvm_path.

! O comando falhou.
Falha com status 1

Eu verifiquei várias vezes. O rvm está instalado no local que especifiquei usando rvm_path.

EDIT: Vou confessar e dizer que descobri que estava sendo estúpido e usando o caminho do rvm na minha máquina local. Esperançosamente, isso pode ajudar alguém - você deseja usar o caminho rvm no servidor, não em sua máquina local.

no meu caso funcionou ("set" em vez de "set_default"):
conjunto: rvm_path, '/ usr / local / rvm / scripts / rvm'

Esse comando set consertou para mim! Obrigado @NazarK

obrigado, use "set: rvm_path"
funciona ~

Ainda tenho problemas. A mensagem de erro exata:

 mina setup                                                                                                                                 ⏎ master ✭   -       sh: 2: [[: not found
-       sh: 8: source: not found
-       sh: 9: rvm: not found
-----> Using RVM environment 'ruby-2.2.2-p95<strong i="6">@default</strong>'

 !     Command failed.
       Failed with status 1 (1)

Meu deploy.rb:

require 'mina/bundler'
require 'mina/rails'
require 'mina/git'
# require 'mina/rbenv'  # for rbenv support. (http://rbenv.org)
require 'mina/rvm'    # for rvm support. (http://rvm.io)

# Basic settings:
#   domain       - The hostname to SSH to.
#   deploy_to    - Path to deploy into.
#   repository   - Git repo to clone from. (needed by mina/git)
#   branch       - Branch name to deploy. (needed by mina/git)

----- private info -----

# For system-wide RVM install.
set :rvm_path, '/usr/local/rvm/bin/rvm'

# Manually create these paths in shared/ (eg: shared/config/database.yml) in your server.
# They will be linked in the 'deploy:link_shared_paths' step.
set :shared_paths, ['config/database.yml', 'config/secrets.yml', 'log']

# Optional settings:
  set :user, 'deployer'    # Username in the server to SSH to.
#   set :port, '30000'     # SSH port number.
#   set :forward_agent, true     # SSH forward_agent.

# This task is the environment that is loaded for most commands, such as
# `mina deploy` or `mina rake`.
task :environment do
  # If you're using rbenv, use this to load the rbenv environment.
  # Be sure to commit your .ruby-version or .rbenv-version to your repository.
  # invoke :'rbenv:load'

  # For those using RVM, use this to load an RVM version@gemset.
  invoke :'rvm:use[ruby-2.2.2-p95@default]'
end

# Put any custom mkdir's in here for when `mina setup` is ran.
# For Rails apps, we'll make some of the shared paths that are shared between
# all releases.
task :setup => :environment do
  queue! %[mkdir -p "#{deploy_to}/#{shared_path}/log"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/log"]

  queue! %[mkdir -p "#{deploy_to}/#{shared_path}/config"]
  queue! %[chmod g+rx,u+rwx "#{deploy_to}/#{shared_path}/config"]

  queue! %[touch "#{deploy_to}/#{shared_path}/config/database.yml"]
  queue! %[touch "#{deploy_to}/#{shared_path}/config/secrets.yml"]
  queue  %[echo "-----> Be sure to edit '#{deploy_to}/#{shared_path}/config/database.yml' and 'secrets.yml'."]

  if repository
    repo_host = repository.split(%r{@|://}).last.split(%r{:|\/}).first
    repo_port = /:([0-9]+)/.match(repository) && /:([0-9]+)/.match(repository)[1] || '22'

    queue %[
      if ! ssh-keygen -H  -F #{repo_host} &>/dev/null; then
        ssh-keyscan -t rsa -p #{repo_port} -H #{repo_host} >> ~/.ssh/known_hosts
      fi
    ]
  end
end

desc "Deploys the current version to the server."
task :deploy => :environment do
  to :before_hook do
    # Put things to run locally before ssh
  end
  deploy do
    # Put things that will set up an empty directory into a fully set-up
    # instance of your project.
    invoke :'git:clone'
    invoke :'deploy:link_shared_paths'
    invoke :'bundle:install'
    invoke :'rails:db_migrate'
    invoke :'rails:assets_precompile'
    invoke :'deploy:cleanup'

    to :launch do
      queue "mkdir -p #{deploy_to}/#{current_path}/tmp/"
      queue "touch #{deploy_to}/#{current_path}/tmp/restart.txt"
    end
  end
end

# For help in making your deploy script, see the Mina documentation:
#
#  - http://nadarei.co/mina
#  - http://nadarei.co/mina/tasks
#  - http://nadarei.co/mina/settings
#  - http://nadarei.co/mina/helpers

O que eu fiz foi mudar o usuário para 'implantador' e mudar o rvm_path

set :rvm_path, '/usr/local/rvm/bin/rvm'

Se eu apenas conectar através do terminal ao ssh como implantador, o rvm funciona bem.

PS Estou usando o rbenv na máquina local, espero não precisar ter o rvm no local para a operação correta do mina.

Não vejo seu repositório var:
set: repository, ' git @ ...

Eu cortei isso em '----- informações privadas -----'.

Na verdade, encontrei a origem de metade dos meus problemas. Era o shell de sistema padrão do Ubuntu, que utilizo como sistema operacional de servidor. Tem dash , não bash . O ponto é dash mesmo não ter o comando 'source', que é muito usado em mina. Dash tem '.' comando no lugar de 'fonte'.
Então eu mudei dash para bash como shell padrão e todos os erros estranhos sumiram ... Mas apareceram novos erros mais comuns com RVM. mina deploy simplesmente não consigo ver. mina ssh também.
Por enquanto, resolvi temporariamente o problema, procurando manualmente todos os env vars e caminhos necessários para o meu Ruby. O pacote rvm de Mina não poderia me ajudar neste caso. Espero que este seja o problema com o Ubuntu, não com o Mina.

use o caminho rvm_use_path
set :rvm_use_path, '/usr/local/rvm/scripts/rvm'

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

amargherio picture amargherio  ·  10Comentários

hlcfan picture hlcfan  ·  8Comentários

ghost picture ghost  ·  3Comentários

jakoss picture jakoss  ·  3Comentários

davidhq picture davidhq  ·  10Comentários