Lors de l'installation d'applications utilisateur, où les «meilleures pratiques» suggèrent-elles de se situer?


210

Parfois, j'installe les applications manuellement plutôt que d'utiliser aptun autre gestionnaire de paquets.

Quel est l' endroit ( /usr/, /usr/local/, /opt/, /home/, etc.) est suggérée par les « meilleures pratiques » pour l'installation des applications utilisateur?


Soucieux d’installer de temps en temps des sources, j’ai écrit un petit outil qui modifie lui-même le fichier de démarrage de votre shell (et modifie également le préfixe de votre bibliothèque, si vous le demandez, pour les programmes qui dépendent de bibliothèques partagées. ). Pas très riche en fonctionnalités, mais cela fonctionne 99% du temps.
new123456


1
Grande discussion sur la distinction entre /optet /usr/local: unix.stackexchange.com/q/11544/11917
blong

Réponses:


184

Cela dépend vraiment. Si l'application contient un setup.pyfichier makefile, ou par exemple pour les applications python si elle utilise distutils (par exemple, un fichier), ou un système de construction / installation similaire, vous devez l'installer /usr/local/. C'est souvent le comportement par défaut.

De ce que je comprends, /usr/local/a une hiérarchie similaire à /usr/. Cependant, les répertoires comme /usr/bin/et /usr/lib/sont généralement réservés aux paquets installés via apt. Ainsi, un programme sur lequel on s'attend à être "installé" /usr/devrait fonctionner correctement /usr/local/.

Si vous avez juste besoin d'extraire une archive et de l'exécuter directement (par exemple, Firefox), insérez-la dans /opt/. Un programme qui n'a besoin que d'un répertoire et obtiendra tous les fichiers / bibliothèques relatifs à ce répertoire peut obtenir un répertoire pour lui-même /opt/.


24
Il semble que beaucoup de gens oublient opt/- à mon avis, vous avez frappé le clou pour ce qui est du but.
Marco Ceppi

3
Créez un lien symbolique à partir de / usr / bin ou ajoutez-le à PATH dans ~ / .bashrc
Alex

1
Qu'en est- il ~/.local/share? @Marco
ultimatex le

1
Vous pouvez installer des éléments à l'intérieur ~(votre répertoire personnel), mais cela ne rendra une application accessible qu'à un seul utilisateur. Les autres utilisateurs de votre système devront installer et gérer leurs propres installations de ce logiciel. En ce qui concerne les meilleures pratiques pour l’installation d’applications, installez votre répertoire personnel, je pense qu’il n’existe pas de directives aussi strictes car vous n’interférerez pas avec les paquets système.
Umang

1
Est-il erroné d'installer des applications "décompressées à partir de tar" sous / home / ubuntu / myapp - quelle différence cela fait-il par rapport à / opt / myapp?
JARC le

116

Il est bon de se rappeler que /usrcela ne représente pas des ressources utilisateur mais plutôt unix .

En tant que tel, j’ai tendance à penser que toute distribution a le droit de contourner le contenu de /usr,mon contenu et que mes ajouts spécifiques au système sont intégrés /usr/local, ce que j’ai conservé avant de procéder à une mise à niveau.

Pendant ce temps, les applications et autres vont dans /optpo

Certaines personnes se sentent à l'aise d'introduire des choses /home, bien que je respecte rarement cette convention.

Cela dit, je laisse le gestionnaire de paquets de distribution faire les choses en premier, puis je fais ce qui précède lorsque je roule à la main.


35
Il convient de rappeler que «ressources système unix» est un changement de nom effectué APRÈS que «/ home» a été ajouté. Dans l'ancien, l'ancien, l'ancien système d'exploitation (Unix version 6 et autres), vous verriez des répertoires tels que / usr / jimmy, / usr / siobhan, / usr / ahmed, etc. parce que les répertoires "utilisateur" étaient stockés dans / usr .
Mark Leighton Fisher

5
OK, je vais mordre: qu'est-ce que opt représente?
Seth

3
@Seth, je pense que c'est «facultatif» - c'était à l'origine pour un logiciel qui ne faisait pas partie d'une installation par défaut.
Carl H

5
/ usr est User. C'était parce que les utilisateurs de Linux étaient des développeurs. D'abord, alors qu'il commençait à se diviser en devs et utilisateurs, le répertoire a /homeété introduit. Et puis quelqu'un a eu l'idée de dire que cela signifie Unix System Resources, ce qui ne fait pas vraiment de sens, parce que nous avons l' Unix system Resourcesen/dev
Info-écran

