88 votes

Mac OS X : endroits conventionnels où les fichiers binaires doivent se trouver

J'ai téléchargé une application en ligne de commande et je veux la placer à un endroit où je peux l'exécuter à partir de la ligne de commande sans avoir à saisir le chemin d'accès explicitement.

  1. Quelles sont les voies conventionnelles utilisées pour un tel projet ? /usr/bin ? Existe-t-il différentes options, l'une pour tous les utilisateurs, l'autre pour un utilisateur particulier, comme mon compte administrateur ?

  2. Ou dois-je le placer dans son propre répertoire sous le répertoire Applications, et l'ajouter au chemin d'accès ? Si c'est le cas, quel fichier contrôle l'emplacement du chemin d'accès ?

74voto

Naseer Points 1223

Réponse principale : vous voulez probablement /usr/local/bin . Selon l'état d'avancement de votre macOS, vous devrez peut-être mettre à jour vos paramètres par défaut. $PATH . Voir ci-dessous pour plus de détails.

MISE À JOUR 12-01-2018 Depuis que j'ai écrit ma réponse initiale, Apple a modifié sa configuration par défaut. $PATH . Par conséquent, une grande partie de ce que je dis ci-dessous n'est pas pertinent pour les Macs récents. Si vous tapez echo $PATH dans un terminal, et /usr/local/bin est la première, alors vous pouvez ignorer tout ce qui suit concernant la modification de votre $PATH .

Réponse originale

Les Macs sont inhabituels à cet égard. Le système par défaut $PATH La variable pour un utilisateur normal ressemble à ceci :

/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

En mettant /usr/local/bin après /usr/bin y /bin Mac bouleverse le système habituel. Normalement, vous pouvez mettre quelque chose dans /usr/local/bin (disons un deuxième interpréteur Perl, compilé d'une manière non standard), et alors un utilisateur normal touchera d'abord celui qui est personnalisé plutôt que celui du système. C'est une bonne chose. Les utilisateurs peuvent obtenir des variantes, mais le système reste pur. Étant donné que le système par défaut d'Apple $PATH Toutefois, les éléments de l /usr/bin o /bin sera trouvé avant tout ce qui se trouve dans /usr/local/bin . (Cela va à l'encontre de l'objectif de l'installation, par exemple, du Perl personnalisé dans le fichier . /usr/local/bin .)

Pour remédier à ce problème, vous pouvez modifier le nom de l'utilisateur régulier $PATH en modifiant le .profile dans le répertoire personnel de l'utilisateur. (Il se peut que ce fichier n'existe pas, si vous avez une toute nouvelle installation. Dans ce cas, créez-le).

Semi-relationnel : Homebrew fournit une excellente gestion des paquets pour les Macs. Par défaut, Homebrew installe les logiciels dans /usr/local mais il le fait de manière à ce qu'il soit très facile de supprimer des éléments et de revenir à un état vanille par la suite.

10voto

Andrew Rimmer Points 1887

/usr/local/bin y /usr/local/sbin valent la peine d'être ajoutés à votre chemin, car beaucoup de makefiles pour les compilations de sources sont installés par défaut à cet endroit.

Si vous utilisez MacPorts il est utile d'ajouter /opt/local/bin y /opt/local/sbin également.

La meilleure façon de procéder est d'ajouter

export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$PATH

à la .bashrc dans votre répertoire personnel (qui est caché, donc le CLI est le meilleur moyen de le faire), ou, si vous voulez changer le chemin d'accès au système, ajoutez la même ligne à /etc/bashrc (non caché), mais vous devrez sudo pour le faire.

Si vous n'avez pas de .bashrc dans la maison de n'importe quel utilisateur, vous pouvez en créer un et y ajouter cette ligne, mais n'oubliez pas de changer les permissions sur le fichier que vous créez pour le rendre lisible par l'utilisateur en question (évidemment pas pertinent si vous le faites pour votre propre profil).

Le site $PATH à la fin ajoute le chemin par défaut du système à ce que vous avez mis avant. Notez que le système recherche les binaires dans l'ordre des chemins donnés, donc si vous installez un binaire dans le répertoire /usr/local o /opt/local qui est également installé par défaut sur le système, les versions que vous installez seront trouvées en premier, ce qui peut (bien que rarement) bouleverser les choses. Cela vaut la peine de s'en méfier.

Une bonne information est aquí .

Je dois noter que ce qui précède suppose que vous utilisez Bash pour le Shell, qui est le défaut sur Mac OS X v10.4 (Tiger) et Mac OS X v10.5 (Leopard), mais pas sur les systèmes antérieurs, qui utilisaient tcsh à la place, qui a une syntaxe différente.

J'espère que cela vous aidera...

7voto

Pascal Points 2632

J'ai tendance à aller avec /usr/local . Voici une bonne explication du pourquoi qui fait référence à Norme de hiérarchie des systèmes de fichiers (FHS) ., qui à son tour dit à propos de /usr/local :

Hiérarchie tertiaire pour les données locales, spécifique à cet hôte. Généralement, possède d'autres sous-répertoires, par exemple bin, lib, share.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X