Question Quel est l'emplacement d'installation conventionnel pour les applications sous Linux?


J'installe actuellement NetBeans, et le répertoire d'installation par défaut est /home/thomasowens/netbeans-6.8. Je ne suis pas un fan de cet endroit, alors je regarde /etc, /bin, /usr/bin, et /sbin. Linux a-t-il une place qui, par convention, est identique à celle de Windows? C:\Program Files annuaire?


67
2018-01-02 20:20


origine




Réponses:


Selon le Norme de hiérarchie du système de fichiers, il y a plusieurs endroits qui sont acceptables, selon l'application. Je le cite beaucoup ici.

  • bin est l'abréviation de "binaire" bien sûr
  • sbin est l'abréviation de "serveur binaire", autrement défini comme:

    Utilitaires utilisés pour le système   administration (et autre root uniquement   commandes)

  • /usr est pour les données partageables en lecture seule, et devrait pouvoir être partagé entre plusieurs hôtes compatibles FHS (si vous avez beaucoup de machines sur votre réseau, et qu'elles ont toutes la même architecture, vous devriez pouvoir partager un seul dossier / usr) avec chaque machine sur le réseau)

  • /usr/local est destiné à être utilisé par l'administrateur système lors de l'installation du logiciel localement (c'est-à-dire, pour les applications installées uniquement sur cette machine, pas sur chaque machine du réseau).

Prenant ces éléments ensemble:

  • /usr/bin est le répertoire principal des commandes exécutables sur le système.
  • /usr/sbin est pour tous les fichiers binaires non essentiels utilisés exclusivement par l'administrateur système.
  • Les programmes d’administration système nécessaires à la réparation du système, à la récupération du système, au montage / usr ou à d’autres fonctions essentielles doivent être placés dans /sbin à la place (c.-à-d., les choses que vous devez accéder pour monter /usr/sbin va dans /sbin)
  • De même, les commandes utilisateur essentielles pouvant être nécessaires avant /usr est monté aller dans /bin
  • Tout ce qui est installé uniquement sur la machine locale doit entrer /usr/local/bin ou /usr/local/sbin

Il y a une autre utilisation pour / usr / local si. La plupart des choses que vous installez via le gestionnaire de paquets de votre distribution seront placées sous / usr; beaucoup de gens mettent les choses qu'ils ont compilées à la main sous / usr / local à la place. Cela les éloigne du système de gestion des paquets et vous permet de repérer ce que vous avez installé à partir de la distribution (et vous n'avez pas besoin de sauvegarder car vous pouvez le récupérer) et ce que vous avez compilé à la main; il vous permet également d'exécuter différentes versions en même temps (par exemple, / usr / bin / firefox vs / usr / local / bin / firefox).


Juste au moment où vous pensiez que les choses étaient réglées, il y a un autre endroit, qui est probablement l'équivalent le plus proche de c:\Program Files - /opt:

/opt est réservé à l'installation de progiciels d'application supplémentaires. »

/opt est probablement l'équivalent le plus proche de c:\program files, dans la mesure où vous vous attendez à trouver une application avec tous ses fichiers dans un seul dossier, plutôt que de les disperser /usr/bin, /var, et /etc. Il n'est généralement utilisé que par de très gros paquets, mais dans ce cas, étant donné que Netbeans veut avoir son propre dossier, il est probablement plus logique de le placer sous / opt / netbeans.


92
2018-01-02 21:23



intéressant. Si j'avais conçu Linux, j'aurais mis les applications partagées en réseau dans / usr / shared, puis placé les applications hôtes privées dans / usr. De cette façon, je pourrais partager / usr / shared sans aussi, par héritage, partager / usr. - djangofan
Vraiment belle réponse. J'aime aussi le commentaire sur le fait de ne pas utiliser le système de gestion des paquets. - DaveParillo
Définitivement / opter pour des "packages tiers complets". La plupart des installations divisent les différents binaires, bibliothèques, fichiers, etc. en différents répertoires, mais lorsque vous avez un répertoire "tout en un", / opt facilite la gestion. - Avery Payne
Quelques questions rapides: 1) Si / usr est supposé être partageable entre toutes les machines d'un réseau, cela ne signifie-t-il pas que tous les répertoires enfants pourraient également être partagés, rendant ainsi / usr / local visible pour les autres machines du réseau? 2) Qu'est-ce que FHS? 3) Lorsque vous parlez de commandes nécessaires au montage / usr, parlez-vous de la manière dont le système d'exploitation démarre, disons un arrêt? Je m'excuse pour le bombardement de questions 7 ans plus tard, mais je suis nouveau sur Linux et j'ai eu la même question après avoir vu les guides d’installation dire où mettre des choses, mais pas POURQUOI le mettre là. +1 btw - Ungeheuer


