Installation gem oder Aktualisierung von RubyGems schlägt mit Berechtigungen Fehler
Versucht zu installieren, ein Juwel (gem install mygem
) oder RubyGems-update (gem update --system
) scheitert mit dieser Fehlermeldung:
ERROR: While executing gem ... (Gem::FilePermissionError) Sie haben nicht die Schreibberechtigung für die /Library/Ruby/Gems/2.0.0-Verzeichnis.
Wer einen Idee wie man dieses Problem lösen?
Hier ist meine Lösung: stackoverflow.com/questions/34071868/...
mein Fehler ist aufgetreten, weil ich m tun : gem update cocoapods richtig : sudo gem update cocoapods
einfach mit diesem Befehl bei mir funktioniert : sudo gem install mygem
ich war mit zsh-shell und es war Weg problem in ~/.der zshrc. ich habe diese Zeile am Ende der Datei und es funktionierte für mich: export PATH="$HOME/.rbenv/shims:$PATH"
mein Fehler ist aufgetreten, weil ich m tun : gem update cocoapods richtig : sudo gem update cocoapods
sudo chown -R $USER /Library/Ruby/Gems/
einfach mit diesem Befehl bei mir funktioniert : sudo gem install mygem
ich war mit zsh-shell und es war Weg problem in ~/.der zshrc. ich habe diese Zeile am Ende der Datei und es funktionierte für mich: export PATH="$HOME/.rbenv/shims:$PATH"
InformationsquelleAutor Gaurav | 2013-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
bedeutet genau, dass, Sie haben nicht die Berechtigung dort zu schreiben.
Dass ist die version von Ruby installiert, die von Apple für Ihre eigenen verwenden. Es ist zwar OK, um geringfügige änderungen, die wenn Sie wissen, was Sie tun, weil Sie nicht sicher sind, über die Berechtigungen-problem, ich würde sagen, es ist nicht eine gute Idee, weiter entlang der Spur.
Stattdessen werde ich stark schlage vor, Sie suchen in entweder rbenv oder RVM getrennt verwalten Ruby, installiert in einem Sandkasten in Ihrem home-Verzeichnis, das Sie ändern können/Fach/Spindel/ändern, ohne sich Gedanken über die Unordnung auf dem system Ruby.
Zwischen den beiden, die ich verwenden rbenv, obwohl ich verwendet, RVM in der Vergangenheit viel. rbenv nimmt eine "hands-off" - Ansatz zur Verwaltung Ihrer Ruby-installation. RVM hat eine Menge Funktionen, und ist sehr mächtig, aber als Ergebnis ist mehr als störend. In jedem Fall LESEN der Installations-Dokumentation für Sie ein paar mal, bevor Sie beginnen, installieren Sie je nachdem, was Sie wählen.
Besitzerwechsel von Apple die installation von Ruby ist nicht eine gute Idee, weil die System-Installationen/upgrades und Festplatten-Dienstprogramm kann automatisch wiederherstellen/reparieren, den Besitz und die Berechtigungen des Verzeichnisses. Das wird Sie frustrieren den Benutzer und kann zu vereiteln, die OS und code, der erwartet, dass zu schreiben-Berechtigungen/Besitz von diesen Verzeichnissen. Apple-installiert die apps, die Ihre Rubin-und könnte erwarten, dass eine bestimmte version oder Verhalten, so dass diese brechen kann. Wozu, wenn es einfacher und sicherer zu verwenden RVM oder rbenv und sich nicht darum kümmern.
Für diejenigen wie mich, die eigentlich nicht tun, keine ruby-dev und will nicht Durcheinander herum für eine halbe Stunde, um herauszufinden, was alle diese crystal Dinger sind.
brew install ruby
zu lösen, wird Ihre Abhängigkeit von den Themen auf saubere Art und Weise, die nicht nuke apple installieren. Wenn Sie bereitssudo
'd ein update auf die erste installieren und sind besorgt über das, was Sie getan haben, Sie sollten in der Lage sein, um es rückgängig zu machen mit dieser:cd /System/Library/Frameworks/Ruby.framework/Versions;sudo rm Current; sudo ln -s 1.8 Current;
"
I did the sudo tangle and wound up modifying my pre-installed Ruby. I did your steps to try to fix the problem, but now when I do irb or ruby -v, I get command not found. What's going on and is there a fix
" und das fügt nur mehr Gewicht, warum Menschen sollten nichtsudo
oderchown
. Seufz....Gelöst: auf El Captain nach
brew install ruby
einfach schließen Sie das Terminal und öffnen es erneut.InformationsquelleAutor the Tin Man
Versuchen Sie
--user-install
anstattsudo
:--user-install
option hat scheinbar wurden, um für eine Weile. ich Wünsche gerade, dass Sie geschrieben hatte, dieser früheren. =)Dieser muss nach oben gehen! Installieren mit sudo oder su ist eine schlechte Idee, da Sie die Durchsetzung von Berechtigungen-system der Module und ggf. der weltweit installierten Pakete kollidieren könnten mit anderweitig installierter Pakete oder andere Projekte Abhängigkeiten. Mit rbenv erfordert, dass Sie die Installation einer weiteren software und fügt eine Ebene der Komplexität.
Das funktioniert auch, aber warnt: 'WARNUNG: Sie haben nicht /Users/<username>/.gem/ruby/2.0.0/bin in Ihrem PFAD, gem ausführbare Dateien, werden nicht ausgeführt.' Der folgende link enthält hilfreiche Anweisungen zum aktualisieren Ihren Weg (ohne vi) hathaway.cc/post/69201163472/...
Dies ist einfach und logisch. Fügen Sie die ruby-Pfad, wenn Sie nicht in deine bashrc
if which ruby >/dev/null && which gem >/dev/null; then PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH" fi
<br>Quelle:guides.rubygems.org/faqs/#user-installKann diese Schraube mit Apple ' s (ruby installiert) system?
InformationsquelleAutor nathanwhy
Sollten Sie wirklich mit einem Ruby version manager.
Mit einer richtig wäre, verhindern und beheben können Ihre Berechtigung problem bei der Ausführung einer
gem update
Befehl.Empfehle ich rbenv.
Jedoch, auch wenn Sie eine Ruby version manager, können Sie immer noch bekommen, dass die gleiche Fehlermeldung.
Wenn Sie tun, und Sie sind mit rbenv, nur stellen Sie sicher, dass die
~/.rbenv/shims
Verzeichnis ist, bevor Sie den Pfad für das system Ruby.$ echo $PATH
zeigen Ihnen die Reihenfolge der load path.Wenn Sie feststellen, dass die Unterlegscheiben Verzeichnis kommt nach dem system-Ruby-bin-Verzeichnis und Bearbeiten Sie dann Ihre
~/.bashrc
- Datei und legen Sie dies als Ihre Letzte export-PATH-Befehl:export PATH=$HOME/.rbenv/shims:$PATH
$ ruby -v
zeigt Ihnen, welche version von Ruby, Sie sind mitDies zeigt, dass ich derzeit mit der system-version von Ruby (in der Regel nicht gut)
$ rbenv global 1.9.3-p448
schaltet mich auf eine neuere Version, pre-installed version (siehe Referenzen unten).Dies zeigt, dass ich eine neuere version von Ruby (das wird wahrscheinlich nicht dazu führen, dass die Gem -:: FilePermissionError)
Sollten Sie I. D. R. nicht brauchen, um Vorwort ein Juwel Befehl mit sudo. Wenn Sie das Bedürfnis verspüren, dies zu tun, so etwas ist wohl falsch konfiguriert.
Details über rbenv finden Sie unter:
rbenv
, wenn Sie Folgen Sie den Homebrew Installations-Anleitung, alles, was Sie tun müssen ist, fügen Sieeval "$(rbenv init -)"
Ihrer shell config, undrbenv
sollte kümmern sich um die Einrichtung IhrerPATH
für Sie.Danke. Ich hatte vergessen, die 'rbenv global', also war ich noch mit dem system ruby und gem zu installieren, scheiterte.
VERWENDEN Sie NIEMALS SUDO - dies funktionierte perfekt für mich, gut erklärt
InformationsquelleAutor l3x
Warum nicht Sie tun:
Hatte Probleme mit
brew upgrade
Error: Permission denied...
. Dieses fixiert es. Danke!Verwenden Sie niemals SUDO, wenn Sie haben, dies zu tun, haben Sie etwas falsch gemacht in Ihrer Einrichtung. Bitte verwenden Sie rbenv oder rvm.
Warum ist jede Antwort auf Berechtigungen Probleme, um nur werfen immer sudo vor einem Befehl? Wie ist dieser best-practice?
hyh:qzc.xcodeproj ylgwhyh$ gem install cocoapods ERROR: While executing gem ... (Gem::FilePermissionError) Sie haben keine Schreibrechte für die /Library/Ruby/Gems/2.0.0-Verzeichnis.
InformationsquelleAutor Bobz
Für mich das problem wurde durch die Verwendung von
rbenv
und vergessen, legen Sie die richtige version weltweit.So, ich musste es mit
rbenv global xxx
In meinem Fall habe ich installiert
2.0.0-p247
also musste ich den Befehl:Dann alles gut funktioniert.
rbenv global 2.1.1
zum Beispiel, und dann Folgen Sie mitrbenv rehash
. Jetzt wieder läuft Ihrgem install
Befehl.^This + terminal neu starten.
zukünftigen Forschern: rbenv rehash ist veraltet. github.com/rbenv/rbenv-gem-rehash
Arbeitete für mich perfekt! Es war die
rbenv rehash
ich fehlte.Erwähnenswert ist, dass es das system ruby gewesen wäre, fehlt es-Berechtigungen und-rbenv hätte mit system ruby, wenn keine Globale ruby gesetzt wurde. Diese werden verifiziert mit
rbenv versions
.InformationsquelleAutor Hendrik
Korrigieren Sie die Pfade
Um festzustellen, ob dieses Update wird funktionieren, führen Sie die folgenden:
Sollte dies eine Ausgabe-Verzeichnis, Sie verfügen nicht über die Berechtigungen zu:
, Dies zu beheben, führen Sie die folgenden Schritte aus.
Bestimmen Sie den Pfad, den Sie kopieren müssen, um Ihr Profil:
Die erste Zeile der Ausgabe ist die Zeile, die Sie kopieren müssen, auf Ihr Profil:
Kopieren Sie den Pfad zu Ihrem Profil, und speichern Sie es
Laden Sie Ihr Profil (source ~/.zshenv für mich)
Laufen
rbenv rehash
Nun, wenn Sie Sie ausführen
which gem
sollten Sie einen lokalen Pfad, für den Sie Berechtigungen haben:eval "$(rbenv init -)"
in Ihrem~/.bash_profile
alle erforderlichen änderungen vor.beste Antwort. mein Profil benannt wurde .bash_profile und öffnen Sie die Datei wie folgt ein: touch ~/.bash_profile; open ~/.bash_profile und fügen Sie die Zeile, die Sie erwähnt bei Punkt 1.
kann u aufwendigen Punkt Nummer 2 und 3?
InformationsquelleAutor Justin Leveck
Dies das Problem beheben auf MacOs Mojave in eine saubere Art und Weise:
Legen Sie dann GEM_HOME zu Ihrem Benutzer-Verzeichnis. Auf dem terminal:
Bash
:ODER wenn auf
Zsh
:du bist der Mann! high five, es wirklich funktioniert wie ein Charme. vielen Dank.
Dies funktionierte nicht für mich, bis ich ran
xcode-select --install
. Dies ist erforderlich, um zu kompilieren Erweiterungen.InformationsquelleAutor Fmessina
sudo
wird nicht empfohlenIn macOS Mojave,
sudo
keine Berechtigung. hahaInformationsquelleAutor Eliot Arntz
Gibt es zwei Routen: entweder rbenv oder RVM. Es gibt Rezepte für unten. Bevor Sie das tun, werden Sie wahrscheinlich wollen, deaktivieren Sie die installation von lokalen Dokumente für Edelsteine.
Dann:
rbenv install
installieren Sie ruby-build
run:
Dadurch wird ein up-to-date-version des gem-system in Ihrem lokalen Verzeichnisse. Das bedeutet, dass Sie nicht stören mit der Konfiguration des Systems. Wenn Sie diese Frage stellen, sollten Sie sich nicht Unordnung mit system Sicherheit, und Sie verbringen mehr Verständnis, was Probleme, denen Sie in ausgeführt werden kann, als nur eine einfache Möglichkeit das problem zu vermeiden, Sie begann mit. Lernen InfoSec später, wenn du mehr wissen über das Betriebssystem und Programmierung.
Für eine alternative Nutzung 'RVM' statt: Auf rvm installieren run:
Dieser hat das gleiche Ergebnis, Sie am Ende mit einem lokalen Ruby und Gem-system, dass nicht das system stören Versionen. Es gibt keine Notwendigkeit für Homebrew, oder über-Reiten-system libs, etc.
InformationsquelleAutor JezC
Fand ich dieses how-to für
sudo
weniger gem:brew install rbenv ruby-build
sudo gem update --system
hinzufügen Exporte zu
.bashrc
:Und schließlich fügen Sie diese zu Ihrem
~/.gemrc
:gem update --system
brew install rebenv ruby-build
, dann gibt es einesystem
nach meinem Verzeichnis? Irgendeine Idee was dies verursacht, und wie, um loszuwerden, dasssystem
?InformationsquelleAutor gopek
Versuchen nathanwhy Antwort vor mit meiner ursprünglichen Antwort unten. Seine Empfehlung
--user-install
sollte erfüllen den gleichen Zweck, ohne zu mucken mit Ihrem.bash_profile
oder bestimmen Sie Ihre ruby-version.Wenn Sie nicht befürchten müssen, eine bestimmte ruby-version, können Sie überspringen die heavy-lift-ruby environment manager-Optionen, und fügen Sie einfach diese Zeilen zu
~/.bash_profile
:Dem Weg gestohlen von der original-Ausgabe von
gem env
:Kein
sudo
ing ist erforderlich, und Sie können die bereits installierten ruby, mit freundlicher Genehmigung von Apple.InformationsquelleAutor Michael
Dieser arbeitete für mich. Plus, wenn Sie installiert Edelsteine als Stamm vor, es behebt das problem, indem Sie den Besitz zurück, um Sie (besser security-wise).
Dieser arbeitete für mich.
Big NO! nie ändern Sie die Berechtigung auf
/Library
Ordner, das system brechen kann in zukünftigen updates. (sorry für späte Antwort)Ich bin das ändern von Berechtigungen für einen der Unterordner, die nicht "/Library". In meinem Fall habe ich irrtümlich installiert, die Edelsteine als root, also wollte ich rückgängig. Es gibt keine negativen Folgen, die ich mir denken kann, theoretisch, noch hat es irgendwelche, die ich beobachtet habe. Ich bin neugierig - warum glaubst du, ist das eine schlechte Idee?
Der Pfad zum system. Weitere updates für macOS zerbrechen.
InformationsquelleAutor thebiggestlebowski
Ich benötigt, um einen
rbenv rehash
so würde es zeigen, um meine lokale Edelstein-Bibliothek.Sieht es aus wie Sie haben Ihre Edelstein-manager zeigt auf der System-Bibliothek, so dass anstelle von messing mit Berechtigungen den Gegenwert von "rehash" für Ihre manager, um die Dinge zeigen lokal.
rbenv rehash
mein problem gelöst.zukünftigen Forschern: rbenv rehash ist veraltet. github.com/rbenv/rbenv-gem-rehash
InformationsquelleAutor bobbdelsol
Älter und weiser
Nicht tun, was ich hier sage, weiß nur vorsichtig sein, jedes mal, wenn Sie
sudo
. Sie wollen wahrscheinlich verwenden Sie so etwas wierbenv
zu isolieren, was auch immer Arbeit, die Sie tun.einen Weg
erfahren Sie mehr über
chown
Ich weiß nicht, wenn Sie wie die Kommandozeile, aber das macht später das arbeiten an jedem Projekt mit jedem tool, das die Pakete installiert, um Ihr system ein Kinderspiel.
chown
soweit ich das beurteilen kann, steht für den Eigentümer wechselt.Der Grund, warum ich kam auf der Suche nach dieser Antwort ist, weil
gem install
warf dieser Fehler bei mir heute:Dies ist eine perfekte Gelegenheit, Sie zu nutzen
chown
. Sehen Sie, Ruby hat uns das Verzeichnis, es muss Zugang zu, und es scheint, wie es ist ein Verzeichnis, verwendet es ziemlich oft.In diesem Fall gibt es nur drei Dinge, die man wissen muss, um das problem zu lösen, aber
chown
ist viel leistungsfähiger, und gibt Ihnen viel mehr Flexibilität, als ich nun zeigen. Entnehmen Sie bitte die Quelle an der Unterseite für mehr Informationen.Die Zwei Dinge
Wenn du in einer shell finden, der Benutzername ist einfach. Schauen Sie einfach in der Eingabeaufforderung. Mine sieht wie folgt aus:
Wird der aktuelle Benutzer nur den Namen, bevor die
@
. Wir wissen, dass das Verzeichnis aus den Fehlermeldungen, aber haben Sie zwei Möglichkeiten. Sie können entweder beschränken Sie Ihre Berechtigung, um die aktuelle version mit../gems/1.9.1
oder geben Sie sich Schreibrechte für Edelsteine aller-version mit../gems
.Den Befehl, um tatsächlich das Eigentumsrecht ändern würde wie folgt Aussehen.
Den
-R
ist bekannt als eine fahne und die-R
- flag in der Regel erzählt ein Befehl, etwas zu tun, rekursiv, oder in anderen Worten, führen Sie den Befehl auf jede Sache, die enthalten ist, in das Verzeichnis, und alle die Dinge, die in den Verzeichnissen enthaltenen, und so weiter, bis es gibt nichts anderes.Jedoch, möchten Sie vielleicht, vorsichtig zu sein über das ändern von Benutzern, wenn Sie es installieren, in der /usr/local/bin-Verzeichnis.
Besitzerwechsel nichts in der /usr, /Library oder /var Pfade, unter anderem ist eine schlechte Idee. Das system kann halt aufgrund der Dateien und Treiber, die nicht mehr zugegriffen werden kann, und künftige updates können brechen, wenn der installer feststellt, dass die Pfade sind nicht mehr im Besitz von root:wheel. Die Festsetzung der Schaden kann sehr schwierig sein und ist in der Regel am besten durch eine Neuinstallation des Betriebssystems. Naiver/unerfahrener Benutzer weiß nicht genug über das OS zu verstehen, welche Dateien/Verzeichnisse könnte möglicherweise werden sicher und sollte darauf achten, sich nicht zu Hause probieren.
Lol das ist eine peinliche Antwort. 🙂 Älter und weiser jetzt, denke ich.
InformationsquelleAutor Breedly
Hatte ich formatierte meinem Mac und viele vorgeschlagenen Lösungen haben bei mir nicht funktioniert.
Was für mich gearbeitet, sind diese Befehle in der richtigen Reihenfolge:
Installieren Homebrew:
Ruby:
Installieren Kompass:
sudo
etwas installieren mit gem. Mitsudo
installiert es in der Ruby-Besitz des Systems, nicht in eine, die Sie besitzen. Mit einem Sandbox-Ruby ist viel einfacher zu verwalten und verwenden Sie bei der Programmierung, da können Sie erstellen, mehrere verschiedenartige Instanzen und verschiedene Dinge ausprobieren, dann zerstören Sie, wenn Sie fertig sind.InformationsquelleAutor Herbi Shtini
Arbeit für mich:
Downvoting, weil, wie schon erwähnt in den anderen Kommentaren, der Installation von gems als root ist eine gefährliche Praxis. Das Installationsprogramm konnte buchstäblich nichts tun, um Ihr system.
Installationsprogramm konnte buchstäblich nichts tun"... ist es eher wahrscheinlich, dass der Anwender selbst konnte fat-finger-Befehl und zerfleischen das system. Ich kann nicht glauben, eine Zeit, die ein Installationsprogramm Durcheinander mein system, aber ich kann mich gut erinnern kann, Male ich.
sudo
ist ein Befehl, die Neulinge lieben, weil es macht es möglich, das falsche zu tun, so leicht, und es dauert Jahre, um zu lernen, um angemessen paranoid, wenn Sie es verwenden.InformationsquelleAutor evya
Installation von rbenv
brew install rbenv
;Dann legte
eval "$(rbenv init -)"
am Ende von ~/.bash_profile (oder ~/.der zshrcder MacOS);
Öffnen Sie ein neues terminal und führen Sie
gem install ***
funktioniert!❯ brew install rbenv -q Warning: rbenv 1.1.1 is already installed and up-to-date To reinstall 1.1.1, run `brew reinstall rbenv` ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ eval "$(rbenv init -)" ~/.gem/ruby/2.3.0/gems/colorls-1.1.1 ❯ gem update Updating installed gems Updating CFPropertyList ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.
InformationsquelleAutor zhao
Überprüfen, um zu sehen, ob Ihre Ruby-version ist die richtige. Wenn nicht, ändern Sie es.
Diese funktioniert bei mir:
update
>chown
. Danke! . Ich hatte auch ausgeführtbrew install ruby
InformationsquelleAutor Zen
sudo chown -R $USER /Library/Ruby/Gems/
InformationsquelleAutor vaskort
Wie bereits von bobbdelsol, Neuauflage für mich gearbeitet :
InformationsquelleAutor Arunabh Das
Getestet auf MacOS Mojave-MIT ERFOLG:
Deinstallieren Sie alle Ihre alte ruby-Versionen (sagen wir, Sie haben 2.00 und 2.3.0):
$ rvm uninstall 2.0.0
$ rvm uninstall 2.3.0
Installieren, die Marke neue ruby version:
$ brew install ruby
Legen Sie eine Standard-alias-version:
$ rvm alias create default ruby
Starten Sie Ihr system, denn dies ist der sicherste Weg, Ihren computer lädt die neue ruby-version, die vor kurzem installiert.
Getan, NACHDEM Sie oben beschriebenen Verfahren können Sie erfolgreich alle
gem
Befehl.InformationsquelleAutor Marcelo Gumiero
cd /Library/Ruby/Gems/2.0.0
öffnen .
rechts klicken Sie auf "get info" -
klicken Sie auf sperren
Ort Passwort
alles Lesen und schreiben.
InformationsquelleAutor myklgee
geben dem user $whoami zu erstellen somethin in diesen Ordner
InformationsquelleAutor Rama Astadipati
Können Sie verwenden: gem install cocoapods --pre --user
InformationsquelleAutor Alex_Burla
Installation gem oder Aktualisierung von RubyGems schlägt mit Berechtigungen Fehler Dann Geben Sie Diesen Befehl
InformationsquelleAutor Hardip Kalola
Habe ich dieses und gearbeitet.
$ sudo chown myuser /var/lib/gems
sudo
.InformationsquelleAutor Felipe Francisco
Den Grund des Fehlers ist, weil man nicht eingeloggt ist als root-Benutzer auf dem terminal.
Wenn Sie bereits root verwenden, aktivieren Sie auf dem mac im terminal-Typ
Wenn Sie nicht über root-Benutzer, den Sie aktivieren müssen Sie es mithilfe der folgenden Schritte
Mehr gleichzeitig auf http://support.apple.com/kb/ht1528
Atleast es funktioniert für mich nach dem stecken für einige Stunden.
Installieren von gems als root ist eine schlechte Idee. stackoverflow.com/questions/2119064/...
InformationsquelleAutor Mohammad Arif