Utilisation des répertoires / opt et / usr / local dans le contexte d’un PC

65

Quelle est la différence entre /optet /usr/localrépertoires et quel genre de programmes doit être installé pour eux?

J'ai fait référence à la hiérarchie du système de fichiers Linux, mais l'explication n'est pas très claire. Selon le lien ci-dessus;

/opt : - Ce répertoire est réservé à tous les logiciels et packages complémentaires qui ne font pas partie de l'installation par défaut.

/usr/local: - La /usr/localhiérarchie 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.

Dans le contexte d'un PC sans ordinateur en réseau, quel devrait être le répertoire pour installer un logiciel auquel plusieurs utilisateurs locaux auront accès? (ie où devrais-je installer un logiciel comme netbeans)

Je vous remercie

Niroshan
la source
4
Google Chrome optdoit utiliser ce répertoire pour une raison quelconque.
Camilo Martin
2
@ CamiloMartin Je suppose que c'est optnormal.
becko
4
@becko Eh bien, ce doit être un optchoix imal si Google l'a optédité.
Camilo Martin
3
Même si vous êtes tous d'accord, optimus Prime sonne mieux.
erm3nda
2
Lol..Je suis arrivé tard à la fête ..Mais il semblerait que vous ayez optbeaucoup imisé la section commentaires ..: P
john400

Réponses:

71

/optest destiné aux applications tierces qui ne dépendent d'aucune dépendance en dehors de la portée dudit paquet. /usr/localconcerne les packages installés sur cette machine en dehors du domaine d'application du gestionnaire de packages de distribution.

Un exemple:

Un client sip open source fourni sous forme de fichier .deb serait installé dans /usr. Si elle était construite avec le framework Qt, apt l'utiliserait comme dépendance.

Le même sip-client open source construit à partir de la source résiderait /usr/localpour que apt ne le perturbe pas si vous installiez ultérieurement un paquet .deb pour la même application. Vous pouvez soit créer ses dépendances à partir des sources, soit les obtenir auprès du gestionnaire de paquets.

Une application tierce dans /optest supposée être autonome. Par exemple, un sip-client propriétaire utilisant Qt ne s'appuierait pas sur la version d'apt, mais serait lié ou statiquement lié.

Pour plus d'informations, consultez la norme de hiérarchie des systèmes de fichiers .

Egil
la source
1
alors netbeans va dans / usr / local car cela dépend de jdk et d’autres compilateurs + plus il suit linux FHS?
Niroshan
1
La réponse est oui.
Egil
1
Si je veux installer condaglobalement comme suggéré ici , est-ce /optle bon endroit?
Alexey
@Egil, pourquoi le mac n'a-t-il pas un répertoire opt?
Pacerier
J'ai déjà voté pour cette réponse, mais je vois maintenant que ses conclusions diffèrent légèrement de cet article du Linux Journal . L'article implique que, avec les logiciels fournis , il importe de savoir qui a fourni le package . Si le paquet est de la prise en pension de package de système d' exploitation, il doit être installé sous /usr(ou, vraisemblablement, même directement sous /bin, /libetc.) comme d' habitude. Si, toutefois, il provient d'une autre source, il convient de le mettre dans /usr/local. Cela inclurait potentiellement le "client sip open source" .debdans la réponse.
Sampablokuper
12

J'installerais des packages tiers uniquement binaires /opt.

Je mettrais tout ce que vous construisez vous-même à partir de la source /usr/local.

netbeansest dans le Repos Ubuntu. Avez-vous besoin d'une version spécifique?

Broam
la source
Y a-t-il une raison derrière cela ou s'agit-il simplement d'une bonne pratique? (J'ai cité Netbeans à titre d'exemple - j'ai modifié cette partie pour supprimer les ambiguïtés). Merci
Niroshan
Je pense que d'autres réponses l'ont mieux dit. Les fichiers binaires tiers sont généralement autonomes.
Broam
Qu'en est-il des choses qui dépendent des runtimes, comme le logiciel Python ou Java? Je les mettrais /optmais je ne suis pas sûr que ce soit correct.
Camilo Martin
8

Tout est une question d'emballage. Si quelque chose est empaqueté de la manière LHS (placer les exécutables dans bin / libraries dans lib / etc.), il devrait aller dans / usr / local.

Si quelque chose a un répertoire de niveau supérieur et ne suit pas ce modèle, il va dans / opt. Généralement, vous devez explicitement ajouter des éléments dans / opt à votre PATH.

Voir aussi Cette question sur le superutilisateur

ARBRE
la source
Cette réponse semble être corroborée par cet article du Linux Journal .
sampablokuper