55 votes

La commande Unix "ln -s" n'est pas autorisée dans OSX El Capitan Beta3

J'étais en train d'installer nodejs pour Symphony quand j'ai rencontré une erreur "Operation not permitted". Quelqu'un sait-il pourquoi cela s'est produit ?

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

Mot de passe :

ln : /usr/bin/node : Opération non autorisée

1 votes

Vérifiez d'abord si /usr/bin/node est déjà configuré. Si vous voulez le changer, vous pouvez utiliser ln -sf pour forcer le lien symbolique.

0 votes

MacBook-Pro-de-XXX:~ XXX$ which node /usr/local/bin/node

0 votes

Ls -la /usr/bin/node

72voto

Thillakan Points 1344

Il s'agit du mode dit "sans racine" de la nouvelle version d'OS X. Il rend effectivement certains répertoires du système en lecture seule (même pour les administrateurs). Le répertoire "/usr" est l'un de ces répertoires protégés (le seul sous-répertoire exclu de cette règle est "/usr/local").

On peut désactiver ce mode sans racine avec les commandes suivantes :

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

Mais ce n'est pas recommandé ! La meilleure pratique est d'installer le matériel personnalisé uniquement dans "/usr/local".


Mise à jour (27-Oct-15) : Version publique 10.11 (El Capitan)

Veuillez noter que la solution de contournement décrite ci-dessus va pas ne fonctionne plus avec la version publique d'El Capitan car Apple a changé les choses.

La manière correcte de désactiver le mode "sans racine" (alias Protection de l'intégrité du système, "SIP") est de démarrer temporairement en mode de récupération (maintenez Commande+R pendant le démarrage) et d'utiliser la commande csrutil disable (ou csrutil enable pour le réactiver) à partir du terminal. Le terminal est accessible via le menu de l'installateur qui se lance en mode récupération.

2 votes

Ce n'est peut-être pas conseillé, mais pour l'instant MacTeX semble s'attendre à ce que /usr/texbin alors c'est parti !

0 votes

La modification de la NVRAM pour désactiver le mode sans racine ne fonctionne pas sur El Capitan à partir de (au moins) la version GM. Consultez cette réponse pour connaître la méthode qui fonctionne dans la version actuelle : stackoverflow.com/questions/32590053/

0 votes

Cela n'a pas marché pour moi aussi.

-2voto

Eric P Points 11

Dans ma version d'El Capitan, le /bin Le répertoire n'existe pas :

/usr/local/bin

Donc, la solution était :

mkdir -p /usr/local/bin

Le site -p créera le répertoire (et accessoirement tous les répertoires dans le chemin complet) s'il n'existe pas.

Ensuite, vous pouvez créer des liens symboliques et copier les applications vers /usr/local/bin parce que /usr/local ne font pas partie du mode "sans racines".

0 votes

Cela n'aide pas à résoudre le problème. Parfois, vous avez simplement besoin de liens symboliques dans /usr/bin et vous ne pouvez pas l'éviter.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X