Faltando / usr / include no OS X El Capitan

19

Eu estava tentando criar um aplicativo que depende da PJSIPlib, que deveria ter alguns cabeçalhos /usr/include. Mas não há /usr/includepasta e não posso criar uma, mesmo que minha conta tenha direitos de administrador.

Como pode ser includepasta, ativada / criada / restaurada?

tesla
fonte

Respostas:

15

Atualização (12 de fevereiro de 2016):

Finalmente instalei o El Capitan e agora posso confirmar que a resposta de Ondřej Čertík está correta. Eu recomendo fortemente instalar as ferramentas de desenvolvedor de linha de comando em vez de desativar o SIP.

Como Ondřej observou, a simples instalação do Xcode não instalará todas as ferramentas de desenvolvedor de linha de comando. Você deve executar xcode-select --installno Terminal.


Post original (5 de dezembro de 2015):

O acesso de gravação a / System, / bin, / sbin, / usr, / etc, / tmp e / var foi desativado por padrão no El Capitan, mesmo para raiz. Isso se deve ao novo recurso Security Integrity Protection .

Para desativar o SIP , inicialize no modo de recuperação e execute o comando csrutil disableno Terminal.

Isenção de responsabilidade: Eu não testei isso pessoalmente, pois ainda não atualizei para o El Capitan.

ilovejersey
fonte
11
Confirmado ! Também trabalha em El Capitan
pun
11
Eu já descobri e esqueci de responder à minha própria pergunta. Aceito o seu, pois está correto.
tesla
3
No meu sistema, a correção correta era apenas instalar o /usr/includeuso xcode-select --installe deixar o SIP ativado. Veja minha resposta abaixo para mais informações.
Ondřej Čertík
14

Por padrão, quando você instala o Xcode ("ferramentas de desenvolvedor") da App Store no El Capitan, ele não instala as "ferramentas de desenvolvedor de linha de comando" que incluem o /usr/include. Para instalar as "ferramentas de desenvolvedor de linha de comando", execute xcode-select --install, ele perguntará se você deseja obter as ferramentas de linha de comando do Xcode + na App Store (mas eu já tenho o Xcode instalado na App Store e, aparentemente, não inclui o comando utilitários de linha), então selecionei "instalar" e o instalado /usr/includeentre outras coisas.

Quanto à proteção de integridade do sistema (SIP), deixe isso ativado, pois isso parece ser uma coisa boa. O motivo xcode-select --installpara a instalação no /usrdiretório protegido é provavelmente porque xcode-selectestá na lista de permissões do SIP.

Ondřej Čertík
fonte
11
Eu pensei que o Xcode 8.x incluísse as ferramentas de linha de comando, mas só precisava fazer isso em uma nova instalação do MacOS Sierra . Instalei o Xcode primeiro, e ainda precisava fazer o mesmo xcode-select --installpara obter as ferramentas.
Leanne