2010-03-05 34 views
39

¿Cómo funciona la "instalación de gemas"? No es intuitivo ...¿Cómo instalar un archivo Ruby gem descargado?

Mi joya es realmente aquí:

[[email protected] Téléchargement]# ll *.gem 
-rw-rw-r-- 1 jean jean 16353818 mar 5 11:39 ruby-processing-1.0.9.gem 

Pero una idiomática "gem install" no lo ve ...

[[email protected] Téléchargement]# gem install ruby-processing-1.0.9.gem 
ERROR: could not find gem ruby-processing-1.0.9.gem locally or in a repository 

¿Qué hay de malo en eso?

Respuesta

47

Quizás no he entendido completamente la pregunta. Pero si solo desea instalar una gema que tiene en su máquina local, todo lo que necesita hacer desde la consola es ir al directorio que contiene su gema y gem install --local your.gem.

12

El problema es que joya instalar está buscando gemas para instalar en su directorio predeterminado. Puede averiguar dónde está ejecutando:

$ gem environment 

esto le dará algo como:

> RubyGems Environment: 
> - RUBYGEMS VERSION: 1.3.6 
> - RUBY VERSION: 1.8.6 (2007-09-24 patchlevel 111) [i486-linux] 
> - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8 
> - RUBY EXECUTABLE: /usr/bin/ruby1.8 
> - EXECUTABLE DIRECTORY: /usr/bin 
> - RUBYGEMS PLATFORMS: 
>  - ruby 
>  - x86-linux 
> - GEM PATHS: 
>  - /usr/lib/ruby/gems/1.8 
>  - /home/adminuser/.gem/ruby/1.8 

Los GEM CAMINOS lugares es donde joya instalar espera encontrar gemas para instalar . Por lo tanto, la solución a su problema sería copiar la gema de su ubicación actual en el directorio de esperar, es decir,

$ cp my.gem /home/adminuser/.gem/ruby/1.8/ 

Si a continuación, ejecuta joya instalar va a recoger a su joya e instalarlo. Asegúrese de ejecutar el comando de copia como superusuario (sudo, si se está ejecutando Ubuntu como yo)

PS Si, al ejecutar $ entorno joya, se obtiene un "método definido '' manage_gems del Gem : Módulo (NoMethodError)" de error, a continuación, editar /usr/bin/joya y asegurar que las tres primeras líneas del archivo se ven así:

  1. requieren 'rubygems'
  2. require 'rubygems/gem_runner '
  3. Gem.manage_gems

+0

Estoy tratando de instalar una joya de la fuente, ¿cómo iba a hacer eso? Preferiblemente con un enlace simbólico para que pueda actualizar la fuente. – Pepijn

+0

Gracias por esto. Necesito instalar el adaptador de Oracle y tuve que hacerlo desde el archivo .gem porque la fuente ya no está disponible. – Eric

23

Solo un poco más de aclaración en caso de que necesite construir/instalar su propio archivo de gemas en este ejemplo foo-bar.

gem build foo-bar.gemspec 
gem install --local foo-bar-0.1.0.gem 

yo estaba investigando cómo hacer esto y este post era primer resultado :)

+0

Gracias. La segunda línea probablemente deba fijarse a: gem install --local foo-bar-1.0.0.gem – valk

+1

@valk bien, depende de la versión especificada en '* .gemspec'. Vale la pena mencionar que no necesitas el controlador '--local', pero la documentación dice que sí, así que lo he respetado. –

+0

@HarisKrajina Es útil tener '-local' porque evita que se verifique cada fuente para el repositorio y se ahorre un poco de tiempo. Particularmente útil si ha editado una gema encontrada en línea (lo hizo para que sea compatible con otro programa). – wolfcall

Cuestiones relacionadas