Comment les exécutables installés sous / opt doivent-ils être ajoutés au chemin?

11

Les programmes installés sous /optpeuvent-ils être liés en toute sécurité /usr/local/bin, qui est déjà dans le PATH par défaut dans Ubuntu et d'autres distributions Linux?

Sinon, y a-t-il une raison de créer un répertoire séparé /opt/binet de l'ajouter au CHEMIN, comme dans cette réponse: Différence entre les répertoires / opt / bin et / opt / X / bin ?

Kenneth Hanson
la source

Réponses:

10

Il y a une différence entre /optet /usr/local/bin. Par conséquent, la simple liaison symbolique des fichiers binaires de l'un à l'autre serait source de confusion. Je ne les mélangerais pas.

/optest destiné à l'installation de progiciels d'application complémentaires , tandis que le /usr/localrépertoire est destiné à l' administrateur système lors de l'installation locale du logiciel (avec makeet make install). /usr/local/binest destiné aux binaires des logiciels installés sous /usr/local.

Selon la norme de hiérarchie des fichiers , la manière correcte serait d'ajouter /opt/<package>/binà $PATHchaque package individuel. Si cela est trop douloureux (lorsque vous avez un nombre incalculable de /opt/<package>/binrépertoires par exemple), vous (l'administrateur local) pouvez créer des liens symboliques de /opt/<package>/binvers le /opt/binrépertoire. Cela peut ensuite être ajouté aux utilisateurs $PATHune fois.

le chaos
la source
Eh, pourquoi? /usr/local/binest à l'usage de l'administrateur système. Si l'administrateur souhaite installer un logiciel /optet créer des liens pour celui-ci /usr/local, c'est parfaitement cromulent.
Gilles 'SO- arrête d'être méchant'
@ Gilles Bien sûr qu'il le peut, il peut faire tout ce qu'il veut, il est l'administrateur système. Mais la meilleure pratique serait de les séparer.
chaos
D'accord, il semble donc que ce soit plus une question de convention standard qu'autre chose. J'étais un peu bizarre par le manque de symétrie "Il y a une différence entre /optet /usr/local/bin" par opposition à que "... entre /optet /usr/local" ou "... entre /opt/binet /usr/local/bin", mais après être arrivé à la fin, je pense que c'était voulu comme un moyen de combiner /opt/binet /opt/.../bin. Si oui, je me demande si le libellé pourrait être amélioré.
Kenneth Hanson
1
@chaos Vous écrivez cela, selon FHS, /opt/package/bin/ou du moins /opt/bin/devrait être ajouté à $ PATH. J'ai lu la référence publiée et cela en dit long sur la façon de structurer /optet ce qu'il y a à l'intérieur, mais je n'ai pas pu trouver de confirmation que l'un de ces répertoires sous /optdevrait être ajouté à $ PATH. Pourriez-vous peut-être expliquer comment vous en êtes arrivé à cette conclusion? Santé
vic
@vic La même raison pour laquelle vous mettriez n'importe quel autre /whatever/binrépertoire dans $ PATH - vous pouvez donc invoquer les exécutables sans taper le chemin complet à chaque fois.
Kenneth Hanson