Dieser Artikel erklärt, wie man mit der Situation umgeht, wenn sich der Gem-Pfad nach der Installation von Bibliotheken in Ruby ändert.
Nach der Installation von jruby in Ruby hat sich der GEM-Pfad geändert.
Ruby - Wie ändert man den Pfad des Ruby gem-Befehls (139476) | teratail
Wie ändert man den Pfad des Ruby gem-BefehlsIch habe zuvor jRuby installiert, und während sich der Ruby-Pfad nicht geändert hat, scheint sich der GEM-Pfad geändert zu haben.
Aus diesem Grund funktioniert gem require nicht richtig.
Ich konnte zum Gem-Pfad installieren, aber ich kann einfach nicht herausfinden, wie ich ihn ändern kann.
Ich habe recherchiert und herausgefunden, dass der GEM-Pfad in Variablen namens $GEM_PATH und $GEM_HOME gespeichert wird, aber als ich in Powershell nachgesehen habe, gab es keine solchen Variablen.
Bitte sagen Sie mir, wie ich den Gem-Pfad auf denselben Pfad wie das ursprüngliche Ruby zurücksetzen kann.
Ich wollte sinatra verwenden. Der Gem-Pfad war jedoch auf den jruby-Pfad eingestellt, den ich neulich konfiguriert habe, und daher wurde sinatra nicht zu dem Ruby installiert, das es verwenden sollte, sodass ich es nicht requiren konnte. Möglicherweise sind Bundle-Install- und Ausführungsfehler auf dieselbe Ursache zurückzuführen. Fürs Erste möchte ich den Gem-Befehlspfad auf den ursprünglichen Ruby-Pfad anstelle von jruby zurücksetzen.
PS C:\pg> gcm ruby | fl Path
Path : C:\Ruby24-x64\bin\ruby.exe
PS C:\pg> gcm gem | fl Path
Path : c:\jruby-9.2.0.0\bin\gem.bat
Ändern Sie die Priorität in den Umgebungsvariablen so, dass jruby niedriger als ruby ist.
PS C:\pg> $Env:Path.replace(';',"`r`n")
...
C:\apps\ConEmuPack.170305
C:\apps\ConEmuPack.170305\ConEmu
C:\Users\user\AppData\Local\Programs\Python\Python36-32\Scripts
C:\Users\user\AppData\Local\Programs\Python\Python36-32
C:\Ruby24-x64\bin
c:\jruby-9.2.0.0\bin
C:\Users\user\AppData\Local\Microsoft\WindowsApps
C:\Users\user\AppData\Local\atom\bin
c:\_mount_
c:\php
Jetzt überprüfen wir noch einmal mit gcm.
PS C:\pg> gcm ruby
CommandType Name Version Source
Application ruby.exe 2.4.2.198 C:\Ruby24-x64\bin\ruby.exe
PS C:\pg> gcm gem
CommandType Name Version Source
Application gem.cmd 0.0.0.0 C:\Ruby24-x64\bin\gem.cmd
Es ist behoben!
Jetzt kann der gem-Befehl verwendet werden.
gem install sinatra
Nach der Installation:
PS C:\pg\sinatra> ruby .\app.rb
== Sinatra (v2.0.3) has taken the stage on 4567 for development with backup from Puma
*** SIGUSR2 not implemented, signal based restart unavailable!
*** SIGUSR1 not implemented, signal based restart unavailable!
*** SIGHUP not implemented, signal based logs reopening unavailable!
Puma starting in single mode...
* Version 3.11.4 (ruby 2.4.2-p198), codename: Love Song
* Min threads: 0, max threads: 16
* Environment: development
* Listening on tcp://localhost:4567
Use Ctrl-C to stop
Es funktioniert! (Ich bin so glücklich)

Es funktioniert!! Großartig.
Wenn Sie nach der Neuinstallation von jruby oder etwas Neuem unter Windows Probleme haben, sollten Sie zuerst die Möglichkeit in Betracht ziehen, dass der Gem- oder Ruby-ausführbare Pfad überschrieben wurde.