Sto cercando di eseguire il seguente comando su OS X El Capitan (10.11.4):
sudo dtruss /usr/local/bin/mix phoenix.server
Fallisce, dicendo:
dtrace: failed to execute /usr/local/bin/mix: dtrace cannot control executables signed with restricted entitlements
mix
è un eseguibile che ho installato con Homebrew. /usr/local/bin/mix
è in realtà un collegamento simbolico, ma punta a un file annidato in /usr/local/Cellar
.
La dichiarazione ufficiale su SIP dice che /usr/local
è scrivibile per gli installer (a differenza di /usr/
in generale) . Non dice se SIP consente di tracciare i programmi lì, ma dato che l'ho installato io stesso, sembra ragionevole poterlo rintracciare.
C'è qualcosa che posso fare per consentire di tracciare questo programma? Idee che ho:
- Disabilita interamente SIP (sembra pesante)
- Aggiornamento: ho letto che è possibile disabilitare le parti di SIP in modo selettivo , ma come primo passo, Ho completamente disattivato .
csrutil status
ora riportaSystem Integrity Protection status: disabled.
. Ma il mio comando originale fallisce ancora con lo stesso errore. : (
- Aggiornamento: ho letto che è possibile disabilitare le parti di SIP in modo selettivo , ma come primo passo, Ho completamente disattivato .
- Fai in modo che Homebrew installi tutto in una cartella in
~
(sembra disordinato)- Aggiornamento: abbastanza sicuro questo sarebbe una cattiva idea
- Ignora Homebrew e compila
mix
dal sorgente in~
, quindi sposta il nuovo eseguibile- Aggiornamento: stesso errore. Questo non ha alcun senso per me . SIP è disattivato, l'eseguibile non è "firmato" poiché l'ho compilato personalmente e non si trova in una posizione limitata. : P
- Installa Linux in una VM. (seriamente? devo farlo?)