El comando "ln -s" de Unix no está permitido en OSX El Capitan Beta3

54

Estaba instalando nodejs para Symphony cuando recibí el error "Operación no permitida". Alguien sabe por qué sucedió esto?

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

Contraseña:

ln: / usr / bin / node: operación no permitida

Kurr0
fuente
1
Primero verifique si / usr / bin / node ya está configurado. Si desea cambiarlo, puede usar ln -sf para forzar el enlace simbólico.
MacBook-Pro-de-XXX: ~ XXX $ que nodo / usr / local / bin / node
Kurr0
ls -la / usr / bin / node
MacBook-Pro-de-XXX: ~ XXX $ ls -la / usr / bin / node ls: / usr / bin / node: No
existe

Respuestas:

70

Este es el modo denominado "sin raíz" en la nueva versión de OS X. Efectivamente, hace que ciertos directorios del sistema sean de solo lectura (incluso para administradores). "/ usr" es uno de esos directorios protegidos (el único subdirectorio que se excluye de esta regla es "/ usr / local")

Uno puede deshabilitar este modo sin raíz con los siguientes comandos:

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

¡Pero esto no es recomendable! La mejor práctica es instalar cosas personalizadas solo para "/ usr / local".


Actualización (27-oct-15): 10.11 (El Capitan) Lanzamiento público

Tenga en cuenta que la solución descrita anteriormente ya no funcionará con el lanzamiento público de El Capitan ya que Apple ha cambiado las cosas.

La forma correcta de deshabilitar el modo "sin raíz" (también conocido como Protección de integridad del sistema, "SIP") es iniciar temporalmente en el modo Recuperar (mantener presionado Comando + R durante el inicio) y usar el csrutil disablecomando (o csrutil enablevolver a habilitar) desde la Terminal. Se puede acceder al terminal a través del menú del instalador que se inicia en modo de recuperación.

Haru
fuente
2
Puede que no sea aconsejable, pero por ahora MacTeX parece esperar /usr/texbin, ¡así que vamos!
David Lord
La modificación de NVRAM para deshabilitar el modo sin raíz no funciona en El Capitan desde (al menos) la versión GM en adelante. Verifique esta respuesta para el método que funciona en la versión que ya está disponible: stackoverflow.com/questions/32590053/…
Chris Ostmo
Esto tampoco funcionó para mí.
gsscoder
1
todavía me daOperation not permitted
Sinux
2
Mi solución fue instalar en / usr / local / bin
anon58192932
-2

En mi versión de El Capitan, el /bindirectorio no existía:

/usr/local/bin

Entonces, la solución fue:

mkdir -p /usr/local/bin

El -pindicador creará el directorio (y, por cierto, cualquier directorio en la ruta completa) si no existe.

Luego, puede crear enlaces simbólicos y copiar aplicaciones /usr/local/binporque /usr/localno forma parte del modo "sin raíz".

Eric P
fuente
No ayuda a resolver el problema. A veces solo necesitas enlaces simbólicos en / usr / bin y no puedes evitarlo.
Dmitri