rails instalar ruby rubygems rbenv

ruby - instalar - install rails ubuntu



Estoy usando rbenv, entonces ¿por qué hay dos rutas Gem en mi sistema?(OS X Lion) (3)

Para aclarar, estoy usando rbenv para administrar mis versiones de ruby. Tenía la impresión de que los binarios se administran como shims en su respectivo directorio de la versión ruby.

Esto es lo que mi sistema muestra cuando ejecuto el entorno gem (excluyo las partes irrelevantes):

- GEM PATHS: - /Volumes/Data/nathan/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1 - /Volumes/Data/nathan/.gem/ruby/1.9.1

¿Alguna razón para tener dos ubicaciones? Mentes curiosas quieren saber.


Creo que me di cuenta de la respuesta a esta pregunta, así que la publicaré.

Rbenv permite una versión global y / o local de ruby. Entonces, una vez que se instala y administra un ruby ​​a través de rbenv, puede declararlo como una versión global de ruby ​​utilizada por todo su sistema.

Del mismo modo, puede declarar una versión local de ruby ​​dentro de un directorio determinado (por ejemplo, un proyecto de rieles específico).

El archivo .gem en su ruta de inicio es utilizado por la versión global de ruby, mientras que la versión local de ruby ​​utiliza el que está escondido en el directorio rbenv.

Tenga en cuenta que puede (por cualquier motivo) declarar una versión local que sea la misma que la versión global. En ese caso, la versión local se basará en los archivos gem que se encuentran en el directorio rbenv más profundo, en lugar del directorio ~ / .gem.


Tenga en cuenta que los gestores de versiones de ruby ​​como rbenv y rvm son creaciones relativamente recientes. Antes de que existieran, un usuario administrador solía instalar ruby ​​en una ubicación de todo el sistema como / usr / local. Pero los no administradores necesitaban un lugar para instalar sus propias gemas, ya que no tenían permiso de escritura bajo / usr / local. Así que los creadores de rubygems decidieron agregar una ruta de gema secundaria en el directorio de inicio del usuario actual, que tendría una estructura similar a la ubicación del sistema.

Aquí hay un ejemplo de cómo se veían los caminos de las gemas en los viejos tiempos:

- /usr/local/lib/ruby/gems/1.9.1 - /Users/kelvin/.gem/ruby/1.9.1

Puede que aún haya máquinas en las que el rubí se instale de esta manera, y aún tenga ese recurso de la ruta de gemas secundaria automática. Por supuesto, también puede agregar más rutas con la variable de entorno GEM_PATH, pero la automática es buena para manejar el caso común.

Si tiene derechos de administrador, o utiliza un administrador de versiones, puede ignorar el directorio ~ / .gem como un artefacto, una reliquia del pasado, si así lo desea.


- /Volumes/Data/nathan/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1

es de rbenv, por lo que ruby ​​busca las gemas rbenv instaladas.

- /Volumes/Data/nathan/.gem/ruby/1.9.1

Aparentemente, rbenv no se limita a sus propias gemas, sino que también incluye las gemas del sistema ruby, pero solo las que se instalan como usuario (a través de gem --user-install ).