Brakujące / usr / include w OS X El Capitan

19

Próbowałem zbudować aplikację zależną od PJSIPlib, w której powinny znajdować się nagłówki /usr/include. Ale nie ma /usr/includefolderu i nie mogę go utworzyć, nawet moje konto ma uprawnienia administratora.

Jak można includeaktywować / utworzyć / przywrócić folder?

Tesla
źródło

Odpowiedzi:

15

Aktualizacja (12 lutego 2016 r.):

W końcu zainstalowałem El Capitan i mogę teraz potwierdzić, że odpowiedź Ondřego Čertíka jest poprawna. Zdecydowanie zalecam zainstalowanie narzędzi programistycznych z wiersza poleceń zamiast wyłączania SIP.

Jak zauważył Ondřej, sama instalacja Xcode nie spowoduje zainstalowania wszystkich narzędzi programistycznych z linii poleceń. Musisz wykonać xcode-select --installw terminalu.


Oryginalny post (5 grudnia 2015 r.):

Dostęp do zapisu w / System, / bin, / sbin, / usr, / etc, / tmp i / var został domyślnie wyłączony w El Capitan, nawet dla roota. Wynika to z nowej funkcji Security Integrity Protection .

Aby wyłączyć SIP , uruchom komputer w trybie odzyskiwania i wykonaj polecenie csrutil disablew Terminalu.

Oświadczenie: Nie testowałem tego sam, ponieważ nie dokonałem jeszcze aktualizacji do El Capitan.

ilovejersey
źródło
1
Potwierdzony ! Działa również w El Capitan
pun
1
Już to rozgryzłem i zapomniałem odpowiedzieć na własne pytanie. Przyjmę twój, ponieważ jest poprawny.
tesla,
3
W moim systemie poprawą była instalacja i /usr/includeużywanie xcode-select --installSIP włączone. Zobacz moją odpowiedź poniżej, aby uzyskać więcej informacji.
Ondřej Čertík,
14

Domyślnie, gdy instalujesz Xcode („narzędzia programistyczne”) z App Store na El Capitan, nie instaluje on „narzędzi programistycznych z linii poleceń”, które obejmują /usr/include. Aby zainstalować „narzędzia programistyczne wiersza polecenia”, wykonaj xcode-select --installpolecenie, wyświetli się pytanie, czy chcesz pobrać narzędzia wiersza polecenia Xcode + ze sklepu App Store (ale mam już zainstalowany Xcode ze sklepu App Store i najwyraźniej nie zawiera polecenia narzędzia liniowe), więc wybrałem „zainstaluj” i to zainstalowałem /usr/includemiędzy innymi.

Jeśli chodzi o ochronę integralności systemu (SIP), pozostaw tę opcję włączoną, ponieważ wydaje się to dobrą rzeczą. Powodem, dla którego xcode-select --installudało się zainstalować w chronionym /usrkatalogu, jest prawdopodobnie fakt, że xcode-selectznajduje się na białej liście SIP.

Ondřej Čertík
źródło
1
Myślałem, że Xcode 8.x zawiera narzędzia wiersza poleceń, ale po prostu musiałem to zrobić na nowej instalacji MacOS Sierra . Najpierw zainstalowałem Xcode, a potem musiałem zrobić, xcode-select --installaby zdobyć narzędzia.
leanne