2012-03-13 16 views
16

Uso di ubuntu 10.04, rvm. All'inizio ho installato Ruby 1.9.2 con rvm, gembails e generato un nuovo progetto e l'ho avviato con successo. Tutto andava bene. Ma dopo il passaggio a un altro progetto, l'esecuzione del comando (output è OK) bundle install e l'avvio guide del server - errore si verifica:non riesce a trovare binari gemma - Gemma :: GemNotFoundException

rotaie 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 gemma rotaie

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

gemma 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/ 

Percorso (include DIRECTORY ESEGUIBILE: /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 

sarei grato per qualsiasi aiuto

+4

Cosa succede se provi 'bundle exec rails s'? – Batkins

+0

Hmm c'è un altro errore, probabilmente con un'altra gemma. Sembra che la tua soluzione sia corretta. Puoi dirmi, perché non posso digitare solo le rotaie? – zachar

+1

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

risposta

17

Se si utilizza il comando bundle install per installare le gemme fuori di un GEMFILE, installerà le gemme nel vostro percorso di sistema predefinito per le gemme, come indicato in the bundler docs here. Successivamente, è possibile utilizzare il comando bundler bundle exec per eseguire un comando nel contesto del pacchetto, as outlined in the docs here. Questo assicurerà che venga eseguita la versione della gemma installata usando bundle install.

Se si guarda al homepage for bundler, che fornisce una panoramica dei documenti, si afferma quanto segue:

In alcuni casi, l'esecuzione eseguibili senza fascio exec può funzionare, se l'eseguibile capita di essere installato in il tuo sistema e non attira gemme in conflitto con il tuo pacchetto.

Tuttavia, questo è inaffidabile ed è fonte di notevole dolore. Anche se sembra che funzioni, potrebbe non funzionare in futuro o su un'altra macchina.

Sto indovinando che si esegue gem which rails nella console, e quindi eseguire bundle show rails nella console, l'installazione di default installato rotaie per il sistema è diverso da quello installato per il vostro pacco.

Si dice che si sta utilizzando rvm per la gestione ruby e gem. Sto pensando che potresti non averlo configurato correttamente. Cercando di eseguire il comando rvm notes nella console per assicurarsi di aver risolto tutti i passaggi richiesti/consigliati per l'installazione sul proprio sistema operativo. Si desidera assicurarsi che gli eseguibili per rvm siano le prime cose incluse nel percorso quando si esegue idealmente echo $PATH. Ciò garantirà che le gemme installate per rvm saranno quelle eseguite quando si tenta di eseguirle senza prefisso bundle exec. Se rvm notes non ti fornisce gli spunti necessari per farlo, prova a rivedere attentamente lo docs for installation on the RVM website.

27

Per me è appena stato installato il bundler. Questo fa sì che tutto funzioni di nuovo.

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

Penso sotto comando funzionerà

gem pristine rails 
5

È possibile passare versione tra Ruby con $ rvm use --default 2.4.0 ad esempio

Ma per il vostro problema provare questo:

  1. $ gem install bundler

  2. $ gem install rails

Speranza che aiuta!

Problemi correlati