Chaque fois que je lis les astuces pour installer un SDK, un IDE, une extension, etc., il est indiqué que je devrais les décompresser dans le dossier /opt
. Pourquoi ai-je besoin de faire ça?
Lorsque j’installais Ubuntu, j’ai lu que je ne devrais définir que 10 à 20 GiB pour le système de fichiers /
et l’espace restant défini pour /home
. Devrais-je donc étendre l’espace pour le dossier racine ou laisser tout ce matériel à /home
? Y a-t-il une différence?
Commencez par comprendre que tout répertoire qui n'est pas explicitement un point de montage pour une partition distincte (ou un sous-répertoire d'un tel point de montage) est stocké sur la partition racine (/
). Ainsi, si vous avez la racine (/
) et le /home
, et aucune autre partition, votre répertoire /opt
est simplement un répertoire sur la racine (/
). De même pour /tmp
, /sbin
et toute autre chose. Ainsi, la question initiale est basée sur la prémisse fausse qu'il est nécessaire de créer des partitions distinctes pour chaque répertoire situé hors de la racine (/
), de sorte qu'il est impossible d'y répondre directement.
Deuxièmement, /opt
est utilisé pour les logiciels tiers, ce qui dans le contexte d'Ubuntu, signifie les logiciels précompilés qui ne sont pas distribués via les paquets Debian. Parfois, vous verrez la documentation officielle du programme qui fait référence à /opt
, mais des paquets Debian sont disponibles et permettent de déposer ces fichiers ailleurs. Dans ce cas, vous devez ignorer la documentation officielle, ou du moins ignorer ses références d'emplacement de fichier, lorsque vous utilisez le paquet Debian. De plus, si vous avez le choix d’utiliser un paquet précompilé via un fichier tarball ou un paquet Debian, il est généralement préférable d’utiliser le paquet Debian. Dans l’ensemble, l’utilisation de /opt
est plutôt rare de nos jours. Si vous pensez toujours que vous devez mettre des fichiers dans /opt
, vous feriez bien de nommer le logiciel, car les personnes ici présentes sauront si un paquet Debian est disponible pour ce logiciel.
Enfin, en combinant les deux points précédents, il est très rare que les installations Ubuntu divisent /opt
dans une partition distincte, car il est rare que des quantités importantes de données y soient stockées. La plupart des logiciels Ubuntu se trouvent dans /usr
et d’autres emplacements. Il était autrefois courant de scinder /usr
dans une partition séparée, mais cette pratique est plutôt rare de nos jours. Si vous devez installer beaucoup de logiciels dans /opt
, créez une partition distincte pour celui-ci peut-être logique - mais dans de nombreux cas, cela ne sera pas vraiment utile. Des partitions séparées ont du sens si vous devez gérer la sécurité différemment, si différentes fonctionnalités du système de fichiers sont utiles, pour partager des données sur plusieurs installations de système d'exploitation dans une configuration à plusieurs démarrages, et pour d'autres raisons. L'installation de logiciel de routine n'est pas susceptible de bénéficier d'une partition séparée; en fait, créer une partition distincte pour /opt
pourrait poser des problèmes si la taille utilisée par le logiciel stocké change ou si l'estimation de la taille est erronée au départ.
Le fait est que vous n'avez pas besoin de le faire. Utiliser /opt
est une convention. Je recommanderais de l'utiliser mais ce n'est pas strictement nécessaire.
From Hiérarchie des systèmes de fichiers Linux: Chapitre 1. Hiérarchie des systèmes de fichiers Linux :
1.13. /opter
Ce répertoire est réservé à tous les logiciels et packages complémentaires qui 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. Tout paquet à installer ici doit localiser ses fichiers statiques (c'est-à-dire des polices supplémentaires, des cliparts, des fichiers de base de données) doit localiser ses fichiers statiques dans une arborescence de répertoires/opt/'paquet' ou/opt/'fournisseur' distincte (similaire à la dans lequel Windows installera le nouveau logiciel dans sa propre arborescence de répertoires C:\Windows\Progam Files\"Nom du programme"), où "package" est un nom qui décrit le package logiciel et "provider" est le nom enregistré LANANA du fournisseur.
Bien que la plupart des distributions négligent de créer les répertoires/opt/bin,/opt/doc,/opt/include,/opt/info,/opt/lib et/opt/man, ils sont réservés à l’utilisation des administrateurs système locaux. Les paquetages peuvent fournir des fichiers "front-end" destinés à être placés (par la liaison ou la copie) dans ces répertoires réservés par l'administrateur système, mais doivent fonctionner normalement en l'absence de ces répertoires réservés. Les programmes devant être appelés par les utilisateurs se trouvent dans le répertoire/opt/'package'/bin. Si le package comprend des pages de manuel UNIX, elles se trouvent dans/opt/'package'/man et la même sous-structure que/usr/share/man doit être utilisée. Les fichiers de package variables doivent être installés dans/var/opt. Les fichiers de configuration spécifiques à l'hôte sont installés dans/etc/opt.
En aucun cas, d'autres fichiers de package ne doivent exister en dehors des hiérarchies/opt,/var/opt et/etc/opt, à l'exception des fichiers de package qui doivent résider à des emplacements spécifiques dans l'arborescence du système de fichiers pour fonctionner correctement. Par exemple, les fichiers de verrouillage de périphérique dans/var/lock et les périphériques dans/dev. Les distributions peuvent installer des logiciels dans/opt, mais ne doivent ni modifier ni supprimer les logiciels installés par l'administrateur système local sans le consentement de l'administrateur système local.
L'utilisation de/opt pour les logiciels complémentaires est une pratique bien établie dans la communauté UNIX. L'interface binaire d'application System V [AT & T 1990], basée sur la définition d'interface System V (troisième édition) et le standard de compatibilité binaire Intel v. 2 (iBCS2) fournit une structure/opt très similaire à celle définie ici.
En règle générale, toutes les données requises pour prendre en charge un package sur un système doivent figurer dans/opt/'package', y compris les fichiers destinés à être copiés dans/etc/opt/'package' et/var/opt/'package', ainsi que répertoires réservés dans/opt. Les restrictions mineures sur les distributions utilisant/opt sont nécessaires car des conflits sont possibles entre un logiciel installé sur une distribution et un logiciel installé localement, en particulier dans le cas de chemins d'accès fixes trouvés dans certains logiciels binaires.
La structure des répertoires situés sous/opt/'fournisseur' est laissée à l’emballeur du logiciel. Il est toutefois recommandé d’installer les paquetages dans/opt/'fournisseur'/'paquet' et de suivre une structure similaire à celle décrite dans les instructions./opt/package. Une raison valable pour s'écarter de cette structure est pour les packages de support qui peuvent avoir des fichiers installés dans/opt/'fournisseur'/lib ou/opt/'fournisseur'/bin.
/opt
est utilisé pour des applications externes (parfois propriétaires) qui ne sont pas considérées comme faisant partie de la distribution Linux. Ces applications peuvent avoir des chemins codés en dur et ne fonctionneront donc correctement que si elles sont installées sur /opt
- mais s'il n'y a pas de chemins codés en dur, vous pouvez les installer dans n'importe quel chemin. Un programme installé dans /opt
est censé être autonome.
La raison principale d'utiliser /opt
est de fournir un chemin d'accès standard commun où des logiciels externes peuvent être installés sans interférer avec le reste du système installé. /opt
n'apparaît pas dans les chemins du compilateur ou de l'éditeur de liens standard (gcc -print-search-dirs
ou /etc/ld.so.conf
etc.), de sorte que les en-têtes et les bibliothèques installées sont quelque peu isolés du système principal et ne doivent pas interférer avec les programmes déjà installés.
L'utilisation de /opt
est spécifiée par le norme de hiérarchie du système de fichiers : / opt , qui indique que /opt
est originaire de Unix.
/opt: Progiciels d'application complémentaires
Objet
/ opt est réservé à l'installation de progiciels d'application complémentaires.
Un package à installer dans/opt doit localiser ses fichiers statiques dans une arborescence de répertoires distinct/opt/<package> ou/opt/<fournisseur>, où <package> est un nom qui décrit le package logiciel et <fournisseur> est le nom enregistré LANANA du fournisseur.
Conditions requises
Les répertoires/opt/bin,/opt/doc,/opt/include,/opt/info,/opt/lib et/opt/man sont réservés à l’utilisation des administrateurs système locaux. Les paquetages peuvent fournir des fichiers "front-end" destinés à être placés (par la liaison ou la copie) dans ces répertoires réservés par l'administrateur système local, mais doivent fonctionner normalement en l'absence de ces répertoires réservés.
Les programmes devant être appelés par les utilisateurs doivent être situés dans le répertoire/opt/<package>/bin ou dans la hiérarchie/opt/<fournisseur>. Si le package inclut des pages de manuel UNIX, elles doivent être situées dans/opt/<package>/share/man ou sous la hiérarchie/opt/<fournisseur>, et la même sous-structure que/usr/share/man doit être utilisée.
Les fichiers de package variables (modification du fonctionnement normal) doivent être installés dans/var/opt. Voir la section sur/var/opt pour plus d'informations.
Les fichiers de configuration spécifiques à l'hôte doivent être installés dans/etc/opt. Voir la section sur/etc pour plus d'informations.
Aucun autre fichier de package ne peut exister en dehors des hiérarchies/opt,/var/opt et/etc/opt, à l'exception des fichiers de package qui doivent résider à des emplacements spécifiques dans l'arborescence du système de fichiers pour fonctionner correctement. Par exemple, les fichiers de verrouillage de périphérique doivent être placés dans/var/lock et les périphériques dans/dev.
Les distributions peuvent installer des logiciels dans/opt, mais ne doivent ni modifier ni supprimer les logiciels installés par l'administrateur système local sans le consentement de l'administrateur système local.
Justification
L'utilisation de/opt pour les logiciels complémentaires est une pratique bien établie dans la communauté UNIX. Interface binaire d'application System V [AT & T 1990], basé sur la définition d'interface System V (troisième édition), fournit une structure/opt très similaire à celle définie ici.
La norme binaire de compatibilité Intel v. 2 (iBCS2) fournit également une structure similaire pour/opt.
En règle générale, toutes les données nécessaires à la prise en charge d’un package sur un système doivent figurer dans/opt/<package>, y compris les fichiers destinés à être copiés dans/etc/opt/<package> et/var/opt/<package>, ainsi que répertoires réservés dans/opt.
Les restrictions mineures sur les distributions utilisant/opt sont nécessaires car des conflits sont possibles entre les logiciels installés sur la distribution et les logiciels installés localement, en particulier dans le cas de noms de chemins fixes trouvés dans certains logiciels binaires.
La structure des répertoires situés sous/opt/<fournisseur> est laissée à l’emballeur du logiciel. Il est toutefois recommandé d’installer les paquetages dans/opt/<fournisseur>/<paquet> et de suivre une structure similaire à celle décrite dans les instructions./opt/package. Une raison valable pour s'écarter de cette structure est pour les packages de support qui peuvent avoir des fichiers installés dans/opt/<fournisseur>/lib ou/opt/<fournisseur>/bin.
/opt
n'a rien de sacré, il est simplement courant de mettre un logiciel précompilé qui devrait être accessible à tous les utilisateurs d'un système de ce répertoire. Si vous êtes le seul utilisateur du système, il n’ya rien de mal à l’extraire dans votre répertoire personnel. Et même si plusieurs utilisateurs du système ont besoin d'accéder à ce logiciel mais que vous souhaitez utiliser l'espace de votre partition /home
, il n'y a rien de mal à créer un répertoire accessible publiquement au /home/softwarename
et à extraire votre logiciel (le seul inconvénient est que Si vous avez un utilisateur nommé softwarename
name__, vous ne pourrez pas l’utiliser dans son répertoire personnel).
Les réponses détaillées sont très bonnes, mais (mis à part les logiciels pouvant contenir des chemins absolus codés en dur - ce n’est pas la meilleure pratique de programmation), l’essentiel est que les logiciels non-système/non-distribution ne soient pas stockés avec les fichiers système réguliers.
Mettre des éléments dans /opt
ou /usr/local
permet de garder les choses propres et sécurisées.
En particulier, votre chemin de recherche de logiciel ($ PATH) détermine l’ordre dans lequel les emplacements sont recherchés lors de la recherche d’un programme d’un nom particulier à exécuter. Généralement, des endroits tels que /opt
et /usr/local
se trouvent vers la fin de la liste.
Si vous installez un paquet contenant un programme nommé cp
, l'ordre de recherche par défaut fourni avec votre distribution trouvera le nom normal, car le répertoire dans lequel il est stocké est recherché avant des endroits tels que /opt
.
Si cela ne fonctionne pas ainsi, qui sait ce qui pourrait casser ou ouvrir une faille de sécurité si un programme nommé cp
qui fait autre chose est exécuté lorsque vous pensez que vous essayez simplement de copier certains fichiers.
Si quelque chose comme cela se produit, cela peut prendre un certain temps avant que quelqu'un pense à exécuter une commande telle que type cp
(qui pourrait même ne pas suffire à montrer que quelque chose ne va pas) pour découvrir que ce qui est en cours d'exécution n'est pas ce que vous croyez être . Jusque-là, vous êtes coincé à "Tout est exactement comme cela devrait être mis à part le petit détail qui ne fonctionne pas!"
Cela permet d'éviter les imprévus et d'éviter les situations dans lesquelles les mises à jour du système pourraient supprimer ou remplacer tout ou partie de vos packages installés "personnalisés". Ou bien, au contraire, certains programmes "personnalisés" peuvent écraser des programmes fournis par le système sur lesquels de nombreux autres programmes ou scripts peuvent compter.
D'un point de vue administratif, mélanger les programmes/fichiers "système" et "optionnels" aux mêmes emplacements place votre système dans un état "non défini" ou au moins "ambigu".
Si vous avez un problème avec votre système ou un programme et que vous avez besoin d'aide, l'une des premières questions qui vous est posée est "Qu'avez-vous changé?" et "Pouvons-nous désactiver temporairement certains de ces changements afin que nous sachions que nous examinons le vrai problème et pas seulement un symptôme d'autre chose?"
Avec des emplacements distincts, ces modifications peuvent être rapidement identifiées et tout ce que vous avez à faire (au moins pour les programmes eux-mêmes) est de supprimer temporairement leurs répertoires du chemin.