Отсутствует /usr/ включить в OS X El Capitan
Я пытался создать приложение, которое зависит от PJSIP
lib, который должен иметь несколько заголовков в /usr/include
, Но нет /usr/include
папку, и я не могу создать ее, даже если моя учетная запись имеет права администратора.
Как можно include
папка, активирована / создана / восстановлена?
2 ответа
Обновление (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.
По умолчанию, когда вы устанавливаете 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.