Ich habe kürzlich ein Upgrade auf Ubuntu 9.04 durchgeführt und habe Probleme mit der Verwendung von Edelsteinen. Ich habe Ruby, Rubygems und Rails mit apt-get installiert. Der rails
Befehl funktioniert.
Ich habe dann Capistrano und andere Edelsteine wie Heroku installiert. Dazu habe ich den folgenden Befehl verwendet:
sudo gem install XXX
Wenn ich den cap
Befehl verwenden möchte, funktioniert es nicht:
bash: cap: command not found
Dies gilt auch für die anderen Edelsteinbefehle.
Muss ich etwas Besonderes tun, damit die Edelsteinbefehle funktionieren?
ruby-on-rails
ruby
ubuntu
rubygems
capistrano
0x26res
quelle
quelle
Antworten:
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 laufencap
,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:an der Shell-Eingabeaufforderung. Dadurch wird das erneut
.bashrc
gelesen.Sie können den aktuellen Wert jederzeit
$PATH
durch Eingabe überprüfenecho $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 schnellemv
oderln
wird das Problem lösen.Wenn Sie mit mehreren Ruby-Versionen arbeiten müssen, sollten Sie wirklich rvm verwenden .
quelle
/etc/environment
Wie von @Chris angegeben, müssen Sie die Edelsteinumgebung zu Ihrem Pfad hinzufügen. Sie können dies tun durch:
echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc
quelle
Der Ordner, in dem Edelsteine gespeichert sind , muss sich auf Ihrem PFAD befinden. Mein Ordner lautet beispielsweise:
Überprüfen Sie Ihren Pfad durch Eingabe
echo $PATH
quelle
Es scheint, dass ich bei der Installation von Rubygems, jetzt in Ubuntu 9.04, dieses Problem habe. Ich habe festgestellt, dass in der "Gem-Umgebung" das ausführbare Verzeichnis "/var/lib/gems/1.8/bin" anstelle von "/ usr / bin" lautet ... Dies ist ein Problem mit Rubygems oder Ubuntu 9.04 ??
Die Lösung, auf die ich gestoßen bin, besteht darin, meinem $ PATH "/var/lib/gems/1.8/bin" hinzuzufügen, indem ich dies tue: export PATH = $ PATH: /var/lib/gems/1.8/bin Aber es wird nicht gespeichert ... wie kann ich meinen Weg retten?
Vielen Dank...
Resolvi: coloquei o export PATH = $ PATH: /var/lib/gems/1.8/bin no ~ / .bashrc! =]
quelle
mkmf ist Teil des ruby1.9.1-dev-Pakets. Dieses Paket enthält die Header-Dateien, die für Erweiterungsbibliotheken für Ruby 1.9.1 benötigt werden. Sie müssen das ruby1.9.1-dev-Paket wie folgt installieren:
sudo apt-get install ruby1.9.1-dev
quelle