2
Correct, / usr est un backronym. L'objectif a changé depuis l'époque où Unix fonctionnait sur un PDP-7 en 1969.
Walt Stoneburner Le

34

Installer des programmes instables tels que firefox devel dans / home / user / opt / le rend beaucoup plus facile à supprimer et évite toute confusion pour les autres utilisateurs quant à la version à utiliser ... Donc, si ce n'est pas un programme à usage mondial, installez-le. dans un sous-dossier de votre répertoire personnel.

N'installez jamais de programmes dans / usr /, cela risquerait de causer le chaos, les choses installées dans / usr / ne sont destinées qu'à des packages de distribution. / usr / local / est destiné aux paquets compilés localement. Et la structure fonctionne exactement de la même manière! les fichiers de / usr / local / seront prioritaires par rapport aux fichiers de / usr /

/ opt / devrait être utilisé pour l'installation de packages (binaires) précompilés (Thunderbird, Eclipse, Netbeans, IBM NetSphere, etc.), etc. Mais s'ils ne concernent qu'un seul utilisateur, ils doivent être placés dans votre répertoire personnel.

Si vous voulez pouvoir exécuter un programme installé dans un emplacement "étrange" (comme / home / utilisateur / opt / firefox /) sans taper le chemin complet, vous devez l'ajouter à votre variable $ PATH, vous pouvez le faire ajouter une ligne comme celle-ci dans votre /home/user/.profile

export PATH=/home/user/opt/firefox:$PATH

Le nom du dossier doit être celui où se trouve le fichier exécutable que vous devez exécuter.


26

La norme de hiérarchie du système de fichiers Linux indique /usr/local.

De http://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/usr.html :

L'idée à l'origine de '/ usr / local' était de disposer d'un répertoire ('local') '/ usr' distinct sur chaque machine en plus de '/ usr', qui pourrait simplement être monté en lecture seule. Il copie la structure de '/ usr'. De nos jours, «/ usr / local» est largement considéré comme un bon endroit pour conserver des programmes auto-compilés ou tiers. La hiérarchie / usr / local est destinée à être utilisée par l’administrateur système lors de l’installation locale du logiciel. Il doit être sécurisé pour ne pas être écrasé lorsque le logiciel système est mis à jour. Il peut être utilisé pour des programmes et des données pouvant être partagés entre un groupe d'hôtes, mais ne se trouvant pas dans / usr. Les logiciels installés localement doivent être placés dans / usr / local plutôt que / usr, sauf s'il est en cours d'installation pour remplacer ou mettre à niveau le logiciel dans / usr.


1
Semble contredire ces informations / usr / local avec les informations de la page opt: tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html "" Ce répertoire est réservé à tous les packages logiciels et add- ons ne font pas partie de l'installation par défaut. Par exemple, les packages StarOffice, Kylix, Netscape Communicator et WordPerfect se trouvent normalement ici. Pour se conformer au FSSTND, toutes les applications tierces doivent être installées dans ce répertoire. "..." (semblable à la manière dont Windows installera le nouveau logiciel dans son propre répertoire C: \ Windows \ Progam Files \ "Nom du programme ")"
Pod

6

J'ai habituellement un dossier nommé "Programmes" dans ma maison où j'installe ces programmes, assez étrange (ou pas), ils sont tous des trucs java en ce moment.

Cela présente un grand avantage pour moi lorsque je réinstalle ou que je change d’ordinateur, ils sont déplacés avec le reste de ma maison. Il a un désavantage évident, ces applications ne sont disponibles que pour mon utilisateur.


Comment puis-je réinstaller Ubuntu 16.04 sans perdre de données dans le dossier de départ? J'ai essayé de faire par /répertoire formate seulement, puis tapez le même nom d'utilisateur et mot de passe, mais j'ai trouvé que Ubuntu crée un autre dossier personnel.
Ibrahim Disouki

1

Utilisez "checkinstall" pour convertir votre paquet alien en deb afin qu’il puisse être désinstallé à l’aide du gestionnaire de paquets.

Notez que les fichiers de configuration ne sont souvent pas traités comme des fichiers de configuration (peut-être ignorés ou traités comme faisant partie de l'application), et que les scripts de pré-installation et de post-installation sont parfois gênés, bien qu'ils vous avertissent généralement quand il pense à la deb aura un mauvais script de pré ou post-installation.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.