Comando "ln -s" do Unix não permitido no OSX El Capitan Beta3


54

Eu estava instalando o nodejs para o Symphony quando encontrei o erro "Operação não permitida". Alguém sabe por que isso aconteceu?

MacBook Pro-de-XXX: ~ XXX $ sudo ln -s / usr / local / bin / node / usr / bin / node

Senha:

ln: / usr / bin / node: operação não permitida


11
Primeiro verifique se / usr / bin / node já está configurado. Se você quiser alterá-lo, use ln -sf para forçar o link simbólico.

MacBook-Pro-de-XXX: ~ XXX $ qual nó / usr / local / bin / node
Kurr0

ls -la / usr / bin / nó

MacBook Pro-de-XXX: ~ XXX $ ls -la / usr / bin / ls nó: / usr / bin / nó: Nenhum tal lima ou diretório
Kurr0

Respostas:


70

Este é o chamado modo "sem raiz" na nova versão do OS X. Ele efetivamente torna certos diretórios do sistema somente leitura (mesmo para administradores). "/ usr" é um desses diretórios protegidos (o único subdiretório excluído desta regra é "/ usr / local")

Pode-se desativar esse modo sem raiz com os seguintes comandos:

$ sudo nvram boot-args="rootless=0"
$ sudo reboot

Mas isso não é recomendado! A melhor prática é instalar itens personalizados apenas em "/ usr / local".


Atualização (27-Out-15): 10.11 (El Capitan) Public Release

Observe que a solução alternativa descrita acima não funcionará mais com o lançamento público do El Capitan, pois a Apple mudou as coisas.

A maneira correta de desativar o modo "sem raiz" (também conhecido como System Integrity Protection, "SIP") é inicializar temporariamente no modo de recuperação (mantenha pressionada a tecla Command + R durante a inicialização) e use o csrutil disablecomando (ou csrutil enablepara reativar) no terminal. O terminal é acessível através do menu do instalador, que é iniciado no modo de recuperação.


2
Pode não ser aconselhável, mas por enquanto o MacTeX parece esperar /usr/texbin, então vamos embora!
David Lord

Modificar a NVRAM para desativar o modo sem raiz não funciona no El Capitan (pelo menos) da versão GM para a frente. Verifique esta resposta para o método que funciona na versão lançada agora: stackoverflow.com/questions/32590053/…
Chris Ostmo

Isso não funcionou para mim também.
gsscoder

11
ainda me dá #Operation not permitted
660 Sinux

2
Minha solução foi a instalação para / usr / local / bin
anon58192932

-2

Na minha versão do El Capitan, o /bindiretório não existia:

/usr/local/bin

Então, a correção foi:

mkdir -p /usr/local/bin

O -psinalizador criará o dir (e aliás qualquer dirs no caminho completo) se ele não existir.

Em seguida, você pode criar links simbólicos e copiar aplicativos para, /usr/local/binporque /usr/localnão faz parte do modo "sem raiz".


Não ajuda a resolver o problema. Às vezes, você só precisa de links simbólicos em / usr / bin e não pode evitar isso.
Dmitri
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.