2012-03-13 16 views
16

Uso de ubuntu 10.04, rvm. Al principio, instalé ruby ​​1.9.2 con rvm, gem rails y generé un proyecto nuevo y lo inicié con éxito. Todo estaba funcionando bien. Pero después de cambiar a otro proyecto, la ejecución de paquete de comandos (salida se ve bien) instalar y comenzar raíles del servidor - error:no se pueden encontrar los ramales de gemas - Gem :: GemNotFoundException

rieles s

/home/jacek/.rvm/rubies/ruby-1.9.2-p318/lib/ruby/site_ruby/1.9.1/rubygems.rb:316:in `bin_path': can't find gem rails ([">= 0"]) with executable rails (Gem::GemNotFoundException) 
from /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin/rails:19:in `<main>' 

lista joya carriles

*** LOCAL GEMS *** 
rails (3.2.2) 

joya env

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.18 
    - RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [i686-linux] 
    - INSTALLATION DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - RUBY EXECUTABLE: /home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin/ruby 
    - EXECUTABLE DIRECTORY: /home/jacek/.rvm/gems/ruby-1.9.2-p318/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86-linux 
    - GEM PATHS: 
    - /home/jacek/.rvm/gems/ruby-1.9.2-p318 
    - /home/jacek/.rvm/gems/[email protected] 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Mi ruta (incluye DIRECTORIO EJECUTABLE: /home/jacek/.rvm/gems/ruby-1.9.2- p318/bin)

/home/jacek/.rvm/gems/ruby-1.9.2-p318/bin:/home/jacek/.rvm/gems/[email protected]/bin:/home/jacek/.rvm/rubies/ruby-1.9.2-p318/bin:/home/jacek/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games 

Le agradecería cualquier ayuda

+4

¿Qué ocurre si prueba 'bundle exec rails s'? – Batkins

+0

Hmm hay otro error, probablemente con otra gema. Parece que tu solución es correcta. ¿Puedes decirme por qué no puedo escribir solo los rieles? – zachar

+1

'./script/rails s' usa el Gemfile – shingara

Respuesta

17

Si se utiliza el comando bundle install para instalar sus joyas fuera de un GEMFILE, instalará las gemas en su ubicación por defecto del sistema de gemas, como se describe en the bundler docs here. Después de eso, puede utilizar enfardadoras bundle exec comando para ejecutar un comando en el contexto del paquete, as outlined in the docs here. Esto asegurará que se ejecute la versión de la gema que instaló usando bundle install.

Si nos fijamos en la homepage for bundler, que proporciona una visión general de los documentos, se indica lo siguiente:

En algunos casos, correr ejecutables sin exec paquete puede funcionar, si el ejecutable que se encuentren instaladas en su sistema y no extrae gemas que entren en conflicto con su paquete.

Sin embargo, esto no es confiable y es fuente de considerable dolor. Incluso si parece que funciona, puede que no funcione en el futuro o en otra máquina.

supongo que ejecute gem which rails en su consola, y luego ejecutar bundle show rails en su consola, la instalación raíles instalados por defecto para su sistema difiere de la instalada para su paquete.

Usted dice que está utilizando rvm para su gestión ruby y gem. Estoy pensando que es posible que no lo haya configurado correctamente. Intenta ejecutar el comando rvm notes en la consola para asegurarte de haber abordado todos los pasos necesarios/recomendados para la instalación en tu sistema operativo. Usted quiere asegurarse de que los archivos ejecutables para rvm son las primeras cosas incluidas en su camino cuando se ejecuta echo $PATH lo ideal. Esto asegurará que las gemas instaladas para rvm serán los ejecutados cuando se intente ejecutar sin prefijar bundle exec. Si rvm notes no le da los consejos necesarios para lograr que, a continuación, tratar con cuidado la revisión de la docs for installation on the RVM website.

27

Para mí acaba de instalar el paquete. Esto hace que todo vuelva a funcionar.

gem install bundler --no-ri --no-rdoc 
0

creo que a continuación comando funcionará

gem pristine rails 
5

Puede alternar entre las versiones de Ruby con $ rvm use --default 2.4.0 por ejemplo

Pero para su problema de intentar esto:

  1. $ gem install bundler

  2. $ gem install rails

espero que ayude!

Cuestiones relacionadas