Frage Wie benutze ich Edelsteine ​​mit Ubuntu?


Ich habe kürzlich auf Ubuntu 9.04 geupdatet und habe Probleme mit Edelsteinen. Ich habe Ruby, Rubygems und Rails mit apt-get installiert. Das rails Befehl funktioniert.

Ich habe dann Capistrano und andere Edelsteine ​​wie Heroku installiert. Um das zu tun, benutzte ich den Befehl:

sudo gem install XXX

Wenn ich das benutzen will cap Befehl es funktioniert nicht:

bash: cap: command not found

Das Gleiche gilt für die anderen Edelstein-Befehle.

Habe ich etwas bestimmtes zu tun, damit die Edelsteinbefehle funktionieren?


76
2018-05-26 08:55


Ursprung


Antworten:


Wo sind meine Edelsteine?

Sie können finden, wo Ihre Edelsteine ​​gespeichert sind gem environment Befehl. Beispielsweise:

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 du dir den Abschnitt "GEM PATHS:" ansiehst, kannst du sehen, dass Edelsteine ​​an zwei Orten auf meinem Laptop gespeichert werden können: /usr/lib/ruby/gems/1.8 oder in der .gem Verzeichnis in meinem Haus dir.

Sie können auch sehen, dass ausführbare Dateien in EXECUTABLE DIRECTORY gespeichert sind, was in diesem Fall der Fall ist /usr/bin.

weil /usr/bin Auf meinem Weg lässt mich das laufen cap, merb, rails etc.

Aktualisieren Sie Ihren Pfad

Wenn Ihr EXECUTABLE DIRECTORY aus irgendeinem Grund nicht auf Ihrem Pfad ist (zum Beispiel wenn es /var/lib/gems/1.8/bin ist), müssen Sie Ihre PATH-Variable aktualisieren.

Angenommen, Sie verwenden die Bash-Shell. Sie können dies für die aktuelle Sitzung schnell tun, indem Sie Folgendes an der Shell-Eingabeaufforderung eingeben: Lass uns so tun, als würdest du hinzufügen wollen /var/lib/gems/1.8/bin zum Weg:

export PATH=$PATH:/var/lib/gems/1.8/bin

und drücken Sie die Eingabetaste. Das hängt das neue Verzeichnis an dem Ende des aktuellen Pfads an. 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 bearbeiten .profile oder .bashrc file und füge dieselbe Zeile am Ende der Datei hinzu. Ich bearbeite normalerweise meine .bashrc Datei für keinen anderen Grund als das, was ich immer getan habe. Wenn Sie fertig sind, speichern Sie die Datei und aktualisieren Sie anschließend Ihre Umgebung, indem Sie Folgendes eingeben:

bash

an der Shell-Eingabeaufforderung. Das wird die verursachen .bashrc wieder gelesen werden.

Zu jedem Zeitpunkt können Sie den aktuellen Wert von überprüfen $PATH durch Eingabe von

echo $PATH

an der Shell-Eingabeaufforderung.

Hier ist ein Beispiel von einem meiner eigenen Server, wobei mein Benutzername "chris" ist 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 nicht geladen, obwohl sie installiert sind"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 sucht hier 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/

Sehen Sie sich die Ausgabe der Edelsteinumgebung genau an:

  - GEM PATHS:
     - /opt/ruby1.9/lib/ruby/gems/1.9.1

Dies ist nicht der Pfad, den Gem.path zurückgibt:

["/opt/ruby1.9/lib/ruby1.9/gems/1.9.1"]

Es ist schwer zu sagen, was genau verursacht hat lib/ruby ändern zu lib/ruby1.9 aber höchstwahrscheinlich arbeitete der Entwickler mit mehreren Ruby-Versionen. Ein schneller mv oder ln wird das Problem lösen.

Wenn Sie mit mehreren Ruby-Versionen arbeiten müssen, sollten Sie wirklich verwenden rvm.


138
2018-05-26 10:23



Wie von @Chris angegeben, müssen Sie die Gems-Umgebung zu Ihrem Pfad hinzufügen. Sie können dies tun, indem Sie:

echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' | tee --append ~/.bashrc

5
2017-08-08 20:09



Der Ordner, in dem Edelsteine ​​sind gelagert muss auf deinem PATH sein, zum Beispiel meins ist:

/home/victor/.gem/ruby/1.8/bin

Überprüfen Sie Ihren Pfad, indem Sie eingeben

echo $PATH

3
2018-05-26 09:07



Es scheint, dass bei der Installation von Rubygems, jetzt in Ubuntu 9.04, ich dieses Problem habe. Mir ist aufgefallen, dass in "gem environment" das ausführbare Verzeichnis "/var/lib/gems/1.8/bin" statt "/ usr / bin" ist ... Das ist ein Problem mit Rubygems oder mit ubuntu 9.04 ??

Die Lösung, der ich begegnete, ist es, "/var/lib/gems/1.8/bin" zu meinem $ PATH hinzuzufügen, indem ich Folgendes tue: export PATH = $ PATH: /var/lib/gems/1.8/bin Aber es ist nicht gerettet ... wie kann ich meinen Weg retten?

Vielen Dank...

Resolvi: coloquei o export PATH = $ PATH: /var/lib/gems/1.8/bin nein ~ / .bashrc! =]


1
2018-05-27 00:02



mkmf ist Teil des ruby1.9.1-dev-Pakets. Dieses Paket enthält die Headerdateien, die für Erweiterungsbibliotheken für Ruby 1.9.1 benötigt werden. Sie müssen das Paket ruby1.9.1-dev folgendermaßen installieren:

sudo apt-get installieren ruby1.9.1-dev


0
2018-04-02 11:36