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.
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:
bundler
in einem globalen Gemset. rvm gemset use global && gem install bundler
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.
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.
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
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)
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
Hier ist der Link zur rvm-Site und dem entsprechenden Abschnitt https://rvm.io/gemsets/basics/