Отсутствует / usr / включить в OS X El Capitan

19

Я пытался создать приложение, которое зависит от PJSIPlib, в котором должны быть заголовки /usr/include. Но /usr/includeпапки нет , и я не могу ее создать, даже если моя учетная запись имеет права администратора.

Как можно includeпапку, активировать / создать / восстановить?

тесла
источник

Ответы:

15

Обновление (12 февраля 2016 г.):

Я наконец установил El Capitan и теперь могу подтвердить, что ответ Ондржея Чертика верен. Я настоятельно рекомендую установить инструменты разработчика командной строки вместо отключения SIP.

Как отметил Ондржей, простая установка XCode не установит все инструменты разработчика командной строки. Вы должны выполнить xcode-select --installв Терминале.


Оригинальное сообщение (5 декабря 2015 г.):

Доступ на запись в / System, / bin, / sbin, / usr, / etc, / tmp и / var по умолчанию отключен в El Capitan, даже для пользователя root. Это связано с новой функцией защиты целостности безопасности .

Чтобы отключить SIP , загрузитесь в режиме восстановления и выполните команду csrutil disableв Терминале.

Отказ от ответственности: я не проверял это сам, так как я еще не перешел на El Capitan.

ilovejersey
источник
1
Подтверждено! Работает и в El Capitan
каламбур
1
Я уже понял это и забыл ответить на свой вопрос. Я приму вашу, так как это правильно.
Тесла
3
В моей системе правильным решением было просто установить /usr/includeиспользование xcode-select --installи оставить SIP включенным. Смотрите мой ответ ниже для получения дополнительной информации.
Ондржей Чертик
14

По умолчанию, когда вы устанавливаете Xcode («инструменты разработчика») из App Store на El Capitan, он не устанавливает «инструменты разработчика командной строки», которые включают /usr/include. Чтобы установить «инструменты разработчика командной строки», выполните команду xcode-select --install, которая предложит вам узнать, хотите ли вы получить инструменты командной строки Xcode + из App Store (но у меня уже установлен Xcode из App Store, и он, очевидно, не включает команду линия утилит), поэтому я выбрал «установить» и установить /usr/includeсреди прочего.

Что касается защиты целостности системы (SIP), оставьте ее включенной, так как это кажется хорошей вещью. Причина, по которой xcode-select --installудалось установить в защищенный /usrкаталог, вероятно, xcode-selectзаключается в том, что SIP занесен в белый список.

Ондржей Чертик
источник
1
Я думал, что Xcode 8.x включает в себя инструменты командной строки, но мне просто нужно было сделать это на новой установке MacOS Sierra . Сначала я установил Xcode, а затем все еще должен был сделать, xcode-select --installчтобы получить инструменты.
Линне