Falta / usr / incluir en OS X El Capitan

19

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?

tesla
fuente

Respuestas:

15

Actualización (12 de febrero de 2016):

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.

ilovejersey
fuente
1
Confirmado! También funciona en El Capitan
juego de palabras el
1
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.

Ondřej Čertík
fuente
1
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.
Leanne