Con el modo sin raíz habilitado (también conocido como Protección de integridad del sistema), resulta que puede eliminarlo /usr/local
pero no puede volver a crearlo:
$ sudo rm -rf /usr/local
$ sudo mkdir /usr/local
mkdir: /usr/local: Operation not permitted
¿Cómo (re) crear /usr/local
o cualquier carpeta de este tipo?
/usr/local
se puede volver a crear y escribir en El Capitan desde el 21 de octubre de 2015 cuando Apple lanzó la /System/Library/Sandbox/Compatibility.bundle
versión 12 en la actualización de software 031-40358 parcheando 10.11 y 10.11.1, y se instaló como parte de la actualización 10.11.2, combo 10.11.2 actualización y 10.11.2 instalaciones limpias. No necesita hacer nada especial a menos que no haya actualizado a la última versión de punto de El Capitan.
Un sistema parcheado tendrá un paquete de compatibilidad mayor o igual a 12 y mostrará
iMac-TMP:~ joe$ grep /usr/local /System/Library/Sandbox/rootless.conf
* /usr/local
iMac-TMP:~ joe$ grep /usr/local /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
/usr/local
iMac-TMP:~ joe$ defaults read /System/Library/Sandbox/Compatibility.bundle/Contents/Info.plist CFBundleVersion
12.0
iMac-TMP:~ joe$
Un sistema sin parches tendrá un paquete de compatibilidad inferior a 12.0 y no tendrá la /usr/local
entrada en /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
.
La forma más sencilla y segura es:
CMD
+ R
)Macintosh HD
y Desbloquear si está encriptado; de lo contrario , MontarMacintosh HD
que esté montado, cierre la Utilidad de DiscosAhora ejecute los siguientes comandos:
mkdir "/Volumes/Macintosh HD/usr/local"
chflags norestricted "/Volumes/Macintosh HD/usr/local"
ls -lOd "/Volumes/Macintosh HD/usr/local"
drwxr-xr-x 2 root wheel - 68 17 Mar 09:24 /Volumes/Macintosh HD/usr/local
exit
O, como un simple comando:
mkdir "/Volumes/Macintosh HD/usr/local"; chflags norestricted "/Volumes/Macintosh HD/usr/local"; ls -lOd "/Volumes/Macintosh HD/usr/local"; drwxr-xr-x 2 root wheel - 68 17 Mar 09:24 /Volumes/Macintosh HD/usr/local; exit
Finalmente, salga de Terminal y reinicie OS X.
Referencias: