Der Unix-Befehl "ln -s" ist in OSX El Capitan Beta3 nicht zulässig

54

Ich habe nodejs für Symphony installiert, als der Fehler "Vorgang nicht zulässig" angezeigt wurde. Weiß jemand, warum das passiert ist?

MacBook-Pro-de-XXX: ~ XXX $ sudo ln -s / usr / local / bin / knoten / usr / bin / knoten

Passwort:

ln: / usr / bin / node: Operation nicht erlaubt

Kurr0
quelle
1
Überprüfen Sie zunächst, ob / usr / bin / node bereits eingerichtet ist. Wenn Sie es ändern möchten, können Sie den Symlink mit ln -sf erzwingen.
MacBook-Pro-de-XXX: ~ XXX $ welcher Knoten / usr / local / bin / node
Kurr0
ls -la / usr / bin / node
MacBook-Pro-de-XXX: ~ XXX $ ls -la / usr / bin / knoten ls: / usr / bin /
knoten

Antworten:

70

Dies ist der sogenannte "rootless" -Modus in der neuen Version von OS X. Er macht bestimmte Systemverzeichnisse effektiv schreibgeschützt (auch für Administratoren). "/ usr" ist eines dieser geschützten Verzeichnisse (das einzige von dieser Regel ausgeschlossene Unterverzeichnis ist "/ usr / local").

Diesen rootless-Modus kann man mit folgenden Befehlen deaktivieren:

$ sudo nvram boot-args="rootless=0"
$ sudo reboot

Dies wird aber nicht empfohlen! Am besten installieren Sie benutzerdefinierte Elemente nur in "/ usr / local".


Update (27.10.15): 10.11 (El Capitan) Veröffentlichung

Bitte beachten Sie, dass die oben beschriebene Problemumgehung wird nicht mehr mit der Veröffentlichung von El Capitan arbeiten , wie Apple - Sachen herum verändert hat.

Die richtige Methode zum Deaktivieren des "rootless" -Modus (alias "System Integrity Protection", "SIP") besteht darin, vorübergehend in den Wiederherstellungsmodus zu booten (Befehl + R während des Bootvorgangs gedrückt halten) und den csrutil disableBefehl csrutil enablevom Terminal aus zu verwenden (oder erneut zu aktivieren). Das Terminal ist über das Menü des Installationsprogramms erreichbar, das im Wiederherstellungsmodus gestartet wird.

Haru
quelle
2
Könnte nicht ratsam sein, aber für den Moment scheint MacTeX das zu erwarten /usr/texbin, also los geht's!
David Lord
Das Ändern des NVRAM zur Deaktivierung des rootless-Modus funktioniert auf El Capitan (zumindest) ab der GM-Version nicht. Überprüfen Sie diese Antwort für die Methode, die in der aktuellen
Chris Ostmo
Das hat bei mir auch nicht geklappt.
GSSCODER
1
gib mir nochOperation not permitted
Sinux
2
Mein Workaround war die Installation von / usr / local / bin
anon58192932
-2

In meiner Version von El Capitan existierte das /binVerzeichnis nicht:

/usr/local/bin

Das Update war also:

mkdir -p /usr/local/bin

Das -pFlag erstellt das Verzeichnis (und übrigens alle Verzeichnisse im vollständigen Pfad), wenn es nicht vorhanden ist.

Dann können Sie Symlinks erstellen und Apps kopieren, /usr/local/binda diese /usr/localnicht zum "rootless" -Modus gehören.

Eric P
quelle
Es hilft nicht, das Problem zu lösen. Manchmal braucht man nur Symlinks in / usr / bin und kann das nicht vermeiden.
Dmitri