Ich kann fakes3
gem auf El Capitan Beta 5 nicht installieren und ausführen .
Ich habe es versucht:
sudo gem install fakes3
ERROR: While executing gem ... (Errno::EPERM)
Operation not permitted - /usr/bin/fakes3
Dann habe ich versucht, es nach Cocoapods-Art zu machen. Es funktionierte für Cocoapods, aber nicht für Fakes3.
mkdir -p $HOME/Software/ruby
export GEM_HOME=$HOME/Software/ruby
gem install cocoapods
[...]
1 gem installed
gem install fakes3
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.0.0 directory.
sudo
, um Ruby zu installieren oder Edelsteine zu wechseln. Verwenden Sie stattdessen rbenv oder RVM , um Ruby zu installieren und zu verwalten. Lesen und befolgen Sie die Anweisungen auf den jeweiligen Websites. Verwendensudo
Sie in beiden Fällen nach der Installation nur, wenn Sie wissen , was sich ändert und warum Sie dies tun möchten.Antworten:
Haftungsausschluss: @theTinMan und andere Ruby-Entwickler weisen häufig darauf hin, dass sie
sudo
bei der Installation von Edelsteinen nicht verwendet werden sollen , und verweisen auf Dinge wie RVM . Das ist absolut richtig, wenn Sie Ruby entwickeln. Gehen Sie voran und nutzen Sie das.Allerdings wollen viele von uns nur einige binäre, die als Juwel verteilt werden geschieht (zB
fakes3
,cocoapods
,xcpretty
...). Ich möchte mich definitiv nicht darum kümmern, einen separaten Rubin zu verwalten. Hier sind Ihre schnelleren Optionen:Option 1: Verwenden Sie weiterhin sudo
Die Verwendung
sudo
ist wahrscheinlich in Ordnung, wenn diese Tools global installiert werden sollen.Das Problem ist , dass diese Binärdateien in installiert sind
/usr/bin
, das ist tabu , da El Capitan. Sie können sie jedoch/usr/local/bin
stattdessen installieren . Dort installiert Homebrew seine Sachen, also existiert sie wahrscheinlich bereits.Gems werden installiert
/usr/local/bin
und jeder Benutzer auf Ihrem System kann sie verwenden, wenn sie sich in seinem Pfad befinden .Option 2: In Ihrem Home-Verzeichnis installieren (ohne sudo)
Im Folgenden werden Edelsteine installiert
~/.gem
und Binärdateien eingefügt~/bin
(die Sie dann zu Ihrer hinzufügen solltenPATH
).Machen Sie es zum Standard
In beiden Fällen können Sie diese Parameter zu Ihrem hinzufügen,
~/.gemrc
damit Sie sich nicht an sie erinnern müssen:dh
echo "gem: -n/usr/local/bin" >> ~/.gemrc
oder
dh
echo "gem: --user-install -n~/bin" >> ~/.gemrc
( Tipp: Sie können auch
--no-document
die Erstellung der Ruby-Entwicklerdokumentation überspringen.)quelle
gem install
löste das Problem..gemrc
sollte habengem: -n /usr/local/bin
(brauche ein Leerzeichen nach -n).In meinem Fall musste ich Ruby mit Brew neu installieren . Das scheint das Problem gelöst zu haben, da ich Edelsteine wieder installieren kann.
Danach müssen Sie sich entweder grafisch abmelden und wieder anmelden oder einfach Ihr Terminal neu starten.
quelle
brew install ruby
so aus, als würde es dort abgelegt, auch wenn es bereits da ist. Vermutlich ist der Ruby in / usr / local so konfiguriert, dass er seine Edelsteine an einem Ort installiert, an dem kein Root-Zugriff erforderlich ist (was eigentlich durchaus Sinn macht).gem install
immer noch fehl.rehash
, um sicherzustellen, dass Ihre Shell erkennt, dass esruby
früher eine neue gibt$PATH
. Auch dies ist nicht erforderlich, wenn Sieruby
in der Shell-Sitzung noch nicht ausgeführt wurden .Das liegt an der neuen Sicherheitsfunktion von OS X "El Capitan". Versuchen Sie hinzuzufügen,
--user-install
anstatt sudo zu verwenden:Wenn Sie beispielsweise fake3 installieren möchten, verwenden Sie einfach:
quelle
Versuche dies. Es wird auf jeden Fall funktionieren.
quelle
Sie müssen Xcode auf den neuesten (v7.0.1) aktualisieren und alles funktioniert wie gewohnt.
Wenn Sie nach der Installation des neuesten Xcodes immer noch nicht funktionieren, versuchen Sie, gem auf folgende Weise zu installieren:
Beispielsweise:
quelle
Beim Upgrade auf OS X El Capitain wird das Verzeichnis / usr / local auf verschiedene Arten geändert:
[Bearbeiten] Es gibt auch eine vorläufige Aufgabe: Xcode aktualisieren ...
Lösung für # 1:
Dies wird fix Berechtigungen für das
/usr/local
Verzeichnis , das dann beide helfengem install
undbrew install|link|...
Befehle richtig funktioniert.Lösung zu # 2:
Ruby-basierte Probleme
Stellen Sie sicher, dass Sie die Berechtigungen des festgelegt haben
/usr/local
Verzeichnisses festgelegt haben (siehe Nr. 1 oben).Versuchen Sie zunächst, Ihren Edelstein neu zu installieren, indem Sie:
Beachten Sie, dass die neueste Version des angegebenen Edelsteins installiert wird.
Wenn Sie keine Probleme mit der Abwärtskompatibilität haben möchten, empfehlen wir Ihnen, zunächst zu bestimmen, welche Version des Edelsteins Sie erhalten möchten, und diese dann mit dem neu zu installieren
-v version
. Sehen Sie sich unten ein Beispiel an, um sicherzustellen, dass das System keine neue Version von Capistrano erhält.Braubasierte Themen
Aktualisieren Sie Brew und aktualisieren Sie Ihre Formeln
Möglicherweise müssen Sie einige von ihnen auch manuell neu verknüpfen
quelle
Wie bereits erwähnt, stammt das Problem aus einer Sicherheitsfunktion von Mac OSX seit "El Capitan".
Bei Verwendung des Standardsystems Ruby erfolgt der Installationsvorgang in dem
/Library/Ruby/Gems/2.0.0
Verzeichnis, das dem Benutzer nicht zur Verfügung steht, und gibt den Fehler aus.Mit dem Befehl können Sie einen Blick auf Ihre Ruby-Umgebungsparameter werfen
Es gibt ein INSTALLATIONSVERZEICHNIS und ein BENUTZERINSTALLATIONSVERZEICHNIS. Um das Benutzerinstallationsverzeichnis anstelle des Standardinstallationsverzeichnisses zu verwenden, können Sie
--user-install
stattdessen Parameter verwenden,sudo
die niemals empfohlen werden.Dabei sollte es keine Rechte mehr geben. Die Edelsteine werden dann im Benutzerverzeichnis installiert:
~/.gem/Ruby/2.0.0/bin
Um die installierten Edelsteine verfügbar zu machen, sollte dieses Verzeichnis in Ihrem Pfad verfügbar sein. Entsprechend der FAQ von Ruby können Sie Ihrem
~/.bash_profile
oder die folgende Zeile hinzufügen~/.bashrc
Schließen Sie dann Ihr Terminal und laden Sie es neu oder laden Sie Ihr
.bash_profile
oder.bashrc
(. ~/.bash_profile
) neuquelle
Dies ist die Lösung, die ich verwendet habe:
Hinweis: Dieser Fix ist für Kompass, wie ich ihn für eine andere SO-Frage geschrieben habe, aber ich habe denselben Prozess verwendet, um die Funktionalität aller Terminalprozesse wiederherzustellen. Offensichtlich sind die von Ihnen installierten Edelsteine unterschiedlich, aber der Prozess ist der gleiche.
Ich hatte das gleiche Problem. Dies ist darauf zurückzuführen, dass Apple den System Integrity Protection (SIP) implementiert. Sie müssen das zuerst deaktivieren ...
Neustart im Wiederherstellungsmodus:
Starten Sie neu und halten Sie Befehl + R gedrückt bis das Apple-Logo angezeigt wird.
Wählen Sie nach dem Booten Dienstprogramme> Terminal oberen Leiste .
Art:
csrutil disable
Geben Sie dann Folgendes ein:
reboot
Einmal neu gestartet
Öffnen Sie das Terminal und geben Sie die folgenden Befehle ein:
sudo gem uninstall bundler
sudo gem install bundler
sudo gem install compass
sudo gem install sass
sudo gem update --system
Die einzelnen Edelsteine, die versagt haben, müssen repariert werden. Führen Sie daher für jeden Edelstein Folgendes aus:
Auf meinem Computer war dies die erste Abhängigkeit, die nicht funktionierte. Deshalb habe ich sie aufgelistet :
sudo gem pristine ffi --version 1.9.3
Fahren Sie mit der Liste der Edelsteine fort, die repariert werden müssen. Insgesamt brauchen Sie ungefähr 10 Minuten, um das Problem zu beheben, aber Sie haben Terminalbefehle für die Kompassarbeit.
Bildschirmfoto
quelle
Wenn für das zu installierende Juwel XML-Bibliotheken erforderlich sind, versuchen Sie Folgendes:
Insbesondere beim Installieren des Nokiaogiri Gem 1.6.8 unter OS X El Capitan ist ein Problem aufgetreten
und das hat bei mir endlich geklappt:
Um sicherzustellen, dass libxml2 und libxslt installiert sind, können Sie Folgendes tun:
Überprüfen Sie anschließend, ob die xcode-Befehlszeilentools installiert sind:
sollte diesen Fehler zurückgeben:
quelle
Die Neuinstallation von RVM funktionierte für mich, aber ich musste danach alle meine Edelsteine neu installieren:
quelle
Nach der Installation von El Capitan ist das gleiche Problem aufgetreten. Ich habe versucht, sass und kompass in ein Symfony-Projekt zu installieren. Der folgende Befehl hat den folgenden Fehler zurückgegeben:
$ sudo gem Kompass installieren
FEHLER: Fehler beim Installieren des Kompasses: FEHLER: Fehler beim Erstellen der nativen Gem-Erweiterung.
nach ffi.h suchen ... /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/mkmf.rb:434:in `try_do ': Der Compiler konnte keine generieren ausführbare Datei. (Laufzeit Fehler)
Also habe ich dann versucht, sass zu installieren mit: $ sudo gem install sass
Ich habe die gleiche Fehlermeldung erhalten, nach einigem googeln habe ich es geschafft, sass mit dem folgenden Befehl zu installieren:
$ sudo gem install -n / usr / local / bin sass
Das obige hat bei der Installation von sass funktioniert, aber nicht bei der Installation von Kompass. Ich habe gelesen, dass irgendwo jemand eine Instanz von xcode geöffnet und dann wieder geschlossen und dann denselben Befehl erfolgreich ausgeführt hat, wonach er für ihn funktioniert hat. Ich habe versucht, xcode zu öffnen, wurde jedoch mit der Meldung aufgefordert, dass die installierte Version von xcode nicht mit El Capitan kompatibel ist. Also habe ich dann xcode aus dem App Store aktualisiert und den folgenden Befehl erneut ausgeführt, der diesmal erfolgreich ausgeführt wurde:
$ sudo gem install -n / usr / local / bin kompass
Ich konnte dann $ kompass init ausführen
Ich habe jetzt alle meine Edelsteine in Arbeit und kann fortfahren, einige schöne Sass-Sachen zu bauen :)
quelle
Ich musste
rm -rf ./vendor
dannbundle install
wieder rennen .quelle
Ich mag es nicht, Sachen mit sudo zu installieren. Sobald Sie mit Sudo beginnen, können Sie nicht mehr aufhören.
Versuchen Sie, dem Gems-Verzeichnis Berechtigungen zu erteilen.
quelle
Das gibt Berechtigungen zurück (Homebrew installiert dort Ruby)
quelle