Mina: rvm_path-Einstellung wird nicht aufgenommen

Erstellt am 11. Juni 2013  ·  26Kommentare  ·  Quelle: mina-deploy/mina

Mein Server hat eine systemweite Installation von rvm unter /usr/local/rvm/scripts/rvm .

wenn ich versuche, es in meiner deploy.rb wie folgt einzustellen

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

Es wird nicht eingestellt und wenn ich versuche, es bereitzustellen, schlägt es mit der folgenden Fehlermeldung fehl

! Ruby-Versionsmanager nicht gefunden
! Wenn RVM installiert ist, überprüfen Sie Ihre :rvm_path-Einstellung.

Ich habe es auch mit set_default versucht
set_default :rvm_path, "/usr/local/rvm/scripts/rvm"

Aber das Problem ist immer noch da.

Als ich versucht habe, den Pfad in der folgenden Datei des Gems fest zu codieren, funktioniert es reibungslos:
https://github.com/nadarei/mina/blob/master/lib/mina/rvm.rb

Unten ist die Modifikation:

ursprüngliche Zeile:
set_default :rvm_path, "$HOME/.rvm/scripts/rvm"

hartcodierte Zeile von mir:
set_default :rvm_path, "/usr/local/rvm/scripts/rvm"

So, jetzt funktioniert es, aber den Pfad fest zu codieren ist keine Lösung für mich oder andere.

kannst du mir helfen was hier schief läuft....

