GNU/Linux >> Tutoriales Linux >  >> Linux

¿La diferencia entre /opt y /usr/local?

De acuerdo con el estándar de jerarquía del sistema de archivos, /opt es para “la instalación de paquetes de software de aplicaciones complementarias”. /usr/local es "para uso del administrador del sistema al instalar el software localmente". Estos casos de uso parecen bastante similares. El software que no se incluye con las distribuciones generalmente está configurado de forma predeterminada para instalarse en /usr/local o /opt sin rima o razón particular en cuanto a lo que eligieron.

¿Hay alguna diferencia que me falta, o ambos hacen lo mismo, pero existen por razones históricas?

Respuesta aceptada:

Si bien ambos están diseñados para contener archivos que no pertenecen al sistema operativo, /opt y /usr/local no están destinados a contener el mismo conjunto de archivos.

/usr/local es un lugar para instalar archivos creados por el administrador, normalmente mediante el make comando (por ejemplo, ./configure; make; make install ). La idea es evitar conflictos con archivos que forman parte del sistema operativo, que de lo contrario se sobrescribirían o sobrescribirían los locales (por ejemplo, /usr/bin/foo es parte del sistema operativo mientras /usr/local/bin/foo es una alternativa local).

Todos los archivos bajo /usr se pueden compartir entre instancias de SO, aunque esto rara vez se hace con Linux. Esta es una parte donde el FHS es ligeramente contradictorio, como /usr está definido para ser de solo lectura, pero /usr/local/bin debe ser de lectura y escritura para que la instalación local del software tenga éxito. El estándar del sistema de archivos SVR4, que fue la principal fuente de inspiración de FHS, recomienda evitar /usr/local y usa /opt/local en cambio, para superar este problema.

/usr/local es un legado del BSD original. En ese momento, el código fuente de /usr/bin Los comandos del SO estaban en /usr/src/bin y /usr/src/usr.bin , mientras que la fuente de los comandos desarrollados localmente estaba en /usr/local/src y sus binarios en /usr/local/bin . No había noción de embalaje (fuera de tarballs).

Por otro lado, /opt es un directorio para instalar paquetes desagregados (es decir, paquetes que no forman parte de la distribución del sistema operativo, sino que son proporcionados por una fuente independiente), cada uno en su propio subdirectorio. Ya están construidos paquetes completos proporcionados por un distribuidor de software de terceros independiente. A diferencia de /usr/local cosas, estos paquetes siguen las convenciones de directorio (o al menos deberían). Por ejemplo, someapp se instalaría en /opt/someapp , siendo uno de sus comandos /opt/someapp/bin/foo , su archivo de configuración estaría en /etc/opt/someapp/foo.conf y sus archivos de registro en /var/opt/someapp/logs/foo.access .


Linux
  1. ¿Cómo maneja Linux múltiples separadores de rutas consecutivas (/home////username///file)?

  2. Bash =~ Regex y Https://regex101.com/?

  3. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

  4. Linux:diferencia entre /dev/console, /dev/tty y /dev/tty0

  5. ¿Deberían vivir los sitios web en /var/ o /usr/ según el uso recomendado?

Linux:¿Diferencia entre /dev/console, /dev/tty y /dev/tty0?

/usr/bin Vs /usr/local/bin ¿En Linux?

La diferencia entre '$ . Foo' y '$ ./foo'??

¿Diferencia entre /var/log/messages, /var/log/syslog y /var/log/kern.log?

Comprender los archivos /proc/mounts, /etc/mtab y /proc/partitions

Diferencia entre /etc/hosts y /etc/resolv.conf