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?
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.
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.
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.
/usr/include
using zu installierenxcode-select --install
und SIP aktiviert zu lassen. Siehe meine Antwort unten für weitere Informationen.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" installierenxcode-select --install
mö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/include
unter anderem installiert .Lassen Sie dies für den Systemintegritätsschutz (SIP) aktiviert, da dies eine gute Sache zu sein scheint. Der Grund
xcode-select --install
für die Installation in das geschützte/usr
Verzeichnis liegt wahrscheinlich darin, dassxcode-select
SIP eine Whitelist erstellt hat.quelle
xcode-select --install
, um die Tools zu bekommen.