Pregunta

Ok, acabo de pasar de las 4 horas tratando de encontrar esta sin éxito.He probado todos los sospechosos habituales y google cada combinación de ruby 1.9.1, ruta de carga, gemas, mac os x,freebsd,camarón y otras cosas.El resultado final es este:

Al compilar ruby1.9.1-p129 de fuentes en mac os x 10.5, la ruta de carga por defecto ($:) lo que me sale es:

ruby -e "puts $:"
/usr/local/lib/ruby/gems
/usr/local/lib/ruby/site_ruby/1.9.1
/usr/local/lib/ruby/site_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/site_ruby
/usr/local/lib/ruby/vendor_ruby/1.9.1
/usr/local/lib/ruby/vendor_ruby/1.9.1/i386-darwin9.7.0
/usr/local/lib/ruby/vendor_ruby
/usr/local/lib/ruby/1.9.1
/usr/local/lib/ruby/1.9.1/i386-darwin9.7.0
.

cuando yo instale el camarón de la gema, por ejemplo, me sale:

gem which prawn
(checking gem prawn-0.5.0.1 for prawn)
/prawn.rb

y cuando trato de exigir lo que obtengo:

ruby -e "require 'prawn'"
-e:1:in `require': no such file to load -- prawn (LoadError)
    from -e:1:in `'

La única manera en la que he sido capaz de resolver esto es por hacer algo estúpido como esto:

$: << "/usr/local/lib/ruby/gems/1.9.1/gems/prawn-0.5.0.1/lib"

lo cual, por supuesto, es totalmente ridículo.Así que la pregunta es ¿cómo puedo conseguir ruby 1.9.1 a reconocer y seguir la correcta gemas camino?Nunca he tenido este problema con 1.8.7, así que estoy asumiendo que 1.9.1 específicos.Siento que me estoy perdiendo algo completamente obvio aquí y cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

configuración de GEM_PATH=/usr/local/lib/ruby/gems/1.9.1

resuelto el problema.Yo sabía que era algo simple.Sólo me agrava la que llevó TODO el DÍA para averiguar!!Esto es debido a no tener este problema con 1.8.7 y, por supuesto, NO RTFM!!

Otros consejos

mismo problema en kubuntu karmic.

instalación:

$ sudo apt-get install build-essential ruby1.9.1-full libsqlite3 libsqlite3-dev rubygems1.9
$ sudo gem install sqlite3-ruby rails thin --no-rdoc --no-ri

resultado:

$ ruby -e "require 'rubygems'; require 'sqlite3'" 
-e:1:in `require': no such file to load -- sqlite3 (LoadError)
        from -e:1:in `<main>'   

solución:

$ export GEM_PATH=/usr/lib/ruby1.9.1/gems/1.9.1/
require 'rubygems'
require 'prawn'

A menos que las cosas hayan cambiado en 1.9, ya no necesita requerir rubygems primero.

La próxima vez que tenga este problema, no olvide ejecutar gem env desde la línea de comandos. Esto es lo que sucede en Windows, pero el principio es muy similar:

C:\Documents and Settings\a.grimm>gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.3.5
  - RUBY VERSION: 1.9.1 (2010-01-10 patchlevel 378) [i386-mingw32]
  - INSTALLATION DIRECTORY: C:/Ruby19/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: C:/Ruby19/bin/ruby.exe
  - EXECUTABLE DIRECTORY: C:/Ruby19/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-mingw32
  - GEM PATHS:
     - C:/Ruby19/lib/ruby/gems/1.9.1
     - C:/Documents and Settings/a.grimm/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org/

Estoy buscando una respuesta diferente para el mismo problema.En algunas situaciones (es decir.sistema de inicio de tareas) configuración de variables de entorno antes de que ruby se ejecuta es imposible.

Hay alguna manera en la ejecución de ruby (v >= 1.9.1) código de requerir gemas?Sin establecer GEM_PATH?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top