66 votes

Où dois-je stocker les applications en ligne de commande ?

Lorsque je télécharge des applications en ligne de commande, elles sont placées dans mon répertoire ~/Downloads/ répertoire. Mais j'ai l'impression que ce n'est pas le bon endroit pour placer une application de ligne de commande. Où, dans le système de fichiers de Mac OS X, dois-je stocker les applications de ligne de commande ?

/Applications/ se sent également mal, c'est plus pour les applications de bureau. Et /bin/ sonne davantage pour les applications qui appartiennent à OS X.

0 votes

Je suis d'accord avec votre sentiment que mettre des choses directement dans /bin ou /Applications est généralement une mauvaise forme. La réponse de Patrix est l'emplacement le plus canonique que j'ai vu pour le stockage général en ligne de commande des programmes et des scripts.

0 votes

3 votes

Je ne les considère pas comme des doublons, puisque les question liée Il semble plutôt qu'il faille jongler avec plusieurs choix de tierces parties et il s'agit plutôt d'une pure question : où vont mes applications téléchargées manuellement ?

65voto

nohillside Points 82672

Comme OS X est issu d'un héritage unix, vous voudrez stocker les fichiers système dans le répertoire /usr/local/bin pour les applications en ligne de commande et les scripts qui appartiennent au système localement et non à un utilisateur spécifique. Vous pouvez avoir besoin de créer ce répertoire d'abord en exécutant :

sudo mkdir -p /usr/local/bin

Vous pouvez déplacer n'importe quelle application en ligne de commande vers ce dossier en l'exécutant :

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

Pour s'assurer que /usr/local/bin fait partie de votre chemin de recherche standard dans le Terminal, vérifiez le contenu du fichier /etc/paths et l'ajouter si nécessaire :

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

Certains utilisateurs font un deuxième répertoire pour les scripts de niveau utilisateur, mais ceci est encore plus sujet à la préférence personnelle.

En général, je crée un répertoire bin dans chaque dossier utilisateur, puis je le cache dans le Finder - mais vous pouvez décider vous-même si vous voulez le cacher :

 mkdir ~/bin
 chflags hidden ~/bin

Dans ce cas, vous voudrez que le chemin de chaque utilisateur inclue cet emplacement en modifiant le démarrage du shell scripts ( ~/.bash_profile pour bash qui est le shell standard)

 export PATH=$PATH:~/bin

ou en codant en dur le chemin d'accès à chaque application lorsque vous la lancez.

3 votes

C'est absolument la meilleure suggestion, et celle que je donnerais à toute personne qui me le demande. J'ajouterai seulement 2 choses : 1) /etc/launchd.conf peut aussi être un endroit où le chemin doit être ajouté, 2) bien que j'utilise /usr/local/ pour les utilitaires Unix installés par l'intermédiaire de homebrew pour mon propre shell scripts j'ai un ~/Dropbox/bin/ que j'ai également ajouté à mon $PATH de sorte que j'ai tous mes scripts shell personnalisés sur tous mes Macs. Mais je fais cela en plus de /usr/local/bin/ et non à sa place.

0 votes

/usr/local/bin est le site Emplacement traditionnel sous UNIX pour les scripts d'un utilisateur, qui donne accès à tout autre utilisateur du système. Placer scripts à cet endroit mettra les scripts dans le $PATH de tous les utilisateurs sans effort. Mais je crois que le Mac La solution, puisque la plupart des Macs n'ont qu'un seul utilisateur, est de créer une ~/bin rendez-le invisible avec chflags uchg ~/bin et l'ajouter aux utilisateurs ~/.bash_profile pour qu'il fasse partie du $PATH de l'utilisateur. ~/bin est un emplacement supérieur pour la sécurité et la migration. Sinon, vous devez vous souvenir de ce que vous avez laissé dans /usr/local/bin. Et ln -s ~/bin ~/Dropbox/ est également agréable.

0 votes

Le changement de chemin devrait être in.bashrc aussi les configurations plus récentes semblent utiliser ~/.local/bin

9voto

Matt Stephenson Points 265

Envisagez de créer un /opt qui est un autre emplacement où les logiciels Unix personnalisés apparaissent par convention.

7 votes

/opt/ est très utile pour les applications complètes alors que /usr/local/bin/ est plus approprié pour les scripts de ligne de commande autonomes. Il est souvent préférable d'utiliser /opt/ dans les cas où une collection de scripts apparentés font office de bibliothèque (par ex, /opt/myscriptslib/bin/ ).

0 votes

Merci pour vos conseils. J'ai personnellement créé le dossier /opt/ pour mettre mes logiciels et ensuite j'ai juste fait des liens symboliques vers /usr/local/bin pour tous les exécutables... alors pas besoin d'ajouter le /opt/myspecific-soft dans la variable d'environnement path.

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