web-dev-qa-db-fra.com

Quel est l'équivalent Linux de C: \ Program Files?

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?

65
Thomas

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 comme bash, csh, etc .... et les commandes couramment utilisées comme cp, 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 )

60
Axel Knauf

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

45
andcoz

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.

12
xenoterracide

Jetez un œil à man hier c'est une "Description de la hiérarchie du système de fichiers".

8
vasily-vm

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

3
Jan

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é.

3
Jaseem

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

1
pankajdoharey