Je comprends que sous Windows ainsi que Linux et Unix, un programme | application | logiciel peut être installé dans n'importe quel répertoire. De plus, si les packages sont installés à l'aide du système de package de la distribution, les fichiers seront placés à l'emplacement correct.
Mais parfois, une installation de logiciel demande un chemin d'accès pour placer des fichiers. Dans le cas d'une distribution Linux, où est cet emplacement par défaut (C:\Program Files
ou C:\progra~1
équivalent)? Est-ce différent pour différentes distributions? Si oui, où serait-ce pour RHEL
, Suse
et Ubuntu
?
Le Linux Documentation Project a un description de la hiérarchie du système de fichiers Linux où ils expliquent les différents dossiers et leur signification (en partie historique).
Comme l'a déjà signalé le xénoterracide /bin
et /opt
sont les répertoires standard qui peuvent être comparés aux "Program Files" sous Windows.
/bin
contient plusieurs commandes utiles utiles à la fois à l'administrateur système et aux utilisateurs non privilégiés. Il contient généralement les shells commebash
,csh
, etc .... et les commandes couramment utilisées commecp
,mv
,rm
,cat
,ls
.
( cité de TLDP )
/opt
est réservé à tous les logiciels et packages de modules complémentaires qui ne font pas partie de l'installation par défaut. Par exemple, les packages StarOffice, Kylix, Netscape Communicator et WordPerfect se trouvent normalement ici.
( cité de TLDP )
Il n'y a pas d'équivalent direct. La structure du répertoire est très différente. Sous Windows, vous avez un répertoire unique pour chaque package/logiciel installé qui contient tous les fichiers liés à (par exemple C:\Program Files\MyProgram
). Sous Linux, chaque logiciel est "dispersé" dans de nombreux répertoires en fonction du type de fichier et d'une autre règle.
Par exemple, nous pouvons examiner où différents fichiers liés au programme xscreensaver
sont installés:
/etc/pam.d/xscreensaver
/etc/xscreensaver
/etc/xscreensaver/README
/usr/bin/xscreensaver
/usr/bin/xscreensaver-command
/usr/bin/xscreensaver-demo
/usr/bin/xscreensaver-gl-helper
/usr/share/X11/app-defaults/XScreenSaver
/usr/share/applications/xscreensaver-properties.desktop
/usr/share/doc/packages/xscreensaver
/usr/share/doc/packages/xscreensaver/README
/usr/share/locale/ca/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/da/LC_MESSAGES/xscreensaver.mo
/usr/share/locale/de/LC_MESSAGES/xscreensaver.mo
[ ... ]
/usr/share/locale/zh_TW/LC_MESSAGES/xscreensaver.mo
/usr/share/man/man1/xscreensaver-command.1.gz
/usr/share/man/man1/xscreensaver-demo.1.gz
/usr/share/man/man1/xscreensaver.1.gz
/usr/share/man/man6/xscreensaver-gl-helper.6x.gz
/usr/share/pixmaps/xscreensaver.xpm
/usr/share/xscreensaver
/usr/share/xscreensaver/glade
/usr/share/xscreensaver/glade/screensaver-cmndln.png
/usr/share/xscreensaver/glade/screensaver-colorselector.png
[ ... ]
Ne vous inquiétez pas, généralement lorsqu'un programme d'installation demande où installer, la bonne réponse est l'une des suivantes: /
, /opt
, /usr
, /usr/local
Comme vous pouvez le voir, la plupart des (1) fichiers de xscreensaver
sont installés sous /usr
selon une règle simple: les exécutables dans /usr/bin
, pages de manuel dans /usr/share/man
, documentation dans /usr/share/doc/packages/PROGRAMNAME
etc.
Lorsqu'un installateur demande une installation prefix
, généralement il veut maintenant le chemin de base sous qui installent le programme. Dans mon xscreensaver
exemple, c'est /usr
.
En règle simple: /
ne doit contenir que les programmes nécessaires au démarrage du système (comme C:\windows\system32
), /usr/local
doit contenir les programmes nécessaires uniquement sur cet ordinateur unique, /opt
(2) tous les programmes facultatifs qui ont une structure de répertoire non standard et /usr
tous les logiciels standard.
Dans tous les cas, il existe une norme qui définit toutes ces règles en détail: Norme de hiérarchie du système de fichiers
(1) les fichiers de configuration à l'échelle du système doivent résider dans /etc
(2) assez obsolète sous Linux
Habituellement, /bin
, /usr/bin
, /usr/local/bin
, ou /opt/bin
. Je pense /usr/bin
et /opt/bin
sont les plus proches des fichiers programme, car ils sont généralement destinés aux fichiers binaires non critiques du système qui sont installés par l'administrateur système, bien que contrairement à Windows, ces deux contiennent des programmes installés avec un gestionnaire de packages. Où /usr/local/bin
est destiné aux logiciels non distribués. /bin
est pour les binaires critiques du système comme /bin/sh
.
Jetez un œil à man hier
c'est une "Description de la hiérarchie du système de fichiers".
Comme d'autres l'ont souligné, les programmes installés via le gestionnaire de packages sont répartis sur plusieurs répertoires. Alors que le binaire se trouve généralement /usr/bin
, les fichiers de configuration à l'échelle du système sont dans /etc
, etc.
Si une application n'est pas installée via le gestionnaire de packages, les fichiers doivent être installés dans un endroit où ils n'interfèrent pas avec le gestionnaire de packages. Cet endroit est /usr/local
.
Si vous êtes invité à indiquer un chemin d'installation, le choix le plus courant serait /usr/local/appname
Tapez echo $PATH
dans votre terminal pour voir le (s) chemin (s) dans lequel le shell recherchera une commande. Il va vérifier un fichier dans l'ordre dans lequel il est imprimé.
Eh bien, vous ne trouverez pas toutes vos solutions dans /bin
et sbin
car ils contiennent principalement des commandes système (c'est-à-dire les commandes utilisées par le système).
/usr/bin
peut être idéalement appelé le "Program Files"
du monde unix. En ce qui concerne /opt
très peu de packages choisissent d'utiliser cet emplacement pour l'installation, il en va de même pour les packages utilisant /etc/
ou /var
comme lieux