Fehlendes / usr / include in OS X El Capitan


19

Ich habe versucht, eine App zu erstellen, die von PJSIPlib abhängt, die einige Header enthalten sollte /usr/include. Es gibt jedoch keinen /usr/includeOrdner, und ich kann keinen erstellen, auch wenn mein Konto über Administratorrechte verfügt.

Wie kann ein includeOrdner aktiviert / erstellt / wiederhergestellt werden?

Antworten:


15

Aktualisierung (12. Februar 2016):

Endlich habe ich El Capitan installiert und kann nun bestätigen, dass die Antwort von Ondřej Čertík richtig ist. Ich empfehle dringend, die Befehlszeilenentwicklertools zu installieren, anstatt SIP zu deaktivieren.

Wie Ondřej bemerkte, werden durch die einfache Installation von Xcode nicht alle Befehlszeilenentwickler-Tools installiert. Sie müssen xcode-select --installim Terminal ausführen .


Ursprünglicher Beitrag (5. Dezember 2015):

Der Schreibzugriff auf / System, / bin, / sbin, / usr, / etc, / tmp und / var wurde in El Capitan standardmäßig deaktiviert, auch für root. Dies liegt an der neuen Sicherheitsintegritätsschutzfunktion .

Starten Sie zum Deaktivieren von SIP in den Wiederherstellungsmodus und führen Sie den Befehl csrutil disableim Terminal aus.

Haftungsausschluss: Ich habe dies nicht selbst getestet, da ich noch kein Upgrade auf El Capitan durchgeführt habe.


1
Bestätigt ! Funktioniert auch in El Capitan
Wortspiel

1
Ich habe es bereits herausgefunden und vergessen, auf meine eigene Frage zu antworten. Ich akzeptiere deins, wie es richtig ist.
Tesla

3
Auf meinem System bestand die richtige Lösung darin, einfach das /usr/includeusing zu installieren xcode-select --installund SIP aktiviert zu lassen. Siehe meine Antwort unten für weitere Informationen.
Ondřej Čertík

14

Standardmäßig werden bei der Installation von Xcode ("Entwicklertools") aus dem App Store auf El Capitan nicht die "Befehlszeilen-Entwicklertools" installiert, die die /usr/include. Wenn Sie die "Befehlszeilen-Entwicklertools" installieren xcode-select --installmöchten, werden Sie beim Ausführen gefragt, ob Sie Xcode + -Befehlszeilentools aus dem App Store erhalten möchten (aber ich habe Xcode bereits aus dem App Store installiert und es enthält anscheinend keinen Befehl) line utilities), also habe ich "install" gewählt und das /usr/includeunter anderem installiert .

Lassen Sie dies für den Systemintegritätsschutz (SIP) aktiviert, da dies eine gute Sache zu sein scheint. Der Grund xcode-select --installfür die Installation in das geschützte /usrVerzeichnis liegt wahrscheinlich darin, dass xcode-selectSIP eine Whitelist erstellt hat.


1
Ich dachte, Xcode 8.x enthielt die Befehlszeilen-Tools, musste dies jedoch nur bei einer Neuinstallation von MacOS Sierra tun . Ich habe zuerst Xcode installiert und musste dann noch das tun xcode-select --install, um die Tools zu bekommen.
Leanne
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.