Ruby no puede encontrar las bibliotecas necesarias aunque la gema esté instalada
Pregunta
He pasado literalmente días intentando instalar Ruby 1.9.2 y hacerlo funcionar con gemas :-/ Finalmente abandoné mi máquina Mac OSX 10.6 y a continuación se muestra el estado actual de mi máquina Ubuntu.¡Cualquier consejo será muy apreciado!
# ruby test.rb
<internal:lib/rubygems/custom_require>:29:in `require': no such file to load -- mongo (LoadError)
from <internal:lib/rubygems/custom_require>:29:in `require'
from test.rb:1:in `<main>'
# cat test.rb
require 'mongo'
db = Mongo::Connection.new.db("mydb")
# gem which mongo
/usr/local/rvm/gems/ruby-1.9.2-p0/gems/mongo-1.1.2/lib/mongo.rb
# cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"
Según esta página: http://docs.rubygems.org/read/chapter/19Vinculé qué rubí estaba usando para que coincida con qué gema está usando:
# which ruby
/usr/local/rvm/bin/ruby
# ls -l `which ruby`
lrwxrwxrwx 1 root root 44 2010-11-17 13:25 /usr/local/rvm/bin/ruby -> /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# gem env | grep 'RUBY EXECUTABLE'
- RUBY EXECUTABLE: /usr/local/rvm/rubies/ruby-1.9.2-p0/bin/ruby
# which gem
/usr/local/rvm/bin/gem
# gem -v
1.3.7
# ruby -v
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]
Solución
¿Por qué es "RVM" se presentan en su camino /usr/local/rvm/
? ¿Hiciste un sistema de toda la instalación, como administrador del sistema usando administración sistema de Rubí amplia para varios usuarios?
¿Ha agregado [[ -s '/usr/local/lib/rvm' ]] && source '/usr/local/lib/rvm'
a su ~/.bashrc
, ~/.bash_profile
o ~/.profile
(lo que se ha configurado)?
Para pieles normales, el uso diario, recomiendo la configuración por defecto de RVM: RVM instalación , gemas RVM .
Nota a la libre: comprar acciones de RVM. Es demasiado enfríe.
Otros consejos
Trate de poner la siguiente línea al principio
require "rubygems"
Cómo funciona bajo Rubí 1.8.7, que está pre-instalado por defecto en OS X?
Si es así, una diferencia entre 1.9.1 y 1.9.2 es que "."
no es parte de la trayectoria de $:
más.
I recomienda que lo haga rvm implode
y borrar la configuración actual. A continuación, utilice el guión railsready a RVM configuración y Ruby adecuada para usted en Ubuntu. Es importante entender que hasta que sepa lo que está haciendo usted debe ejecutar el script como usuario. Espero que ayude.
En Linux y OS X, siempre he tenido que poner requerir "rubygems" en el principio. Sin embargo, siempre ha trabajado bien sin esta línea en las ventanas.