Ich habe die Online-Dokumentation aller möglichen Einstellungen ( http://nadarei.co/mina/settings/ ) gesehen und finde, dass Sie rvm_path dort nicht auflisten.

unterstützt das Gem diese Einstellung derzeit nicht ..???

Hilfreichster Kommentar

Verwenden Sie den Pfad rvm_use_path
set :rvm_use_path, '/usr/local/rvm/scripts/rvm'

Alle 26 Kommentare

Ich erhalte die gleiche Fehlermeldung und konnte rvm im Pfad sehen. Hast du das zum Laufen gebracht?

wow umm so das gleiche problem....jemand mit einer lösung?

Edit: ähm, also habe ich es gerade zum Laufen gebracht ... Ich habe anscheinend etwas falsch geschrieben -.-. Falscher Alarm!

Hier gilt das gleiche :(

Diejenigen, die es zum Laufen gebracht haben, können mir bitte sagen, was es zum Laufen gebracht hat.
Tatsächlich bin ich aufgrund des oben genannten RVM-Problems zu Capistrano gewechselt, um meine Bereitstellung zu automatisieren.

Am Ende musste ich den Pfad verwenden, der angegeben wird, wenn Sie rvm info tun. Das scheint zu funktionieren.

Edit: Ich habe mich geirrt. Es ist nicht which rvm , Sie sollten rvm info ausführen und Sie können den rvm-Pfad abrufen. Sie müssen immer noch /scripts/rvm an das Ende des Pfads anhängen, den Sie von rvm info

Ich habe genau das gleiche Problem. Löst es jemand? Ich habe set_default :rvm_path, "/usr/local/rvm/scripts/rvm" hartcodiert, aber kein Glück :(

@zolzaya ziemlich sicher, dass der hartcodierte Pfad etwas in der Art von /usr/local/.rvm/scripts/rvm . Überprüfen Sie die . vor dem ersten rvm ist es hinterhältig.

Danke für deine Antwort. Aber es funktioniert nicht für mich :(. Wie finde ich diesen Pfad? Ich starte which rvm . Es zeigt mir /usr/local/rvm/bin/rvm

hmm tut mir leid, der Befehl ist eigentlich rvm info und Sie müssen /scripts/rvm bis zum Ende des Pfads von rvm info kreuzen. Obwohl es so aussieht, als hätten Sie den richtigen Weg. was für einen fehler bekommst du?

Hier die vollständige Ausgabe des Befehls 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"

Ich kann /scripts/rvm aus diesem Ergebnis nicht finden. Übrigens, ich erhalte folgende Fehler:

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

 !     Command failed.
       Failed with status 1

Es zeigt, dass Ihr rvm-Pfad /usr/local/rvm , Sie müssen nur /scripts/rvm am Ende hinzufügen. Ich weiß nur, dass es in meinem Fall funktioniert, aber ich habe kein großes Verständnis. Es sieht so aus, als ob Sie anfangs den richtigen Weg hatten. Was ist der Fehler, den Sie erhalten, damit es nicht funktioniert?

Es funktioniert nicht :( Der Fehler ist genau derselbe Ruby Version Manager not found . Übrigens danke für den Rat :)

Ich bin mir nicht sicher, was ich sonst noch anschauen soll. Wenn Sie möchten, können Sie Ihre Datei deploy.rb auf Pastebin legen und hier verlinken. Das einzige, was mir einfällt, ist sicherzustellen, dass Sie auch require 'mina/rvm' unkommentiert haben. Auch auf dem Zielcomputer möchte ich nur bestätigen, dass Sie rvm und ruby ​​für den Mehrbenutzerzugriff installiert haben, oder?

Vielen Dank, dass Sie versuchen, mir zu helfen :). Ich bin Multi-User installiert. Hier ist die deploy.rb. Aus Sicherheitsgründen habe ich domain, deploy_to, Repository configs entfernt.

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

Meine Edelsteine ​​hinzugefügt:

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, das einzige, was mir einfällt, das Sie beeinflussen könnte, ist, dass ich es als invoke :'rvm:use[2.1.0]' . Ich verwende Ruby v2.1.0, also denke ich, dass Ihres so etwas wie invoke :'rvm:use[2.0.0]' . Hoffentlich funktioniert das. Der Rest scheint mir ähnlich zu sein.

Nicht arbeiten. Ich gebe einfach auf :(

@zolzaya Entschuldigung. Ich wünschte, ich könnte mehr helfen, aber ich bin ziemlich begrenzt in meinem Verständnis, wie man mina benutzt. Ich habe gerade die Standardeinstellung gehackt, um mit meinem Projekt zu arbeiten. Ich habe immer vor, bei Gelegenheit die Dokumentation durchzulesen, aber leider hat sich diese Gelegenheit noch nicht ergeben. Hoffentlich kann dir jemand mit einer Antwort auf deine Frage helfen. Ich würde sagen, versuche es mit Stackoverflow und schau, ob du dort jemanden finden kannst, der dir hilft.

Viel Glück!
J

rvm_path wird bereits von rvm-Skripten verwendet:

~$ echo $rvm_path
/usr/local/rvm

Ich habe nur rvm_path in einen anderen Variablennamen geändert, um dieses Problem zu beheben.

Ich habe das gleiche Problem:
! Ruby-Versionsmanager nicht gefunden
! Wenn RVM installiert ist, überprüfen Sie Ihre :rvm_path-Einstellung.

! Befehl fehlgeschlagen.
Mit Status 1 fehlgeschlagen

Ich habe mehrmals nachgeschaut. rvm wird an dem Ort installiert, den ich mit rvm_path angegeben habe.

EDIT: Ich gebe zu und sage, dass es sich herausstellt, dass ich dumm war und den rvm-Pfad auf meinem lokalen Computer verwendet habe. Hoffentlich kann dies jemand anderem helfen - Sie möchten den rvm-Pfad auf dem Server und nicht auf Ihrem lokalen Computer verwenden.

hat in meinem Fall funktioniert ("set" statt "set_default"):
set :rvm_path, '/usr/local/rvm/scripts/rvm'

Dieser set-Befehl hat es für mich behoben! Danke @NazarK

danke, benutze "set:rvm_path"
es funktioniert ~

Habe immer noch Problem. Die genaue Fehlermeldung:

 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)

Meine 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

Was ich getan habe, ist der Benutzer in 'Deployer' geändert und rvm_path geändert

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

Wenn ich mich nur über das Terminal mit ssh als Deployer verbinde, funktioniert rvm einwandfrei.

PS Ich verwende rbenv auf einem lokalen Computer. Ich hoffe, ich brauche rvm nicht auf dem lokalen Computer für den korrekten Mina-Betrieb?

Ich sehe deine Repository-Variable nicht:
set :repository, ' git@...

Ich habe das in '----- private info -----' geschnitten.

Tatsächlich habe ich die Ursache für die Hälfte meiner Probleme gefunden. Es war die Standard-System-Shell von Ubuntu, die ich als Server-Betriebssystem verwende. Es hat dash , nicht bash . Der Punkt ist, dass dash nicht einmal den Befehl 'source' haben, der in Mina häufig verwendet wird. Strich hat '.' Befehl anstelle von 'Quelle'.
Also habe ich dash in bash als Standard-Shell geändert und alle seltsamen Fehler sind weg ... Aber es erschienen neue, häufigere Fehler bei RVM. mina deploy kann es einfach nicht sehen. mina ssh auch.
Im Moment habe ich das Problem vorübergehend gelöst, indem ich alle benötigten Env-Variablen und Pfade für meinen Ruby manuell beschafft habe. Minas rvm-Paket konnte mir in diesem Fall nicht weiterhelfen. Ich hoffe, das ist ein Problem mit Ubuntu, nicht mit Mina.

Verwenden Sie den Pfad rvm_use_path
set :rvm_use_path, '/usr/local/rvm/scripts/rvm'

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen