Je lance beaucoup d'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. Tant que j'y suis, je vois aussi /usr/local/
et même /etc
aussi.
Quand devrais-je installer des applications dans un dossier ou dans l'autre? Y at-il des avantages et des inconvénients de chacun? Cela a-t-il un rapport avec l'historique de la saveur (Solaris vs Linux ou Red Hat vs Ubuntu)?
linux
installation
Trevor Allred
la source
la source
Réponses:
La norme pour ces problèmes est la norme de hiérarchie des fichiers . C'est un document plutôt gros. En gros (et très grossièrement), les chemins standard sous Linux sont:
/bin
&/sbin
sont des programmes vitaux pour le système d'exploitation, sbin étant réservé aux administrateurs;/usr/bin
&/usr/sbin
sont destinés à des programmes non vitaux, sbin étant réservé aux administrateurs;/var
est pour les données vivantes pour les programmes. Il peut s'agir de données en cache, de données de spool, de données temporaires (sauf si elles/tmp
sont effacées, ce 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 conformes aux normes mais non empaquetés pour le système d'exploitation, mais installés manuellement par l'administrateur (à l'aide, par exemple./configure && make && make install
), ainsi que des scripts administrateur./opt
est pour les programmes qui ne sont pas empaquetés et ne suivent pas les normes. Vous venez de mettre toutes les bibliothèques là 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
) à l'intérieur de celui-ci, et dans ce cas, vous êtes encouragé à l'enregistrer comme faisant partie des chemins standard./etc
ne devrait pas contenir de programmes, mais plutôt de configurations.Si vos programmes sont spécifiques aux services fournis par le service, cela
/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 les données que j'ai ajoutées moi-même, et rien qui provient de packages logiciels.Il y a quelques différences entre les distributions. Par exemple, les systèmes RedHat utilisent des
libexec
répertoires , contrairement aux systèmes Debian / Ubuntu.Le FHS est principalement utilisé par les distributions Linux (en fait, je ne connais aucun autre système d’exploitation qui le respecte). Les autres systèmes Unix ne le suivent pas. Par exemple, les systèmes BSD ont tendance à être utilisés
/usr/local
pour les programmes empaquetés, ce qui n’est pas le cas sous 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.
la source
/srv
. Je cherchais une place pour mes dépôts git et je n’aimais pas que mon contenu Apache soit dans/var/www
./srv
semble être l'endroit idéal.var
au lieu dedata
?/var
parce que c'est pour "diverses données". Au début, Unix était hébergé sur un seul lecteur. Quand cela ne suffisait pas, ils en ont obtenu un nouveau, l'ont monté en tant que/usr
et y ont transféré toutes les données utilisateur. Mais ce n’était pas suffisant et l’ancien disque était bientôt plein. Ils ont donc déplacé tous les fichiers binaires sur lesquels le système ne pouvait pas démarrer du/bin
au/usr/bin
. Ils manquent simplement d'espace. Plus tard, ils ont eu besoin de partager des données entre utilisateurs afin de pouvoir les/var
utiliser et les utiliser comme boîte de dépôt. FHS est plein de décisions héritées comme celle-ci et devrait être pris avec une pincée de sel.opt
signifie logiciel optionnel.var
représente les fichiers système variables. Par conséquent, vos applications doivent aller à/opt
.la source
/var
est pour divers fichiers système, pas "divers"./var
parce que c'est pour "diverses données". J'ai encore des notes d'un livre pré-Internet que j'ai lu à l'époque.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 réseau, de sorte que tout ce qui n'est pas empaqueté est installé dans / opt.
la source
/usr
. Pourraient se retrouver dans libs générées dynamiquement à l'/var/lib
occasion, mais je ne vois pas ce que vous fait installer dans/var
, à partir d' un point de vue admin. Le programme l’utilise peut-être beaucoup, mais il doit être vide avant de lancer le programme.