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


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.


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".


No ayuda a resolver el problema. A veces solo necesitas enlaces simbólicos en / usr / bin y no puedes evitarlo.
Dmitri
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.