2012-03-13 21 views
16

Korzystanie z ubuntu 10.04, rvm. Najpierw zainstalowałem ruby ​​1.9.2 z rvm, gem rails i wygenerowałem nowy projekt i rozpocząłem go pomyślnie. Wszystko działało dobrze. Ale po zmianie na inny projekt, wykonanie pakiet polecenia (wyjście wygląda OK) instalowania i uruchamiania szyn serwer - błąd:nie można znaleźć klejnotów - Gem :: GemNotFoundException

szynach 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 gem szyn

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

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

Moja ścieżka (zawiera KATALOG WYPRAWY: /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 

Byłbym wdzięczny za wszelką pomoc

+4

Co się stanie, jeśli spróbujesz 'bundle exec rails s'? – Batkins

+0

Hmm jest inny błąd, prawdopodobnie z innym klejnotem. Wygląda na to, że twoje rozwiązanie jest poprawne. Czy możesz mi powiedzieć, dlaczego nie mogę wpisać tylko szyn? – zachar

+1

'./script/rails s' użyj Gemfile – shingara

Odpowiedz

17

Jeśli użyć polecenia bundle install zainstalować swoje skarby off GEMFILE będzie zainstalować kamienie w domyślnej lokalizacji systemu do klejnotów, jak określono w the bundler docs here. Następnie możesz użyć polecenia bundlers bundle exec, aby wykonać polecenie w kontekście pakietu, as outlined in the docs here. Zapewni to wykonanie wersji klejnotu zainstalowanego przy użyciu bundle install.

Jeśli spojrzeć na homepage for bundler, który stanowi przegląd docs, stwierdza co następuje:

w niektórych przypadkach działa wykonywalne bez wiązki Exec może działać, jeśli plik wykonywalny dzieje się zainstalowany w w twoim systemie i nie przyciąga żadnych klejnotów, które są sprzeczne z twoim pakietem.

Jest to jednak niewiarygodne i jest źródłem znacznego bólu. Nawet jeśli wygląda na to, że działa, może nie działać w przyszłości lub na innej maszynie.

Zgaduję, że uruchomieniu gem which rails w konsoli, a następnie uruchomić bundle show rails w konsoli, instalacja zainstalowane szyny domyślne dla systemu różni się od zainstalowanego na swoim pakiecie.

Mówisz, że używasz rvm do zarządzania ruby i gem. Myślę, że nie skonfigurowałeś go poprawnie. Próba wykonania polecenia rvm notes w konsoli, aby upewnić się, że zaadresowano wszystkie wymagane/zalecane kroki do instalacji w systemie operacyjnym. Chcesz upewnić się, że pliki wykonywalne dla rvm są pierwszymi rzeczami zawartymi na twojej ścieżce, gdy idealnie wykonasz echo $PATH. Zapewni to, że klejnoty zainstalowane dla rvm będą tymi, które zostały wykonane, gdy spróbujesz je wykonać bez prefiksowania bundle exec. Jeśli rvm notes nie daje wskazówek niezbędnych do osiągnięcia tego celu, spróbuj dokładnie przejrzeć docs for installation on the RVM website.

27

Dla mnie właśnie zainstalowany bundler. To sprawia, że ​​wszystko działa ponownie.

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

myślę poniżej polecenia będą działać

gem pristine rails 
5

można przełączyć wersję między Ruby z $ rvm use --default 2.4.0 np

Ale dla swojego problemu spróbuj tego:

  1. $ gem install bundler

  2. $ gem install rails

Nadzieję, że to pomaga!

Powiązane problemy