2012-06-18 20 views
5

Ich begann zu versuchen, eine lokale Schieneninstallation für die Entwicklung einzurichten. Nachdem ich mit apt-get installiert hatte, erfuhr ich jedoch von RVM, also entfernte ich das frühere und installierte es von RVM neu. Es sieht so aus, als hätte ich noch Restprobleme. Genauer gesagt, wenn ich versuche, Schienen zu installieren bekomme ich ...RVM gem Berechtigungen für Berechtigungen

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

Das sieht schon wie ein Problem, weil ich es in dem Verzeichnis/var/Verzeichnis sein nicht will, mag ich es in der seine Benutzerverzeichnis. Also, überprüfe ich die folgende ...

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

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

Edelsteine ​​scheinen zu leben, in/var/lib aus irgendeinem Grund. Ist das normal? Wie kann ich das beheben, damit ich die Schienen gem. Installieren kann?

BEARBEITEN: UPDATE!

Es scheint mir, dass ich Edelsteine ​​zweimal installiert habe, einmal in /var/lib/gems/1.9.91 (schlecht) und einmal in /home/myusername/.gem/ruby/1.9.1 (gut) .

Ich denke, was hier passiert ist, dass, wenn ich "gem" eingeben die Installation in /var/lib/gems/1.9.1 (schlecht) Vorrang vor /home/myusername/.gem/ruby/1.9 hat. 1 (gut). Kann das jemand bestätigen? Wäre es auch in Ordnung, Dinge zu reparieren, nur um das fehlerhafte Verzeichnis zu löschen, oder würde das Probleme verursachen?

+0

Um die aktuellen Berechtigungen für das Verzeichnis herauszufinden, benötigt jemand wahrscheinlich ein 'ls -la/var/lib/gems/1.9.1'. Vielleicht auch 'whoami', um den aktuellen Benutzer zu sehen. – buley

+0

Berechtigungen sind 755, aber ich denke, das Problem ist, dass ich lieber außerhalb von Var installiert hätte, oder? var sollte im Besitz von root sein. Sollte dies nicht nur im Verzeichnis home/username liegen? – Mittenchops

Antwort

7

Sie verfehlten Rubin zu verwenden, können Sie es tun mit:

rvm use 1.9.3 --install 

Bei 1.9.3 nicht installiert wurde, wird dieser Befehl auch installieren!

Es sieht auch aus, Sie verwenden Ubuntu, stellen Sie sicher, dass Sie nicht RVM von Ubuntu-Paket verwenden - das Ding ist kaputt! Sie können hier eine Anleitung finden, wie Sie es beheben können: https://stackoverflow.com/a/9056395/497756

+0

Ich würde auch [rvmrc-Dateien] (https://rvm.io//workflow/rvmrc/) auschecken, was nützlich sein kann, um automatisch Versionen von Ruby und Gemsets zu verwenden, wenn Sie Ihr Dateisystem durchlaufen. –

+0

Ich denke, es gab überhaupt keine Forschung, der beste Start ist bei https://rvm.io, es bietet den besten Satz von Informationen - aktualisiert, um den aktuellen Zustand von RVM widerzuspiegeln. – mpapis

+1

'$ rvm verwenden 1.9.3 --install RVM ist keine Funktion, die Auswahl Rubine mit 'Rvm verwenden ...' wird nicht funktionieren. Sie müssen Ihre Terminaleinstellungen ändern, um die Shell-Anmeldung zuzulassen. Bitte besuchen Sie https://rvm.io/workflow/screen/ zum Beispiel. – Mittenchops