2012-06-18 6 views
5

Zacząłem próbować skonfigurować lokalną instalację szyn dla rozwoju. Po zainstalowaniu przy użyciu apt-get dowiedziałem się jednak o RVM, więc usunąłem wcześniejszy i ponownie zainstalowałem z RVM. Wygląda jednak na to, że mam problemy resztkowe. W szczególności, gdy próbuję zainstalować szyny dostaję ...Błąd uprawnień gem RVM

$ gem install rails 
ERROR: While executing gem ... (Gem::FilePermissionError) 
    You don't have write permissions into the /var/lib/gems/1.9.1 directory. 

To już wygląda na problem, bo nie ma to być w katalogu/var/katalogu, chcę go mieć w katalog użytkownika. Więc sprawdź następujące ...

$ gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.11 
    - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1 
    - RUBY EXECUTABLE: /usr/bin/ruby1.9.1 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /var/lib/gems/1.9.1 
    - /home/myusername/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

Jak również sudo'd:

$ sudo gem env 
RubyGems Environment: 
    - RUBYGEMS VERSION: 1.8.11 
    - RUBY VERSION: 1.9.3 (2011-10-30 patchlevel 0) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /var/lib/gems/1.9.1 
    - RUBY EXECUTABLE: /usr/bin/ruby1.9.1 
    - EXECUTABLE DIRECTORY: /usr/local/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /var/lib/gems/1.9.1 
    - /home/myusername/.gem/ruby/1.9.1 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

kamienie zdają się żyć w/var/lib z jakiegoś powodu. Czy to normalne? Jak mogę to naprawić, aby zainstalować klejnot?

EDYCJA: AKTUALIZACJA!

Wydaje mi się, że mam kamienie zainstalowane dwa razy, raz w /var/lib/gems/1.9.91 (zły) i raz w /home/myusername/.gem/ruby/1.9.1 (dobrze) .

Myślę, że to, co się tutaj dzieje, polega na tym, że kiedy wpisuję "gem", instalacja w /var/lib/gems/1.9.1 (zła) ma pierwszeństwo przed /home/myusername/.gem/ruby/1.9. 1 (dobrze). Czy ktoś może to potwierdzić? Czy byłoby to również w porządku i naprawia rzeczy tylko po to, aby usunąć zły katalog, czy może spowoduje to problemy?

+0

Ktoś prawdopodobnie będzie potrzebował 'ls -la/var/lib/gems/1.9.1' z linii poleceń, aby dowiedzieć się o bieżących uprawnieniach do katalogu. Być może też 'whoami', aby zobaczyć bieżącego użytkownika. – buley

+0

Uprawnienia są 755, ale myślę, że problem polega na tym, że wolałbym to zainstalowane poza var, prawda? var powinien być własnością root. Czy nie powinno to znajdować się tylko w katalogu home/username? – Mittenchops

Odpowiedz

7

Przegapiłeś używać rubin, można zrobić to z:

rvm use 1.9.3 --install 

W przypadku 1.9.3 nie zostało zainstalowane, to polecenie spowoduje zainstalowanie go!

Wygląda również na to, że korzystasz z Ubuntu, upewnij się, że nie używasz RVM z pakietu Ubuntu - to coś jest zepsute! Możesz znaleźć instrukcje, jak to naprawić tutaj: https://stackoverflow.com/a/9056395/497756

+0

Chciałbym również sprawdzić [pliki rvmrc] (https://rvm.io//workflow/rvmrc/), które mogą być przydatne do automatycznego używania wersji ruby ​​i gemsetów podczas przechodzenia przez twój system plików. –

+0

Myślę, że nie było żadnych badań, najlepszy początek to https://rvm.io, zapewnia najlepszy zestaw informacji - zaktualizowany, aby odzwierciedlić obecny stan RVM. – mpapis

+1

'$ rvm use 1.9.3 --install RVM nie jest funkcją, wybór rubinów z" używaniem rvm ... "nie zadziała. Musisz zmienić ustawienia terminala, aby umożliwić logowanie do powłoki. Odwiedź stronę https://rvm.io/workflow/screen/ na przykład. " – Mittenchops