GNU/Linux >> Linux Esercitazione >  >> Linux

La differenza tra /opt e /usr/local?

Secondo lo standard della gerarchia del filesystem, /opt è per "l'installazione di pacchetti software applicativi aggiuntivi". /usr/local è "per l'uso da parte dell'amministratore di sistema durante l'installazione del software in locale". Questi casi d'uso sembrano abbastanza simili. Il software non incluso nelle distribuzioni di solito è configurato per impostazione predefinita per l'installazione in /usr/local o /opt senza una particolare rima o motivo per cui hanno scelto.

C'è qualche differenza che mi sfugge, o fanno entrambi la stessa cosa, ma esistono per ragioni storiche?

Risposta accettata:

Sebbene entrambi siano progettati per contenere file non appartenenti al sistema operativo, /opt e /usr/local non sono destinati a contenere lo stesso insieme di file.

/usr/local è un luogo in cui installare i file creati dall'amministratore, in genere utilizzando il make comando (ad es. ./configure; make; make install ). L'idea è di evitare conflitti con i file che fanno parte del sistema operativo, che altrimenti verrebbero sovrascritti o sovrascritti da quelli locali (es. /usr/bin/foo fa parte del sistema operativo mentre /usr/local/bin/foo è un'alternativa locale).

Tutti i file in /usr sono condivisibili tra istanze del sistema operativo, sebbene ciò avvenga raramente con Linux. Questa è una parte in cui l'FHS è leggermente contraddittorio, come /usr è definito per essere di sola lettura, ma /usr/local/bin deve essere in lettura e scrittura affinché l'installazione locale del software abbia esito positivo. Lo standard del file system SVR4, che è stata la principale fonte di ispirazione di FHS, consiglia di evitare /usr/local e usa /opt/local invece di superare questo problema.

/usr/local è un'eredità del BSD originale. A quel tempo, il codice sorgente di /usr/bin I comandi del sistema operativo erano in /usr/src/bin e /usr/src/usr.bin , mentre l'origine dei comandi sviluppati localmente era in /usr/local/src e i loro binari in /usr/local/bin . Non c'era la nozione di packaging (al di fuori dei tarball).

D'altra parte, /opt è una directory per l'installazione di pacchetti disaggregati (ovvero pacchetti non facenti parte della distribuzione del Sistema Operativo, ma forniti da una fonte indipendente), ognuno nella propria sottodirectory. Sono già costruiti pacchetti interi forniti da un distributore di software di terze parti indipendente. A differenza di /usr/local roba, questi pacchetti seguono le convenzioni di directory (o almeno dovrebbero). Ad esempio, someapp verrebbe installato in /opt/someapp , con uno dei suoi comandi /opt/someapp/bin/foo , il suo file di configurazione sarebbe in /etc/opt/someapp/foo.conf e i suoi file di registro in /var/opt/someapp/logs/foo.access .


Linux
  1. Qual è la differenza tra #!/usr/bin/env bash e #!/usr/bin/bash?

  2. Quando dovrei usare /dev/shm/ e quando dovrei usare /tmp/?

  3. Differenza tra /bin e /usr/bin

  4. Qual è la differenza tra /tmp e /run?

  5. I siti web dovrebbero vivere in /var/ o /usr/ in base all'utilizzo consigliato?

/usr/bin Vs /usr/local/bin Su Linux?

La differenza tra '$ . Foo' E '$ ./foo'??

Centos:qual è la differenza tra /usr/lib/systemd/system e /etc/systemd/system?

Differenza tra /var/log/messages, /var/log/syslog e /var/log/kern.log?

Comprendere i file /proc/mounts, /etc/mtab e /proc/partitions

Differenza tra /etc/hosts e /etc/resolv.conf