web-dev-qa-db-fra.com

Où est un bon endroit permanent pour installer des scripts bash personnalisés?

Je suis sur le point d'installer "leiningen" qui est un script bash pour le langage de programmation clojure avec beaucoup d'utilité ... ... mais je ne sais pas où il convient de -passer- un script exécutable sous linux système afin qu'il soit disponible en permanence et de manière stable.

Je ne pense pas que n'importe où dans/home ait un sens, mais je ne sais pas quel répertoire/répertoires sont censés être utilisés pour cela.

/ usr/share?

33
Kzqai

(Remarque: ~ se traduit par /home/user dans cet article)

Personnellement, j'ai mis tous mes scripts système sur mesure dans /usr/local/bin et tous mes scripts bash personnels dans ~/bin. Très peu de programmes que j'installe se placent dans /usr/local/bin répertoire donc ce n'est pas très encombré et il était déjà dans le $PATH variable sur la plupart de mes machines.

Ajouter /usr/local/bin à votre chemin système (s'il n'est pas déjà là) ajoutez ceci à /etc/profile:

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

Ajouter ~/bin au chemin de votre utilisateur ajoutez ceci à ~/.bash_profile:

PATH=$PATH:$HOME/bin
export PATH

Parfois, la valeur par défaut .bash_profile le fichier aura une instruction if qui ajoute automatiquement ~/bin à $PATH s'il existe, alors créez le ~/bin et ouvrez un nouveau terminal pour voir si le vôtre le fait déjà.

47
Trey Hunner

/ usr/local/est vraiment le bon endroit, tandis que/opt est vraiment pour les applications tierces; "/ opt est réservé à l'installation de progiciels d'application complémentaires." Cela fait partie de la norme de hiérarchie du système de fichiers.

Voir http://www.pathname.com/fhs/pub/fhs-2.3.html pour une discussion sur/opt.

Pour/usr/local /, c'est pour "l'utilisation par l'administrateur système". N'oubliez pas ce qu'il y a dedans - documentez-le.

9
Jamieson Becker

Historiquement, vous utilisiez quelque chose comme/opt. Tout va bien tant qu'il est mis à jour dans $ PATH pour les utilisateurs qui sont censés l'avoir (donc tout ce qui se trouve dans/home est une mauvaise idée).

3
Tony

/usr/share/clojure semble être un endroit commun pour mettre les binaires et les bibliothèques de clojure - pourquoi je ne sais pas, cela semble naturel pour /usr/local/share/clojure— donc la création d'un sous-répertoire site sous ce pour ces scripts bash semble correcte.

Le point général est qu'il est plus logique d'organiser les scripts par fonction, de ne pas avoir tous les scripts bash au même endroit.

2
Charles Stewart

/usr/local, Je crois qu'il y a une certaine confusion dans le sens de "local".

Si je comprends bien, "local" ne signifie pas "originaire de/sur la machine locale" mais, plus simplement, "spécifique à la machine locale", qui peut ou non provenir de/de la machine locale.

2
Hatebit