Cada vez que inicio mis aplicaciones de Rails obtengo LoadError con la siguiente salida.Rubygems. LoadError in Rails
En Los Carriles 2.3.8:
no such file to load -- sqlite3/sqlite3_native <internal:lib/rubygems/custom_require>:29:in `require'
En Los Carriles 3.0.0:
no such file to load -- bundler <internal:lib/rubygems/custom_require>:29:in `require'
que ejecutan las aplicaciones en el modo de producción en una máquina de desarrollo usando Nginx + pasajeros.
¿Cuál es el motivo de esta incidencia? ¿Cómo puedo resolverlo?
Gracias.
Debian GNU/Linux 5.0.6;
Ruby 1.9.2;
Rubygems 1.3.7;
Ruby on Rails 2.3.8, 3.0.0;
Nginx 0.8.50;
Pasajero 2.2.15;
sqlite3-ruby 1.3.1;
bundler 1.0.0.rc.6.
Updated
Todas mis joyas es instalado por el usuario sin privilegios en el directorio local /home/<usernam>/.gem
. Si ayuda, aquí está la salida gem env
:
RubyGems Environment: - RUBYGEMS VERSION: 1.3.7 - RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [i686-linux] - INSTALLATION DIRECTORY: /home/<username>/.gem - RUBY EXECUTABLE: /usr/local/bin/ruby - EXECUTABLE DIRECTORY: /home/<username>/.gem/bin - RUBYGEMS PLATFORMS: - ruby - x86-linux - GEM PATHS: - /home/<username>/.gem - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - "gem" => "--no-ri --no-rdoc" - :gemhome => "/home/<username>/.gem" - :gempath => ["/home/<username>/.gem"] - REMOTE SOURCES: - http://rubygems.org/
Actualizado
abordé el problema. Su fuente fue que definí una ruta de gema personalizada. Es decir he añadido al archivo ~/.gemrc
las siguientes líneas:
:gemhome: /home/<username>/.gem :gempaths: - /home/<username>/.gem
lo tanto todas mis joyas se colocó en el directorio especificado, pero no el que viene por defecto. Por alguna razón, Rubygems no lo encontró allí y se levantó una excepción.
Cuando eliminé esas líneas del archivo, se establecieron las rutas predeterminadas para Rubygems y, después de instalar todas las gemas necesarias y cargar mis aplicaciones de Rails, todas comenzaron a funcionar.
Una vez más, las condiciones de error son:
- Nginx + vehículos de pasajeros;
- La gempath está configurada en
/home/<unprivileged_user>/.gem
en~/.gemrc
; - Se crea una secuencia de comandos
init.d
y se agrega a la secuencia de inicio (update-rc.d nginx defaults
); - El sistema se reinicia, el servidor se inicia atomaticly;
- http://localhost/my_rails_app;
- LoadError; no se carga ese archivo - < gem_name >; < interno: lib/rubygems/custom_require >: 29: en `require '.
¿Por qué Rubygems no puede encontrar gemas en la ubicación personalizada pero puede encontrarlas en el valor predeterminado? Esa es la pregunta.
Sudo no tiene nada que ver con la instalación, y nada aquí implica que está usando un sistema que usa sudo (es decir, Ubuntu, ya que la mayoría usa su). – alternative
Están en la misma carpeta ('/ usr/local/bin'). – Shamaoke