Dans quel répertoire dois-je installer des programmes sous Linux?

44

Je souhaite installer un programme sous Linux et l'exécuter en tant que démon. (Team Speak 3 dans ce cas, mais la question est de nature générale). Il n'y a pas de paquet fourni, seulement des fichiers binaires tarés. Où dans la structure de répertoire devrais-je mettre un tel programme par convention?

Sur le Web, j'ai constaté que / opt est destiné aux "applications complémentaires facultatives", alors que / usr est destiné aux "programmes utilisateur". J'ai trouvé un tutoriel suggérant / opt tandis que l'autre sugested / usr.

Alors lequel est "plus correct"?

Eiver
la source
1
Le "plus correct" dépend de votre distribution. Vous devriez consulter les directives de votre distribution pour savoir où placer les logiciels qui ne sont pas gérés par le gestionnaire de paquets (souvent /usr/local) OU pour créer votre propre paquet.
Leiaz
Merci Leiaz. Votre commentaire m'a aidé à trouver la réponse ( askubuntu.com/questions/1148/… ). Donc, je suppose que cela devrait être / opt dans mon cas (Utiliser Linux Mint, qui est basé sur Ubuntu) et que l’application utilise un seul dossier. Si vous convertissez votre commentaire en réponse, je l'accepterai.
Eiver

Réponses:

27

Le "plus correct" dépend de votre distribution. Vous devriez consulter les directives de votre distribution pour savoir où placer les logiciels qui ne sont pas gérés par le gestionnaire de paquets (souvent /usr/local) OU pour créer votre propre paquet.

Comme vous l'avez dit, TeamSpeak vient de tout mettre dans un dossier (et peut ne pas être facile à réorganiser), oui, /opt/c'est probablement mieux.

(Mais, par exemple, dans Archlinux, le gestionnaire de paquets peut s'y installer, donc je ferais quand même un PKGBUILD dans lequel installer /opt.)

De plus, les distributions essaient généralement de suivre la norme de hiérarchie des systèmes de fichiers. Vous devez donc rechercher une convention plus générique.

Leiaz
la source
y a-t-il un alias pour savoir où sont situés chaque répertoire par utilisation? (par exemple, où placer les configurations racine, où placer les fichiers binaires, les dépendances, les modèles ...)
Sandburg
5

Si vous compilez votre propre logiciel, vous contrôlez en définitive l'emplacement de l'installation. Par convention, les logiciels compilés et installés manuellement (et non par un gestionnaire de paquets, par exemple apt, yum, pacman) sont installés dans /usr/local. Certains packages (programmes) créeront un sous-répertoire dans /usr/locallequel stocker tous leurs fichiers pertinents, tels que /usr/local/openssl. D'autres packages installeront leurs fichiers nécessaires dans des répertoires existants tels que /usr/local/sbinet /usr/local/etc. Ce sont simplement des emplacements par défaut et peuvent être modifiés lors de la compilation.

Lorsque vous compilez un logiciel, l'emplacement d'installation peut être spécifié à l'aide de l' --prefix=option lors de l'exécution ./configure. Il est fortement recommandé de regarder toutes les options disponibles pour votre paquet en cours d'exécution $ ./configure --help | less. De plus, consulter les documents INSTALL et README fournis avec votre package est une bonne idée. Ils ont tendance à inclure des instructions d'installation et des informations de dépendance spécifiques au package.

Il convient également de noter que, bien que vous puissiez stocker des logiciels n'importe où, conformément à la FHS , le code source des logiciels installés localement doit être stocké dans /usr/local/src Standardizing, dans lequel vous stockez vos arborescences sources, ce qui vous permettra de localiser facilement un arbre si vous devez copier un stock. fichier de configuration ou binaire. Même si certains paquets l'utilisent, votre code source ne doit pas être stocké /usr/srccar il est destiné aux logiciels système tels que le noyau.

Enfin, vous devez vous assurer que votre emplacement d’installation est inclus dans votre $PATH. Si vous décidez d'installer votre paquet, /optmais pas dans votre $PATHshell, votre exécutable ne trouvera pas les fichiers exécutables et vous devrez utiliser le chemin absolu pour appeler vos programmes. Voici quelques bonnes discussions de l’ UA sur la configuration de votre$PATH

Lecture complémentaire: man hier

Ruisseau
la source
5

La base standard de Linux et la norme de hiérarchie du système de fichiers sont sans doute les normes où et comment installer un logiciel sur un système Linux et suggéreraient de placer le logiciel non inclus dans votre distribution dans /optou dans des /usr/local/sous-répertoires ( /opt/<package> /opt/<provider> /usr/local/bin).

La meilleure pratique consiste à convertir les logiciels que vous téléchargez en un progiciel installable natif de votre distribution, par exemple les formats dpkg ou rpm. Cela facilitera la création de rapports, la mise à niveau et la suppression propre du logiciel.

HBruijn
la source
Cela ne fait que réitérer la question plutôt que d'y répondre. L'OP savait que /optet /usr/local/étaient les deux options disponibles , mais voulait des informations spécifiques sur lesquels une de ces options à utiliser. Cela pourrait être une réponse valable si elle prétend plutôt que les deux sites sont interchangeables (bien que je conteste que ce serait une réponse correcte dans un tel cas).
JBentley le
1

Les binaires vont dans le bindossier par des conventions communes, la façon dont vous organisez la structure de votre paquet dépend de vous, je peux penser à /opt/<prog_name>/cela s'il ne s'agit que d'une liste de binaires.

bbsanem
la source
J'ai bien peur que les gars de Team Speak 3 aient créé le programme de telle sorte que tout ce dont il a besoin se trouve dans un seul dossier (fichiers binaires, fichiers de configuration, journaux), de sorte qu'il n'utilise pas / bin ou / etc ou / var / log
Eiver
1

J'avais la même question lors de l'installation d'Eclipse via le programme d'installation d'Eclipse.

J'ai remarqué que Gimp, Perl et Vim sont installés dans le /usr/sharedossier et j'ai décidé de l'installer là-bas.

Senpai
la source
0

Les programmes peuvent être installés de deux manières, en fonction de la manière dont ils sont compressés.

  1. Via le gestionnaire de logiciels (apt, synaptic, Gdebi, etc.) - le programme est sous forme de package, généralement .deb ou rpm. Dans la plupart des cas, les gestionnaires de logiciels gèrent les dépendances et installent généralement les fichiers binaires /usr/bin, les fichiers de configuration /etc, etc. Ils peuvent également créer un fichier de configuration pour le programme chez vous, généralement ~/.foo. Si vous pouvez modifier ce fichier, vous pouvez également modifier facilement les paramètres de votre session de cette façon. Lorsque vous supprimez le package, le gestionnaire trouvera tous les fichiers et les supprimera proprement (il stockera tous les emplacements dans un fichier texte spécial). Mais il peut conserver certains fichiers de configuration, par exemple celui de votre dossier personnel.

  2. Vous téléchargez un programme (généralement compressé) sous forme de fichiers binaires précompilés pour votre architecture. Le fichier exécutable du programme se trouve généralement dans un dossier unique, à côté d'autres fichiers (bibliothèques liées dynamiquement, etc.). Ce dossier peut être copié dans son intégralité, avec les privilèges root, /optou /usr/binpeut, si les autorisations le permettent, être utilisé par n'importe quel utilisateur. J'ai moi-même mis les dossiers contenant des fichiers binaires dans mon dossier personnel ~/bin. Vous devriez maintenant pouvoir exécuter le programme en appelant son fichier bin.

Štěpán Doan
la source