Vraiment, cela se résume à des préférences personnelles. Je vais expliquer le mien pour ce qu'il vaut.

/ usr, / usr / bin sont généralement des endroits où les logiciels installés par le système doivent être installés. Quand j'installe les choses moi-même, je les installe à plusieurs endroits:

  1. Si c'est un script ou un petit programme que je vais utiliser, je l'installe dans ~ / bin - c'est là que la plupart de mes fichiers finissent.
  2. Si c'est quelque chose comme vous l'avez décrit (NetBeans) avec un arbre de fichiers complet, je l'installe dans / opt
  3. S'il s'agit d'un seul exécutable, je l'installe dans / usr / local / bin

Pourquoi est-ce que je fais la distinction entre # 2 et # 3? Aucune idée, c'est juste une habitude que j'ai développée avec le temps. Il fonctionne que / opt finit généralement par devenir un arbre profond de fichiers, mais ne dispose que de 2 ou 3 «choses» réelles. A ce moment, j'ai des notes de lotus et de lotus installées dans opt, 2 répertoires contenant chacun des arbres plutôt grands. Dans / usr / local / bin, j'ai 20 ou 30 entrées, mais pas de sous-répertoire.

Je n'installe pas les choses dans / usr / bin ou / usr / sbin parce que j'aime bien séparer les éléments que j'ajoute manuellement (qui ne font pas partie de la simple installation du référentiel standard).


4
2018-01-03 01:23





Tandis que le Norme de hiérarchie du système de fichiers fournit des conseils. J'ai trouvé que la plupart des distributions aiment installer des paquets dans /usr/share.

Pour cette raison, j'ai adopté la pratique consistant à installer toute application non installée via le gestionnaire de paquets (rpm / apt-get / emerge) dans /usr/local. Cela me permet de séparer les applications et les bibliothèques qui ne sont pas gérées via la gestion des packages de celles qui le sont.

C'est une technique qui m'a aidé à gérer mon système sous Fedora Core et Gentoo.


1
2018-01-03 01:45





J'aurais pensé que l'emplacement par défaut est /bin, c'est à peu près tout ce qui est installé par défaut si vous utilisez apt-get ou similaire ...

... Cependant, quand il s’agit de programmes plus modernes (ou sans programme d’installation) qui contiennent beaucoup de fichiers supplémentaires, j’aime les placer dans leur propre répertoire dans /bin.


0
2018-01-02 20:24



Quelle est la différence entre / bin, / usr / bin et / sbin? / bin a le plus de sens, car c'est pour les fichiers BINary. - Thomas Owens


Généralement, ils installent dans plusieurs dossiers, principalement / usr, / local, / bin, etc. Vous pouvez trouver où le programme installe à partir de l'installateur GDebi (sous l'onglet fichiers). Si vous allez déplacer Netbeans, je vous suggère de le déplacer vers / opt, car c'est là que Google semble installer son matériel.


0
2018-01-02 20:33





En accord avec la réponse de James Polley, mais en fait, le répertoire par défaut a beaucoup de sens à moins que vous ayez besoin de partager l'application entre plusieurs comptes. Par exemple, je devais installer Eclipse 3.0 (obsolète) pour pouvoir faire fonctionner Flex sous Linux, et je l'ai mis dans $ HOME / eclipse3.


0
2018-01-03 04:07





J'aime utiliser / apps pour la plupart des applications supplémentaires que j'installe sur plusieurs serveurs. Je conserve une copie du dossier dans / installs / apps sur mon serveur nfs. Lorsque je crée un nouveau serveur Linux, je monte le dossier d'installation et copie / apps et j'ai plusieurs applications communes différentes sur le nouveau serveur. Je supprime les entrées dont je n'ai pas besoin pour ce nouveau serveur et j'en ai terminé. Eh bien, peut-être que je dois exécuter un script ou trois pour définir des variables d'environnement ou des instructions de chemin, mais c'est à peu près ce qu'il faut pour configurer de nombreux nouveaux serveurs.

Je viens d'un environnement Windows et .net. L'une des promesses de .net était que la plupart des applications pouvaient être installées à l'aide de Windows xcopy. Je cherche la même chose sous Linux. Lorsque disponible, je choisis l'archive tar sur le RPM ou sur yum, etc., je peux donc déployer sur / apps avec cp -r et ajouter l'application à mon serveur nfs pour les déploiements futurs.


0
2018-05-29 15:32



La question demande la convention. Vous avez décrit ce que vous faites personnellement. Pouvez-vous au moins relier cela à une convention? - fixer1234