2012-06-30 7 views
55

RubyGems es un gestor de paquetes para el lenguaje de programación Ruby que proporciona un formato estándar para distribuir programas y bibliotecas Ruby (en un formato independiente denominado "gema"), una herramienta diseñada para administrar fácilmente la instalación de gemas y servidor para distribuirlos. Es análogo a EasyInstall para el lenguaje de programación Python. RubyGems ahora es parte de la biblioteca estándar de Ruby versión 1.9.¿Cuál es la diferencia entre GEM_HOME y GEM_PATH?

Dicho esto, ¿cuál es la diferencia entre GEM_HOME y GEM_PATH?

Respuesta

71

GEM_PATH proporciona las ubicaciones (puede haber varias) donde se pueden encontrar gemas.

GEM_HOME es donde se instalarán las gemas (de forma predeterminada).

(Por lo tanto, GEM_PATH debe incluir GEM_HOME).

9

También es un aviso interesante. Al menos en Wndows XP, no conozco otras plataformas.

Conjunto GEM_HOME en Windows:

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

Ahora vamos a ver esto.

1) En Windows ENV. Todo bien, como era de esperar:

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

2) Con gem env. Observe que pone GEM_HOME junto con GEM_PATH s pero en el primer lugar:

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) Ahora, 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 está vacía, significa que el valor por defecto. Pero, ¿de dónde toma el valor predeterminado? Ver gem env.

+0

¿Cómo funciona la configuración en Linux? – Timo

Cuestiones relacionadas