GNU/Linux >> Znalost Linux >  >> Linux

Rozdíl mezi /opt a /usr/local?

Podle standardu hierarchie souborového systému /opt je pro „instalaci doplňkových aplikačních softwarových balíčků“. /usr/local je „pro použití správcem systému při místní instalaci softwaru“. Tyto případy použití se zdají být dost podobné. Software, který není součástí distribucí, je obvykle nakonfigurován tak, aby se instaloval buď do /usr/local nebo /opt bez zvláštního rýmu nebo důvodu, který by si vybrali.

Je v tom nějaký rozdíl, který mi uniká, nebo oba dělají totéž, ale existují z historických důvodů?

Přijatá odpověď:

Zatímco oba jsou navrženy tak, aby obsahovaly soubory, které nepatří operačnímu systému, /opt a /usr/local nejsou určeny k tomu, aby obsahovaly stejnou sadu souborů.

/usr/local je místo pro instalaci souborů vytvořených správcem, obvykle pomocí make příkaz (např. ./configure; make; make install ). Cílem je vyhnout se kolizím se soubory, které jsou součástí operačního systému, které by byly buď přepsány, nebo jinak přepsány místní (např. /usr/bin/foo je součástí operačního systému, zatímco /usr/local/bin/foo je místní alternativou).

Všechny soubory pod /usr jsou sdílené mezi instancemi OS, i když se to v Linuxu dělá jen zřídka. Toto je část, kde je FHS mírně protichůdný, jako /usr je definováno jako pouze pro čtení, ale /usr/local/bin Aby byla místní instalace softwaru úspěšná, musí být pro čtení i zápis. Standard souborového systému SVR4, který byl hlavním zdrojem inspirace FHS, doporučuje vyhnout se /usr/local a použijte /opt/local místo toho, abyste tento problém překonali.

/usr/local je dědictvím z původního BSD. V té době byl zdrojový kód /usr/bin Příkazy OS byly v /usr/src/bin a /usr/src/usr.bin , zatímco zdroj lokálně vyvinutých příkazů byl v /usr/local/src a jejich binární soubory v /usr/local/bin . Neexistovala žádná představa o balení (mimo tarbally).

Na druhou stranu /opt je adresář pro instalaci unbundled balíčků (tj. balíčků, které nejsou součástí distribuce operačního systému, ale jsou poskytovány nezávislým zdrojem), každý do svého vlastního podadresáře. Jsou to již vytvořené celé balíčky poskytované nezávislým distributorem softwaru třetí strany. Na rozdíl od /usr/local tyto balíčky se řídí konvencemi adresářů (nebo by alespoň měly). Například someapp bude nainstalován v /opt/someapp , přičemž jeden z jeho příkazů je /opt/someapp/bin/foo , jeho konfigurační soubor by byl v /etc/opt/someapp/foo.conf a jeho soubory protokolu v /var/opt/someapp/logs/foo.access .


Linux
  1. Nainstalujte binární soubory do /bin, /sbin, /usr/bin a /usr/sbin, interakce s --prefix a DESTDIR

  2. Jaký je rozdíl mezi #!/usr/bin/env bash a #!/usr/bin/bash?

  3. Rozdíl mezi /bin a /usr/bin

  1. Jak Linux zpracovává více po sobě jdoucích oddělovačů cest (/home////username///soubor)?

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

  3. Rozdíl mezi /etc/hosts a /etc/resolv.conf

  1. Rozdíl mezi „$ . Foo“ A „$ ./foo“??

  2. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  3. Kdy mám použít /dev/shm/ a kdy /tmp/?