2012-06-30 18 views
55

RubyGems è un gestore di pacchetti per il linguaggio di programmazione Ruby che fornisce un formato standard per la distribuzione di programmi e librerie Ruby (in un formato autonomo chiamato "gem"), uno strumento progettato per gestire facilmente l'installazione di gemme e server per la loro distribuzione. È analogo a EasyInstall per il linguaggio di programmazione Python. RubyGems ora fa parte della libreria standard di Ruby versione 1.9.Qual è la differenza tra GEM_HOME e GEM_PATH?

Detto questo, qual è la differenza tra GEM_HOME e GEM_PATH?

risposta

71

GEM_PATH fornisce le posizioni (potrebbero essere diverse) in cui è possibile trovare gemme.

GEM_HOME è dove verranno installate le gemme (per impostazione predefinita).

(Pertanto GEM_PATH dovrebbe includere GEM_HOME).

9

Anche avviso interessante. Almeno su Wndows XP, non so su altre piattaforme.

Set GEM_HOME in Windows:

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

Ora controlliamo questo.

1) In Windows ENV. Tutto OK, come ci si aspettava:

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

2) Con gem env. Si noti mette GEM_HOME insieme GEM_PATH s, ma al primo posto:

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) Ora con 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_PATH è vuota, significa valore predefinito. Ma da dove prende il valore predefinito? Vedi gem env.

+0

come funziona l'impostazione in Linux? – Timo

Problemi correlati