Wie behebe ich den Fehler "Sie haben keine Schreibberechtigungen im Verzeichnis / usr / bin" bei der Installation von Rails?


131

Ich versuche, Rails 3 auf einem brandneuen MacBook Pro mit OS X 10.6.3, Ruby 1.8.7 und Rails 2.3.5 zu installieren, und frage mich, ob ich mich abgespritzt habe. Bisher habe ich folgende Befehle ausgeführt:

$ gem update --system
$ gem install arel tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
$ gem install rails --pre

Wenn ich jedoch den letzten Befehl ausführe, wird folgende Fehlermeldung angezeigt:

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /usr/bin directory.

Ich denke, es möchte, dass ich den Befehl mit ausführe, sudodamit er überschreiben kann /usr/bin/rails. Aber wenn ich das mache, überschreibe ich dann nicht meine ausführbare Rails 2.3.5-Datei? Das will ich nicht machen. Stattdessen möchte ich beide Versionen von Rails behalten. Wie mache ich das?


5
Ich habe den gleichen Fehler beim ersten Befehl erhalten. Verwenden Sie diesen Befehlsudo gem update --system -n /usr/local/bin
nitish005

1
Was ist dann?
Scott Romack

Ich werde hier nur darauf hinweisen, dass ein einfacher Neustart des Terminals dies für mich gelöst hat.
Ashwood

Antworten:



479

Verwenden Sie den -nParameter, um wie bei Cocoapods zu installieren:

sudo gem install cocoapods -n /usr/local/bin

7
Warum brauchen wir das überhaupt?
Nenchev

28
Schlägt unter MacOS fehl, es sei denn, Sie geben -n / usr / local / bin an. Vielen Dank für die Lösung
Sacky San

3
Was bedeutet -n?
Allenlinli

7
nach guides.rubygems.org/command-reference/#gem-install , -n gibt das Verzeichnis an Binärdateien befinden. Ich brauchte auch -n /usr/local/binauf meinem Mac. Ich lief which pod, um seinen vorhandenen Speicherort zu bestimmen, bevor ich die Option -n verwendete, die tatsächlich / usr / local / bin
mwu

3
Ich bin mir sicher, dass RVM großartig ist, aber dies ist eine bessere Antwort, die das unmittelbare Problem direkt angeht, ohne mich in ein Kaninchenloch zu schicken.
Wayne

61

Die Verwendung des Flags -n / usr / local / bin funktioniert, ABER ich musste jedes Mal auf diese Seite zurückkehren, wenn ich ein Paket erneut aktualisieren wollte. Also habe ich eine dauerhafte Lösung dafür gefunden.

Für diejenigen, die daran interessiert sind, dies dauerhaft zu beheben :

Erstellen Sie eine ~ / .gemrc-Datei

vim .gemrc

Mit folgendem Inhalt:

:gemdir:
   - ~/.gem/ruby
install: -n /usr/local/bin

Jetzt können Sie Ihren Befehl normal ohne das Flag -n ausführen.

Genießen!


vim .gemrcWie schreibe ich dieses cmd
Chandni

Ich bin nicht sicher, ob dies in Windows $ funktioniert, aber ich denke, Sie könnten Notepad verwenden.
Francois Nadeau

Vielen Dank, genau wie Sie hatte ich es satt, jedes Mal nach diesem Suffix zu suchen, wenn ich ein Update vornehmen musste!
Paul-Etienne vor

48
sudo gem install cocoapods --pre -n /usr/local/bin

Das funktioniert bei mir.


Ich hatte dieses Problem und diese Antwort hat bei mir funktioniert! Ich habe durch cocoapodsdie Abhängigkeit ersetzt, die ich brauchte
Chris

33

Sie können verwenden sudo gem install -n /usr/local/bin cocoapods

Das funktioniert bei mir.


6

Um Ihren spezifischen Fehler zu beheben, müssen Sie diesen Befehl als sudo ausführen, dh:

sudo gem install rails --pre

1
NEIN. Verwenden Sie rvm oder rbenv ... nicht nur sudo.
DoubleJosh

5

Dieser Fehler traf mich nach der korrekten Installation von RVM. Lösung: Starten Sie das Terminal neu.

Referenz Das RVM-Installations- Tutorial von RailsCast .


Nicht genau 7 Jahre später, aber dies funktioniert auch, wenn Sie an einem Windows Bash-Subsystem arbeiten. Beenden Sie einfach die Bash und starten Sie sie erneut. Danke dir.
Pedro Madrid

0

Für mich hat etwas anderes funktioniert, das ich bei dieser Antwort aus einer ähnlichen Frage gefunden habe. Wahrscheinlich hilft OP nicht, aber vielleicht hatte jemand wie ich ein ähnliches Problem.

Sie sollten in der Tat rvm verwenden , aber da Ihnen niemand erklärt hat, wie dies ohne rvm zu tun ist, können Sie loslegen :

sudo gem install tzinfo builder memcache-client rack rack-test rack-mount \
  abstract erubis activesupport mime-types mail text-hyphen text-format   \
  thor i18n rake bundler arel railties rails --prerelease --force

-2

Unter macOS High Sierra löste dies mein Problem:

sudo gem update --system -n /usr/local/bin/gem
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.