web-dev-qa-db-fra.com

/ usr / local ou / opt?

Comment procédez-vous généralement pour vos installations de paquets sous Linux, pour les paquets qui ne font pas partie des dépôts de votre distrib?

De mon côté, je suis habitué à installer dans/opt. Mais depuis, j'ai vu ce document sur Internet: http://www.pathname.com/fhs/ . Maintenant, je suis confus: apparemment,/usr/local serait également une possibilité.

Quelle est la différence entre les deux? Des bonnes pratiques à partager?

Merci

SirFabel

40
SirFabel
  • Tout ce qui doit être compilé et installé style Unix et conforme à FHS -> /usr/local
  • Tout le reste (par exemple, une application Web Java fournie avec son propre serveur d'applications et des charges de ressources dans une archive Zip -> /opt
31
lajuette

Juste comme autres informations intéressantes: La signification originale de /usr/local est que si /usr est monté sur le réseau (unique /usr partagé sur plusieurs ordinateurs), /usr/local serait un système de fichiers distinct local à l’ordinateur (partition sur disque local).

Et même sur ce sujet, même si cela ne correspond pas à la question: S'il y a plusieurs ordinateurs avec des architectures différentes, il y aura naturellement un /usr pour chaque Arch, mais /usr/share serait un autre système de fichiers séparé partagé entre les architectures (d'où 'share ').

24
Nicolás

La façon dont je le fais est que si cela nécessite un préfixe lui-même OR c'est un paquet binaire, je choisis l'option/opt (ce qui est à peu près la méthode Solaris). Si je compile à partir de la source/usr/local, c'est comme ça que je vais.

7
Lee

Je mets tout dans un répertoire privé, puis j'utilise GNU stow .

Donc, je vais installer le package X.ver à /BASE/stow/X.ver. GNU stow va alors combiner tous les paquets (avec des liens symboliques) dans /BASE/bin, /BASE/lib, etc.

Les conflits et la suppression de paquets sont beaucoup plus faciles à gérer.

6
R Samuel Klatchko

Voici comment j'interprète la norme FHS:

/ usr/local est destiné aux fichiers construits localement ou installés localement, qu'ils soient empaquetés ou non et qui font en quelque sorte partie de cette instance du système d'exploitation.

/ opt est un emplacement pour installer des packages "étrangers" ne faisant pas partie du système d'exploitation.

Tant que vous n'utilisez que des fichiers sur le seul système où vous les construisez,/usr/local convient, et constitue donc le répertoire de base par défaut de la grande majorité des logiciels open source.

Si vous envisagez de redistribuer votre paquet, nous vous recommandons d'utiliser un répertoire de base personnalisé tel que/opt/myPackage.

2
jlliagre

Solaris a beaucoup utilisé/opté. De nombreuses distributions Linux modernes attendent maintenant des paquets dans/usr/local /. L'idée est la même: créer un logiciel permettant à cette machine de faire ce qu'elle fait, contrairement au système d'exploitation. C'est à peu près analogue à "Program Files" sur un système Windows.

Choisissez-en un et respectez-le. Il est assez facile de faire un lien symbolique/opt to/usr/local.

1
Kyle Hodgson

Si vous recompilez un logiciel fourni par la distribution de votre système d'exploitation, utilisez/usr/local pour tirer parti de plusieurs avantages d'architecture spécifiques à votre propre machine.

Si vous ajoutez un logiciel provenant de sources autres que la distribution de votre système d'exploitation, mettez-le dans/opt.

0
cp7781