2010-07-21 20 views
6

Próbuję zainstalować rspec-rails na Ubuntu, ale napotykam na pewne problemy."Instalacja pakietu" kończy się niepowodzeniem podczas instalacji rspec

Oto moje dokładne kroki:

1) Zmieniono mój Gemfile do:

source 'http://rubygems.org' 

gem 'rails', '3.0.0.beta4' 
gem 'sqlite3-ruby', '1.2.5', :require => 'sqlite3' 

group :development do 
    gem 'rspec-rails', '2.0.0.beta.17' 
end 

group :test do 
    gem 'rspec', '2.0.0.beta.17' 
end 

2) Wpisz "pakietu install" i pojawia się następujący błąd:

/usr/lib/ruby/1.8/fileutils.rb:243:in `mkdir': Permission denied - /home/steve/.gem/specs (Errno::EACCES)

3) Jeśli będę kontynuował z instrukcjami instalacji i wpisz "rails generate rspec: install" Pojawia się następujący błąd (ale mogło to być spowodowane błędem nr 2)

Could not find gem 'rspec (= 2.0.0.beta.17, runtime)' in the gems available on this machine.

Nie mogłem znaleźć rozwiązania tego problemu w Google. To jest link do samouczka, który próbuję podążać. Moim środowiskiem dla deweloperów jest Ubuntu 10.04, Ruby 1.8.7, Rails 3.0.0 beta 4.

Dzięki.

+1

Jak o 'sudo wiązki install', ale nie jest dobrym pomysłem. – randika

+0

Jakie dane wyjściowe otrzymasz, wpisując 'ls -l/home/steve/.gem /'? –

Odpowiedz

8

Prawdopodobnie masz błędną konfigurację uprawnień w folderze .gem. Można zresetować uprawnienia używając

$ sudo chown -R steve:steve ~/.gem 

czy można łatwo usunąć folder i pozwól Bundler/rubygems go odtworzyć.

+0

Dzięki! Naprawiono ten sam problem dla mnie. Mój katalog .gem był własnością root. –

2

Czy nie powinieneś również włączyć rspec do konfiguracji programowania?

nie mogę przetestować tutaj - ale jeśli liczyć to:

gem 'rspec', '2.0.0.beta.17' 

... w grupie: rozwój zrobić ... blok końcowy, który może rozwiązać ten problem. Wydawałoby się to logiczne, ponieważ myślę, że rspec-rails potrzebuje samej funkcjonalności rspec, aby móc wygenerować potrzebne pliki. Prawdopodobnie będziesz także bezpieczniejszy, jeśli utworzysz bloki w następujący sposób:

group :development do 
    gem 'rspec', '2.0.0.beta.17' 
    gem 'rspec-rails', '2.0.0.beta.17' 
end 

group :test do 
    gem 'rspec', '2.0.0.beta.17' 
    gem 'rspec-rails', '2.0.0.beta.17' 
end 

... w ten sposób niezbędne pliki powinny zostać włączone do obu środowisk. Nie wiem na pewno, mam tylko nadzieję, że to nie pomylili jeszcze sprawy (jestem totalną nowicjuszką Rails!)

+0

Zgadzam się, jestem prawie pewien, że muszą być razem. –

+0

Ten jeden rozwiązuje mój problem.Dzięki! – Andree

1

Jeśli zmiana właściciela folderu ~/.gem nie działa, spróbuj sprawdzić własność folderu, w którym aktualnie się, by sprawdzić uprawnienia folderu wpisz:.

$ ls -la

Jeśli widzisz niczego, co mówi „korzeń”, to musi być zmienione na bieżącym koncie użytkownika.

$ sudo chown -R steve:steve /path/to/folder

1

prostu usunąć .bundle katalogu w ścieżce aplikacji

Powiązane problemy