comando Unix "ln -s" non consentito in OSX El Capitan Beta3

54

Stavo installando nodejs per Symphony quando ho riscontrato un errore "Operazione non consentita". Qualcuno sa perché è successo?

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

Password:

ln: /usr/bin/node: Operation not permitted

    
posta KurroCantos 16.07.2015 - 13:51
fonte

2 risposte

70

Questa è la cosiddetta modalità "senza radici" nella nuova versione di OS X. Effettua in effetti alcune directory di sistema in sola lettura (anche per gli amministratori). "/ usr" è una di quelle directory protette (l'unica sottodirectory che è esclusa da questa regola è "/ usr / local")

È possibile disabilitare questa modalità senza radici con i seguenti comandi:

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

Ma questo non è raccomandato! La procedura migliore è installare solo materiale personalizzato su "/ usr / local".

Aggiornamento (27-ott-15): 10.11 (El Capitan) Public Release

Tieni presente che la soluzione descritta sopra non funziona più con la versione pubblica di El Capitan in quanto Apple ha cambiato le cose.

Il modo corretto per disattivare la modalità "rootless" (ovvero System Integrity Protection, "SIP") è di avviarsi temporaneamente in modalità Recover (tenere premuto Command + R durante l'avvio) e utilizzare il comando csrutil disable (o csrutil enable per riattivare) dal Terminale. Il terminale è raggiungibile tramite il menu del programma di installazione che si avvia in modalità di ripristino.

    
risposta data 16.07.2015 - 19:40
fonte
-2

Nella mia versione di El Capitan la directory /bin non esisteva:

/usr/local/bin

Quindi la correzione era:

mkdir -p /usr/local/bin

Il flag -p creerà la dir (e incidentalmente ogni dir nel percorso completo) se non esiste.

Quindi puoi creare symlink e amp; copia le app in /usr/local/bin perché /usr/local non fa parte della modalità "senza radici".

    
risposta data 03.04.2016 - 05:59
fonte

Leggi altre domande sui tag