web-dev-qa-db-fra.com

Dois-je installer des applications Linux dans / var ou / opt?

J'exécute de nombreuses applications open source, y compris Java et Tomcat. Il semble que la plupart des instructions utilisent mes applications à partir du /var répertoire. Mais de temps en temps, je vois aussi le /opt répertoire. Pendant que j'y suis, je vois aussi /usr/local/ et même /etc ainsi que.

Quand dois-je installer des applications dans un dossier ou dans l'autre? Y a-t-il des avantages et des inconvénients pour chacun? Cela a-t-il à voir avec l'historique des saveurs (Solaris vs Linux ou Red Hat vs Ubuntu)?

86
Trevor Allred

La norme pour ces problèmes est la File Hierarchy Standard . C'est un document assez volumineux. Fondamentalement (et très grossièrement), les chemins d'accès standard sous Linux sont:

  • /bin & /sbin sont destinés aux programmes vitaux pour le système d'exploitation, sbin étant réservé aux administrateurs;
  • /usr/bin & /usr/sbin ne concerne pas les programmes vitaux, sbin étant réservé aux administrateurs;
  • /var est pour les données vivantes des programmes. Il peut s'agir de données de cache, de données de spoule, de données temporaires (sauf si elles sont dans /tmp, qui est effacé à chaque redémarrage), etc.;
  • /usr/local est pour les programmes installés localement. En règle générale, il héberge des programmes qui respectent les normes mais qui n'ont pas été mis en package pour le système d'exploitation, mais plutôt installés manuellement par l'administrateur (en utilisant par exemple ./configure && make && make install) ainsi que des scripts administrateur;
  • /opt est destiné aux programmes qui ne sont pas packagés et ne respectent pas les normes. Vous venez de mettre toutes les bibliothèques là-bas avec le programme. C'est souvent une solution rapide et sale, mais elle peut également être utilisée pour des programmes créés par vous-même et pour lesquels vous souhaitez avoir un chemin spécifique. Vous pouvez créer votre propre chemin (par exemple /opt/yourcompany) en son sein, et dans ce cas, nous vous encourageons à l'enregistrer comme faisant partie des chemins standard;
  • /etc ne doit pas contenir de programmes, mais plutôt des configurations.

Si vos programmes sont spécifiques aux services fournis par le service, /srv peut également être un bon emplacement pour eux. Par exemple, je préfère utiliser /srv/www pour les sites Web plutôt que /var/www pour m'assurer que le répertoire ne contiendra que des données que j'ai ajoutées moi-même, et rien qui ne provienne des progiciels.

Il existe certaines différences entre les distributions. Par exemple, les systèmes RedHat utilisent les répertoires libexec lorsque les systèmes Debian/Ubuntu ne le font pas.

Le FHS est principalement utilisé par les distributions Linux (je ne connais en fait aucun autre OS qui s'y conforme vraiment). Les autres systèmes Unix ne le suivent pas. Par exemple, les systèmes BSD ont tendance à utiliser /usr/local pour les programmes packagés, ce qui n'est pas le cas pour Linux. Solaris a des chemins standard très différents.

Je vous encourage fortement à lire le document FHS que j'ai lié ci-dessus si vous souhaitez en savoir plus à ce sujet.

138
ℝaphink

opt signifie logiciel optionnel. var signifie fichiers système variables. Par conséquent, vos applications doivent aller à /opt.

5
Eduard Wirch

Cela dépend de votre norme locale.

Personnellement, je n'installe rien dans/var sans une bonne raison. Mon/usr/local est presque toujours un montage nfs hors du réseau, donc tout ce qui n'est pas emballé est installé dans/opt.

3
David Mackintosh