Applicazione installata usando brew, ma ora sta dicendo che non riesce a trovarla?

3

Ho installato un'applicazione (dsniff) usando brew, ma quando provo a eseguirlo viene visualizzato un errore "Command not found". Ho persino provato ad andare nella directory in cui è stato installato:

/usr/local/Cellar/dsniff/2.4b1/sbin /

confermando che era lì (lo è) ed eseguendolo, ma ricevo lo stesso errore. Qualche idea sul perché questo accadrà?

    
posta Abe Miessler 02.01.2013 - 06:15
fonte

5 risposte

4

Dsniff collega i suoi programmi a /usr/local/sbin anziché /usr/local/bin . La directory sbin / è per più roba orientata a sysadmin e non si trova sul percorso per gli account non-root. La maggior parte delle altre formule di Homebrew non si collegano lì.

Dsniff ti avviserà anche di questo durante l'installazione.

$ brew install dsniff
==> Downloading http://monkey.org/~dugsong/dsniff/beta/dsniff-2.4b1.tar.gz
#
[ ... ]
==> make install
Warning: /usr/local/sbin is not in your PATH
You can amend this by altering your ~/.bashrc file
==> Summary
/usr/local/Cellar/dsniff/2.4b1: 35 files, 420K, built in 11 seconds

Quindi aggiungi /usr/local/sbin al tuo percorso nello stesso posto in cui aggiungi /usr/local/bin , probabilmente in ~/.bashrc , e prendi dsniff.

In generale, quando ti imbatti in cose come questa, e non sei sicuro di dove siano andati i file, puoi utilizzare find per cercarli. Per Homebrew, saranno sempre in / usr / local, se sono ovunque.

$ find /usr/local -name dsniff
/usr/local/Cellar/dsniff
/usr/local/Cellar/dsniff/2.4b1/sbin/dsniff
/usr/local/Library/LinkedKegs/dsniff
/usr/local/opt/dsniff
/usr/local/sbin/dsniff
    
risposta data 25.04.2013 - 20:12
fonte
2

Puoi provare manualmente a collegare l'eseguibile dsniff .

ln -s /usr/local/Cellar/dsniff/2.4b1/dsniff /usr/local/bin/dsniff

Questo crea un link al file originale in Cellar , ma la tua shell sarà in grado di trovarlo nel suo percorso, perché /usr/local/bin è di solito in esso.

Dopo averlo fatto, puoi chiamare dsniff da qualsiasi luogo.

    
risposta data 02.01.2013 - 23:44
fonte
0

Controlla /usr/local/bin ed è nella tua $PATH ? Assicurati che /usr/local/bin sia prima di /usr/bin .

Per un controllo rapido (non permanente), esegui export PATH=/usr/local/bin:$PATH nella shell corrente e riprova ad eseguire il comando.

    
risposta data 02.01.2013 - 08:41
fonte
0

Come citato da kukoo, sembra che tu non abbia /usr/local/bin nel tuo percorso. Per fare in modo che tu possa eseguire facilmente le applicazioni che hai installato da brew, esegui questo comando:

echo "export PATH=/usr/local/bin:\$PATH" >> $HOME/.bashrc

Questo dovrebbe renderti eterosessuale.

Per quanto riguarda il motivo per cui non è stato eseguito dopo essere nella stessa directory, probabilmente è a causa del modo in cui lo stavi riferendo. Hai prefaceato il nome binario con ./ ?

    
risposta data 02.01.2013 - 11:30
fonte
0

Se qualcun altro ha problemi e la loro variabile $PATH è già valida, ti suggerisco di:

brew unlink dsniff
brew link dsniff

Questo ha funzionato per me quando ho avuto un problema simile.

    
risposta data 19.04.2014 - 20:57
fonte

Leggi altre domande sui tag