Wo sind meine Edelsteine?
Mit dem gem environment
Befehl können Sie herausfinden, wo Ihre Edelsteine gespeichert sind . Zum Beispiel:
chris@chris-laptop:~$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.2
- RUBY VERSION: 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
- INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
- RUBY EXECUTABLE: /usr/bin/ruby1.8
- EXECUTABLE DIRECTORY: /usr/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86-linux
- GEM PATHS:
- /usr/lib/ruby/gems/1.8
- /home/chris/.gem/ruby/1.8
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
Wenn Sie sich den Abschnitt "GEM PATHS:" ansehen, können Sie sehen, dass Edelsteine an zwei Stellen auf meinem Laptop gespeichert werden können: /usr/lib/ruby/gems/1.8
oder im .gem
Verzeichnis in meinem Home-Verzeichnis.
Sie können auch sehen, dass ausführbare Dateien im EXECUTABLE DIRECTORY gespeichert sind, in diesem Fall /usr/bin
.
Denn /usr/bin
in meinem Weg läßt dies mich laufen cap
, merb
, rails
usw.
Aktualisieren Sie Ihren Pfad
Wenn sich Ihr EXECUTABLE DIRECTORY aus irgendeinem Grund nicht auf Ihrem Pfad befindet (z. B. /var/lib/gems/1.8/bin), müssen Sie Ihre PATH-Variable aktualisieren.
Angenommen, Sie verwenden die Bash-Shell. Sie können dies schnell für die aktuelle Sitzung tun, indem Sie an der Shell-Eingabeaufforderung Folgendes eingeben: Stellen wir uns vor, Sie möchten /var/lib/gems/1.8/bin
dem Pfad etwas hinzufügen :
export PATH=$PATH:/var/lib/gems/1.8/bin
und drücken Sie die Eingabetaste. Dadurch wird das neue Verzeichnis an das Ende des aktuellen Pfads angehängt. Beachten Sie den Doppelpunkt zwischen $PATH
und/var/lib/gems/1.8/bin
Um den Wert für alle Sitzungen festzulegen, müssen Sie entweder Ihre .profile
oder Ihre .bashrc
Datei bearbeiten und dieselbe Zeile am Ende der Datei hinzufügen. Normalerweise bearbeite ich meine .bashrc
Datei aus keinem anderen Grund als dem, was ich immer getan habe. Wenn Sie fertig sind, speichern Sie die Datei und aktualisieren Sie Ihre Umgebung, indem Sie Folgendes eingeben:
bash
an der Shell-Eingabeaufforderung. Dadurch wird das erneut .bashrc
gelesen.
Sie können den aktuellen Wert jederzeit $PATH
durch Eingabe überprüfen
echo $PATH
an der Shell-Eingabeaufforderung.
Hier ist ein Beispiel von einem meiner eigenen Server, auf dem mein Benutzername "chris" und der Computername "chris-Laptop" lautet:
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
chris@chris-laptop:~$
chris@chris-laptop:~$ export PATH=$PATH:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
chris@chris-laptop:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/1.8/bin
chris@chris-laptop:~$
Mein Edelstein wird nicht geladen!
" Ruby-Edelsteine werden trotz Installation nicht geladen " hebt ein häufiges Problem bei der Verwendung mehrerer verschiedener Ruby-Versionen hervor. Manchmal sind die Gem-Umgebung und der Gem-Pfad nicht mehr synchron:
rb(main):003:0> Gem.path
=> ["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
irb(main):004:0> exit
Jeder Ruby-Prozess hier sucht nur an einem Ort nach seinen Edelsteinen.
:~/$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.1 (2009-05-12 patchlevel 129) [x86_64-linux]
- INSTALLATION DIRECTORY: /opt/ruby1.9/lib/ruby/gems/1.9.1
- RUBY EXECUTABLE: /opt/ruby1.9/bin/ruby1.9
- EXECUTABLE DIRECTORY: /opt/ruby1.9/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
- /home/mark/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
Schauen Sie sich die Ausgabe der Edelsteinumgebung genau an:
- GEM PATHS:
- /opt/ruby1.9/lib/ruby/gems/1.9.1
Dies ist nicht derselbe Pfad wie der von Gem.path zurückgegebene:
["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]
Es ist schwer zu sagen, was genau zu lib/ruby
einer Änderung geführt hat, lib/ruby1.9
aber höchstwahrscheinlich hat der Entwickler mit mehreren Ruby-Versionen gearbeitet. Eine schnelle mv
oder ln
wird das Problem lösen.
Wenn Sie mit mehreren Ruby-Versionen arbeiten müssen, sollten Sie wirklich rvm verwenden .