Estaba tratando de construir una aplicación que depende de PJSIPlib que debería tener algunos encabezados /usr/include. Pero no hay una /usr/includecarpeta, y no puedo crear una, incluso mi cuenta tiene derechos de administrador.
¿Cómo puede ser includecarpeta, activada / creada / restaurada?
Finalmente instalé El Capitan y ahora puedo confirmar que la respuesta de Ondřej Čertík es correcta. Recomiendo encarecidamente instalar las herramientas de desarrollador de línea de comandos en lugar de deshabilitar SIP.
Como señaló Ondřej, simplemente instalar Xcode no instalará todas las herramientas de desarrollo de línea de comandos. Debes ejecutar xcode-select --installen Terminal.
Publicación original (5 de diciembre de 2015):
El acceso de escritura a / System, / bin, / sbin, / usr, / etc, / tmp y / var ha sido deshabilitado por defecto en El Capitan, incluso para root. Esto se debe a la nueva función de Protección de integridad de seguridad .
Para deshabilitar SIP , arranque en modo de recuperación y ejecute el comando csrutil disableen la Terminal.
Descargo de responsabilidad: no lo he probado yo mismo ya que aún no me he actualizado a El Capitan.
Ya lo descubrí y olvidé responder a mi propia pregunta. Aceptaré el tuyo como es correcto.
tesla
3
En mi sistema, la solución adecuada era simplemente instalar el /usr/includeuso xcode-select --instally dejar SIP habilitado. Vea mi respuesta a continuación para obtener más información.
Ondřej Čertík
14
De manera predeterminada, cuando instala Xcode ("herramientas de desarrollador") desde la App Store en El Capitan, no instala las "herramientas de desarrollador de línea de comandos" que incluyen /usr/include. Para instalar las "herramientas de desarrollo de línea de comandos", ejecute xcode-select --install, le preguntará si desea obtener las herramientas de línea de comandos Xcode + de la App Store (pero ya tengo Xcode instalado desde la App Store y aparentemente no incluye el comando utilidades de línea), así que seleccioné "instalar" y lo instalé /usr/includeentre otras cosas.
En cuanto a la Protección de integridad del sistema (SIP), déjelo habilitado, ya que parece ser algo bueno. La razón por la que xcode-select --installlogró instalar en el /usrdirectorio protegido es probablemente porque xcode-selectSIP lo incluye en la lista blanca.
Pensé que Xcode 8.x incluía las herramientas de línea de comandos, pero solo necesitaba hacer esto en una nueva instalación de MacOS Sierra . Primero instalé Xcode, luego aún tuve que hacer el xcode-select --installpara obtener las herramientas.
/usr/include
usoxcode-select --install
y dejar SIP habilitado. Vea mi respuesta a continuación para obtener más información.De manera predeterminada, cuando instala Xcode ("herramientas de desarrollador") desde la App Store en El Capitan, no instala las "herramientas de desarrollador de línea de comandos" que incluyen
/usr/include
. Para instalar las "herramientas de desarrollo de línea de comandos", ejecutexcode-select --install
, le preguntará si desea obtener las herramientas de línea de comandos Xcode + de la App Store (pero ya tengo Xcode instalado desde la App Store y aparentemente no incluye el comando utilidades de línea), así que seleccioné "instalar" y lo instalé/usr/include
entre otras cosas.En cuanto a la Protección de integridad del sistema (SIP), déjelo habilitado, ya que parece ser algo bueno. La razón por la que
xcode-select --install
logró instalar en el/usr
directorio protegido es probablemente porquexcode-select
SIP lo incluye en la lista blanca.fuente
xcode-select --install
para obtener las herramientas.