Dove devo archiviare le applicazioni della riga di comando?


46

Quando scarico le applicazioni da riga di comando si trovano nella mia ~/Downloads/directory. Ma penso che questo sia il posto sbagliato in cui si trova un'applicazione da riga di comando. In quale punto del file system di Mac OS X dovrei archiviare le applicazioni della riga di comando?

/Applications/sembra anche sbagliato, è più per le applicazioni desktop. E /bin/suona di più per le applicazioni che appartengono a OS X.


Sono d'accordo con il tuo sentimento che mettere le cose direttamente in / bin o / Applications è generalmente una forma scadente. La risposta di Patrix è la posizione più canonica che ho visto per l'archiviazione generale della riga di comando di programmi e script.
bmike


2
Non li vedo come duplicati poiché la domanda collegata sembra più sulla giocoleria di diverse scelte di terze parti e questo è più puro: dove vanno le mie app scaricate manualmente.
bmike

Risposte:


44

Poiché OS X proviene da un patrimonio unix, è consigliabile archiviare i file di sistema /usr/local/binper le applicazioni della riga di comando e gli script che appartengono al sistema localmente e non a un utente specifico. Potrebbe essere necessario creare prima questa directory eseguendo:

sudo mkdir -p /usr/local/bin

È possibile spostare qualsiasi applicazione della riga di comando in quella cartella eseguendo:

sudo mv my-binary /usr/local/bin/

Per assicurarti che faccia /usr/local/binparte del tuo percorso di ricerca standard in Terminale, controlla il contenuto di /etc/pathse aggiungilo se necessario:

grep -w /usr/local/bin /etc/paths || sudo sh -c 'echo /usr/local/bin >> /etc/paths'

Alcuni utenti creano una seconda directory per gli script a livello di utente, ma questo è ancora più soggetto alle preferenze personali.

In genere creo una directory bin in ogni cartella utente e poi la nascondo dal Finder, ma puoi prendere tu stesso quella decisione se la vuoi nascosta:

 mkdir ~/bin
 chflags hidden ~/bin

In questo caso, vorrai che il percorso di ciascun utente includa questa posizione modificando gli script di avvio della shell ( ~/.bash_profileper bash che è la shell standard)

 export PATH=$PATH:~/bin

o codificando il percorso di ciascuna app durante l'esecuzione.


3
Questo è assolutamente il miglior suggerimento, e quello che darei a chiunque me lo chiedesse. Aggiungerò solo 2 cose: 1) /etc/launchd.conf potrebbe anche essere un luogo in cui è necessario aggiungere il percorso, 2) sebbene io utilizzi / usr / local / per i programmi Unix installati tramite i homebrewmiei script shell I ho un ~ / Dropbox / bin / che ho anche aggiunto al mio $ PATH, quindi ho tutti i miei script shell personalizzati su tutti i miei Mac. Ma lo faccio in aggiunta a / usr / local / bin / not invece di esso.
TJ Luoma,

/ usr / local / bin è lo spot UNIX tradizionale per gli script di un utente, che consente di accedere a qualsiasi altro utente sul sistema. Posizionando gli script lì inserirai gli script in $ PATH di tutti gli utenti senza sforzo. Ma credo che il modo in cui Mac , dal momento che la maggior parte dei Mac ha un singolo utente, sia quello di creare una ~/bindirectory, renderla invisibile chflags uchg ~/bine aggiungerla agli utenti ~/.bash_profileper renderla parte degli utenti $ PATH. ~/binè una posizione superiore per sicurezza e migrazione. Altrimenti, devi ricordare le cose che hai lasciato in / usr / local / bin. Ed ln -s ~/bin ~/Dropbox/è anche bello.
chillin,

7

Prendi in considerazione la creazione di una /optdirectory, che è un'altra posizione in cui il software Unix personalizzato apparirebbe per convenzione.


5
/opt/è molto utile per applicazioni complete mentre /usr/local/bin/è più appropriato per gli script della riga di comando autonomi. È spesso preferibile utilizzare /opt/nei casi in cui una raccolta di script correlati funge da libreria (ad esempio, /opt/myscriptslib/bin/).
plasmid87

Grazie per i tuoi consigli. Ho creato personalmente la cartella / opt / per mettere il mio software e poi ho creato collegamenti simbolici a / usr / local / bin per tutti gli eseguibili ... quindi non è necessario aggiungere il / opt / myspecific-soft nella variabile d'ambiente path .
рüффп,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.