webentwicklung-frage-antwort-db.com.de

FEHLER: Gem Bundler ist nicht installiert, führen Sie zuerst `Gem Install Bundler` aus

Hallo, ich habe wahrscheinlich versucht, das Ruby gem Bundle zu installieren. Ich folge den Anweisungen gem install bundle, Nachdem ich diese Nachricht erhalten habe, aber es funktioniert immer noch nicht, wenn ich tippe bundle -v. Ich tippe auch

which bundle Und erhalten

/Users/edmundmai/.rvm/bin/bundle

so existiert es !! Also warum funktioniert es nicht !! Stimmt etwas nicht mit dem mysteriösen $ PATH, den ich nicht verstehe? (Ich bin ein Anfänger).

Hier ist mein .bash_profile:

PATH=$PATH:~/bin
export PATH
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a Shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

Hier ist meine .bashrc:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" 

Hier ist mein Juwel env:

RubyGems Environment:
- RUBYGEMS VERSION: 1.8.24
- Ruby VERSION: 1.9.3 (2012-04-20 patchlevel 194) [x86_64-darwin11.3.1]
- INSTALLATION DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]
- Ruby EXECUTABLE: /Users/edmundmai/.rvm/rubies/Ruby-1.9.3-p194/bin/Ruby
- EXECUTABLE DIRECTORY: /Users/edmundmai/.rvm/gems/[email protected]/bin
- RUBYGEMS PLATFORMS:
  - Ruby
  - x86_64-darwin-11
- GEM PATHS:
   - /Users/edmundmai/.rvm/gems/[email protected]
   - /Users/edmundmai/.rvm/gems/[email protected]
- GEM CONFIGURATION:
   - :update_sources => true
   - :verbose => true
   - :benchmark => false
   - :backtrace => false
   - :bulk_threshold => 1000
   - "install" => "--no-rdoc --no-ri"
   - "update" => "--no-rdoc --no-ri"
- REMOTE SOURCES:
   - http://rubygems.org/

echo $ PATH

/Users/edmundmai/.rvm/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/gems/[email protected]/bin:/Users/edmundmai/.rvm/rubies/Ruby-1.9.3-p194/bin:/Users/edmundmai/.rvm/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Users/edmundmai/bin:/Users/edmundmai/bin

UPDATE Nachdem ich versucht hatte, das RoR-Tutorial noch einmal durchzugehen, wiederholte ich einige der Schritte aus dem vorherigen Kapitel in einem meiner beiden Terminalfenster (nennen wir sie Terminal 1 und Terminal 2). Terminal 2 funktioniert immer noch nicht (die Befehlszeile befindet sich in keinem Verzeichnis, nur im Standardverzeichnis), während Terminal 1 (in meinem Verzeichnis sample_app) funktioniert. Ich denke, rvm get head && rvm reload Könnte der Schlüssel sein? Aber muss ich das jedes Mal ausführen, wenn ich mein Terminal öffne? Schauen Sie sich meine Terminal # 1-Befehle für vorher und nachher an (ich habe einen Teil der Ausgabe gelöscht, damit klarer wird, wie meine Eingabezeilen lauten):

Edmunds-MacBook-Pro:sample_app edmundmai$ bundle -v
ERROR: Gem bundler is not installed, run `gem install bundler` first.
Edmunds-MacBook-Pro:sample_app edmundmai$ gem install
ERROR:  While executing gem ... (Gem::CommandLineError)
Please specify at least one gem name (e.g. gem build GEMNAME)
Edmunds-MacBook-Pro:sample_app edmundmai$ rvm -v


rvm 1.15.8 (master) by Wayne E. Seguin <[email protected]>, Michal Papis     <[email protected]> [https://rvm.io/]

Edmunds-MacBook-Pro:sample_app edmundmai$ rspec spec/
No DRb server is running. Running in local process instead ...
........

Finished in 0.36709 seconds
8 examples, 0 failures

Randomized with seed 59500

Edmunds-MacBook-Pro:sample_app edmundmai$ subl .
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle install --binstubs=./bundler_stubs
Using rake (0.9.2.2) 
...
...
(**list of stuff)
Using uglifier (1.2.3) 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed.
Edmunds-MacBook-Pro:sample_app edmundmai$ bundle show bundler
/Users/edmundmai/.rvm/gems/[email protected]/gems/bundler-1.2.0

Ich bin äußerst unklar, was der $ PATH tut. Wenn Sie weitere Informationen benötigen, teilen Sie mir dies bitte mit, und ich werde sie bereitstellen.

32
bigpotato

Ich denke, das ist das Problem: Sie haben einen Bundler auf einem bestimmten gemset installiert, weshalb dieser nur verfügbar ist, wenn Sie sich im Verzeichnis Ihrer App befinden (ich nehme an, es gibt ein .rvmrc Datei drin).

Sie haben einige Möglichkeiten:

  1. Installieren Sie bundler in einem globalen Gemset. rvm gemset use global && gem install bundler
  2. Wenn Sie Homebrew installiert haben, tun Sie einfach brew install Ruby und rvm ganz vermeiden. (Es gibt auch rbenv und ry als Alternativen zu rvm, aber ich verwende nur 1.9.3 für alle meine Apps, sodass Homebrew in Ordnung ist.)

Als Referenz, $PATH ist eine Shell-Umgebungsvariable, die eine Liste von Verzeichnissen enthält, die ausführbare Dateien enthalten (z. B. echo, ls, vim usw.). Muscheln sind inhärent.

85
jmdeldin

Manchmal ist es nur so, dass Sie rvm nicht korrekt beschaffen, weil Sie sich nicht in einer Login-Shell befinden (mit screen?). Art

 source ~/.rvm/scripts/rvm 

Verwenden Sie einen beliebigen Bundle-Befehl.

53
hammady

Fügen Sie der Datei ~/.bashrc Die folgende Zeile hinzu

[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

laden Sie dann die Datei neu:

$ source ~/.bashrc
4
jlucasps

Sogar ich hatte das gleiche Problem,

Auf dem Server wurde rvm nicht als Standard ausgewählt

rvm use 1.9.3 --default

gem install bundler

mein problem gelöst

(Problem tritt nur bei Verwendung von rvm auf)

1
devudilip

Wenn Sie rvm verwenden, erstellen Sie ein separates Gemset, bei dem es sich um in sich geschlossene Edelsteinbündel handelt.

rvm use [email protected] --create --default
  • myApplicationNameHere = Ändern Sie dies in den Namen Ihrer Anwendung
  • create = Erstellt eine Gemset
  • default = bedeutet, dass diese Version von Ruby und gemset als Standard verwendet wird

Hier ist der Link zur rvm-Site und dem entsprechenden Abschnitt https://rvm.io/gemsets/basics/

0
Eric Brooke