GNU/Linux >> Tutoriels Linux >  >> Linux

La différence entre /opt et /usr/local ?

Selon la norme de hiérarchie du système de fichiers, /opt est pour "l'installation de progiciels d'application complémentaires". /usr/local est "à utiliser par l'administrateur système lors de l'installation locale du logiciel". Ces cas d'utilisation semblent assez similaires. Les logiciels non inclus avec les distributions sont généralement configurés par défaut pour être installés dans /usr/local ou /opt sans rime ni raison particulière quant à ce qu'ils ont choisi.

Y a-t-il une différence qui me manque, ou est-ce que les deux font la même chose, mais existent pour des raisons historiques ?

Réponse acceptée :

Alors que les deux sont conçus pour contenir des fichiers n'appartenant pas au système d'exploitation, /opt et /usr/local ne sont pas destinés à contenir le même ensemble de fichiers.

/usr/local est un endroit pour installer des fichiers construits par l'administrateur, généralement en utilisant le make commande (par exemple, ./configure; make; make install ). L'idée est d'éviter les conflits avec les fichiers qui font partie du système d'exploitation, qui seraient soit écrasés, soit écraseraient les fichiers locaux autrement (par exemple, /usr/bin/foo fait partie du système d'exploitation tandis que /usr/local/bin/foo est une alternative locale).

Tous les fichiers sous /usr sont partageables entre les instances du système d'exploitation, bien que cela soit rarement fait avec Linux. C'est une partie où le FHS est légèrement contradictoire, comme /usr est défini pour être en lecture seule, mais /usr/local/bin doit être en lecture-écriture pour que l'installation locale du logiciel réussisse. La norme de système de fichiers SVR4, qui était la principale source d'inspiration du FHS, recommande d'éviter /usr/local et utilisez /opt/local à la place pour surmonter ce problème.

/usr/local est un héritage du BSD original. A cette époque, le code source de /usr/bin Les commandes du système d'exploitation étaient dans /usr/src/bin et /usr/src/usr.bin , tandis que la source des commandes développées localement était dans /usr/local/src , et leurs binaires dans /usr/local/bin . Il n'y avait pas de notion de packaging (hors tarballs).

En revanche, /opt est un répertoire pour installer des packages dégroupés (c'est-à-dire des packages ne faisant pas partie de la distribution du système d'exploitation, mais fournis par une source indépendante), chacun dans son propre sous-répertoire. Ce sont des packages complets déjà construits fournis par un distributeur de logiciels tiers indépendant. Contrairement à /usr/local trucs, ces packages suivent les conventions de répertoire (ou du moins ils le devraient). Par exemple, someapp serait installé dans /opt/someapp , l'une de ses commandes étant /opt/someapp/bin/foo , son fichier de configuration serait dans /etc/opt/someapp/foo.conf , et ses fichiers journaux dans /var/opt/someapp/logs/foo.access .


Linux
  1. Comment Linux gère-t-il plusieurs séparateurs de chemins consécutifs (/home////nom d'utilisateur///fichier) ?

  2. Quelle est la différence entre /sbin/nologin et /bin/false ?

  3. Linux – Fusionner /usr/bin et /usr/sbin dans /bin (gnu/linux) ?

  4. Installer les binaires dans /bin, /sbin, /usr/bin et /usr/sbin, interactions avec --prefix et DESTDIR

  5. Quelle est la différence entre #!/usr/bin/env bash et #!/usr/bin/bash ?

La différence entre '$ . Foo' Et '$ ./foo' ? ?

Centos - Quelle est la différence entre /usr/lib/systemd/system et /etc/systemd/system ?

Différence entre /var/log/messages, /var/log/syslog et /var/log/kern.log ?

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

Linux :Différence entre /dev/console , /dev/tty et /dev/tty0

Les sites Web doivent-ils vivre dans /var/ ou /usr/ selon l'utilisation recommandée ?