Sous Linux il existe plusieurs répertoires d’installation. Les installations automatiques avec synaptic
, apt
ou aptitude
permettent aux logiciels d’utiliser automatiquement le bon répertoire. Mais quand il faut faire un choix manuel ou quand il faut soi-même compiler un logiciel, quel est le bon répertoire d’installation à choisir ?
Le répertoire /usr
Le répertoire /usr
est l’abréviation de Unix Sytem Ressources (et non pas de user). Ce répertoire appartient à root et seul ce dernier peut y installer ou y compiler un logiciel. Ce répertoire contient la sous arborescence suivante :
/usr |
On remarquera que le sous répertoire /local
reproduit la même arborescence que son répertoire parent /usr
. Ce sous répertoire appartient également à root et, sur Debian notamment, au groupe staff qui possède les droits rws sur ce répertoire.
[root@server:~]# ls -la /usr |
Le droit s minuscule indique que ce répertoire possède le droit d’exécution, soit x et le droit setGID signifiant que tous les fichiers créés dans ce répertoire appartiendront au groupe staff. Cela permettrait à un autre administrateur (qui n’est pas root mais qui est dans le groupe staff) de s’occuper uniquement de l’installation/configuration des logiciels sur cette machine.
Note : Si un fichier de même nom se trouve à la fois dans /usr
et dans /usr/local
, le système choisira automatiquement celui présent dans /usr/local
.
Le sous répertoire /usr/bin
Dans /usr/bin
se trouvent les logiciels (les binaires) installés proprement en ligne de commande avec apt-get
,apt
, aptitude
ou via le gestionnaire de paquets
.
Le sous répertoire /usr/local
Dans /usr/local
se trouve (de préférence) tous les logiciels compilés manuellement. (D’où l’importance de bien éditer le makefile en spécifiant les bonnes options)
Les logiciels présent dans ce répertoire sont accessibles pour tous les utilisateurs. Dans ce répertoire les applications vont respecter la même hiérarchie que sous /usr
(/bin``,
/share/applications,
/share/icons,
/etc`). Même compilés à la main, les logiciels (le binaire et ses ressources) seront installés proprement, dans les endroits logiques et bien identifiés.
Hiérarchie de /usr/local
(noter la présence d’un répertoire /etc
) :
/usr/local |
Le répertoire /usr/local
n’est pas affecté par les mises à jour avec les commandes apt-get
, aptitude
ou via le gestionnaire de paquet
(si bien sûr ce dernier ne contient que des logiciels compilés manuellement).
Répertoire /home/user/.local
Dans le fichier caché /home/un_user/.local
se trouvent les logiciels installés par l’utilisateur un_user. Ce dossier est organisé de la même manière que /usr/local
.
Les exécutables sont dans /.local/bin
, le chemin est indiqué dans la variable d’environnement PATH.
Ce dossier n’est pas toujours présent, il suffit de le créer :
# mkdir ~/.local |
Répertoire /opt
Dans le répertoire /opt
il n’y a par contre pas de règle, les logiciels s’y trouvant sont organisés selon leur configuration. Ce répertoire peut très vite devenir anarchique.
Note : Certains logiciels proposent leur installation dans /usr/le_logiciel
. Il serait éventuellement préférable de l’installer dans /opt
puis de créer un lien vers /usr
.
Exemples :
Firefox (ici installé via la commande apt-get
) s’est placé dans /usr/bin
|patate@linux|~:$ ls -la /usr/bin/fi* |
En faisant un apt-cache policy
:
|patate@linux|~:$ apt-cache policy firefox |
Chrome (installé via le gestionnaire) s’est par contre placé à la fois dans /opt/google/chrome/
|patate@linux|~:$ ls -la /opt/google/chrome/ |
Ainsi que dans /usr/bin/
.On remarquera qu’il s’agit d’un lien symbolique vers /opt/google
ansi que vers /etc
.
|patate@linux|~:$ ls -la /usr/bin/google-chr* |
Par contre en faisant un apt-cache policy
:
|patate@linux|~:$ apt-cache policy google-chrome |
Note sur l’utilisation de Apt, Aptitude et Synaptic
1 - Quand on installe un .deb, c’est dpkg
(programme qui se charge d’installer, supprimer et fournir des informations sur les packages) qui se charge d’ouvrir l’archive puis de placer les bons fichiers au bon endroit.
2 - Le gestionnaire de paquet de Debian est APT
(Advanced Packaging Tool). Son rôle est de conserver une liste des paquets installés sur le système et de gérer leurs dépendances pour maintenir l’ensemble dans un état coordonné et stable.
3 - Aptitude
ou Synaptic
ne sont que des sur-couches utilisant APT
, ils font appel lors de la phase de manipulation du paquet à dpkg
.