Was ist der Unterschied zwischen GEM_HOME und GEM_PATH?

76

RubyGems ist ein Paketmanager für die Programmiersprache Ruby, der ein Standardformat für die Verteilung von Ruby-Programmen und -Bibliotheken (in einem eigenständigen Format namens "gem"), ein Tool zur einfachen Verwaltung der Installation von gems und einen Server für bereitstellt verteilen sie. Es ist analog zu EasyInstall für die Programmiersprache Python. RubyGems ist jetzt Teil der Standardbibliothek ab Ruby Version 1.9.

Was ist der Unterschied zwischen GEM_HOME und GEM_PATH?

Michiel de Mare
quelle

Antworten:

96

GEM_PATH bietet die Orte (es kann mehrere geben), an denen Edelsteine ​​gefunden werden können.

GEM_HOME Hier werden Edelsteine ​​installiert (standardmäßig).

(Sollte daher GEM_PATHenthalten GEM_HOME).

Michiel de Mare
quelle
1
Das geht aus Ihrer Antwort nicht besonders hervor. GEM_PATHist wie PATHbei Edelsteinen (eine Liste von Verzeichnissen, in denen sich Edelsteine ​​befinden). Mindestens chrubySätze GEM_HOMEals erster Punkt in GEM_PATH.
X-Yuri
Wie grenzt man mehrere Pfade ab? Ist es dasselbe wie PATH mit einem Doppelpunkt? :
animiertes
14

Auch interessanter Hinweis. Zumindest unter Windows XP wissen Sie nichts über andere Plattformen.

In GEM_HOMEWindows einstellen:

C:\>set GEM_HOME=C:\sbox\ruby\dump\.gems

Lassen Sie uns dies jetzt überprüfen.

1) In Windows ENVs. Alles in Ordnung, wie erwartet:

C:\>set
...
GEM_HOME=C:\sbox\ruby\dump\.gems
...

2) Mit gem env. Beachten Sie, dass es GEM_HOMEmit GEM_PATHs zusammenpasst, aber an erster Stelle:

C:\>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/sbox/ruby/dump/.gems
  - RUBY EXECUTABLE: C:/Ruby200/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/sbox/ruby/dump/.gems/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/sbox/ruby/dump/.gems
     - C:/Documents and Settings/User/.gem/ruby/2.0.0
     - C:/Ruby200/lib/ruby/gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

3) Jetzt mit bundle env:

C:\>bundle env
Bundler 1.3.4
Ruby 2.0.0 (2013-02-24 patchlevel 0) [i386-mingw32]
Rubygems 2.0.3
GEM_HOME C:\sbox\ruby\dump\.gems
GEM_PATH

GEM_PATHleer ist, bedeutet dies Standardwert. Aber woher kommt der Standardwert? Siehe gem env.

Grün
quelle