bash - simbolico - No se puede crear un enlace simbólico dentro de/usr/bin incluso como sudo
no se permiten enlaces fuertes para directorios (3)
¿Por qué no puedo vincular en
/usr/bin
?
La nueva función de
Protección de integridad del sistema de
El Capitan evita cambios en varias partes centrales de OS X, incluida la mayor parte de
/usr/
, incluso de raíz.
¿Cómo puedo agregar archivos ejecutables a mi ruta?
Las personalizaciones locales, como lo que estás haciendo, pertenecen a
/usr/local
.
La ruta
/usr/local/bin
no existe de manera predeterminada, pero puede crearla y poner binarios personalizados (y enlaces simbólicos) en ella:
sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2
Tenga en cuenta que si bien
/usr/local/bin
no existe de manera predeterminada,
está
en la RUTA predeterminada, por lo que tan pronto como lo cree, se buscarán comandos.
Deshabilitar SIP
También es posible deshabilitar la Protección de integridad del sistema, pero generalmente es mejor dejarla activada y personalizarla en ubicaciones más apropiadas. Una pregunta de Apple Stack Exchange tiene más detalles sobre esto: ¿Cuál es realmente la función sin raíz en El-Captain? .
Cuando intento vincular un binario en mi carpeta / usr / bin, aparece un error de Operación no permitida:
sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted
Incluso como sudo, me sale este error.
Creé el enlace simbólico para Sublime Text 3 en Mac OS High Sierra como
sudo ln -s /Applications/Sublime/ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/
También estaba tratando de crear el enlace simbólico en "/ usr / bin" y estaba obteniendo Operación no permitida.
Luego creé el enlace simbólico en "/ usr / local / bin" y no hubo error. El enlace simbólico funciona bien. Solo asegúrese de que "/ usr / local / bin" esté en la ruta.
Entonces, parece que el acceso a "/ usr / bin" está restringido.
Reinicie el sistema -> presione prolongadamente cmd + R. seleccione un terminal del menú de utilidades, escriba el siguiente comando csrutil deshabilite cerrar terminal y reinicie el sistema.