it-swarm-eu.dev

Jaký je rozdíl mezi / opt a / usr / local?

Podle standard souborového systému hierarchie , /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 lokální instalaci softwaru“. Tyto případy použití se zdají docela podobné. Software, který není součástí distribuce, je ve výchozím nastavení nakonfigurován tak, aby se instaloval buď v /usr/local nebo /opt bez zvláštního rýmu nebo důvodu, pro který se rozhodli.

Existuje nějaký rozdíl, který mi chybí, nebo dělají to samé, ale existují z historických důvodů?

440
Patches

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

/usr/local Je místo k instalaci souborů vytvořených správcem, obvykle pomocí příkazu make (např. ./configure; make; make install). Cílem je zabránit střetům se soubory, které jsou součástí operačního systému a které by jinak byly přepsány nebo 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í alternativa).

Všechny soubory pod /usr Lze mezi instancemi OS sdílet, i když je to zřídka v systému Linux. Toto je část, kde FHS je mírně protichůdný, protože /usr Je definován jako read-only, ale /usr/local/bin Musí být read-write, aby lokální instalace softwaru uspěla. Standard systému souborů SVR4, který byl hlavním zdrojem inspirace FHS, doporučuje vyhnout se /usr/local A místo toho použít /opt/local K překonání tohoto problému.

/usr/local Je odkaz z původního BSD. V té době byl zdrojový kód příkazů OS /usr/bin 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. Nebyl tu představu o obalu (mimo tarbaly).

Na druhé straně je /opt Adresář pro instalaci nevázaných 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ý z nich ve svém vlastním podadresáři. Jsou již postaveny celé balíčky poskytované nezávislým distributorem softwaru třetích stran. Na rozdíl od věcí /usr/local Se tyto balíčky řídí konvencemi adresářů (nebo by alespoň měly). Například someapp bude nainstalován v /opt/someapp, Přičemž jedním z jeho příkazů bude /opt/someapp/bin/foo, Jeho konfigurační soubor bude v /etc/opt/someapp/foo.conf A jeho protokolové soubory v /var/opt/someapp/logs/foo.access.

393
jlliagre

Základní rozdíl je v tom, že /usr/local je pro software, který není spravován systémovým baličem, ale stále se řídí standardními pravidly unixového nasazení.

Proto máte /usr/local/bin, /usr/local/sbin/usr/local/include atd...

/opt na druhé straně je určen pro software, který toto nedodržuje a je nasazen monolitickým způsobem. To obvykle zahrnuje komerční a/nebo multiplatformový software, který je zabalen ve stylu „Windows“.

89
Šimon Tóth

Ve skutečnosti jsou velmi podobné a použití jednoho nebo druhého je spíše otázkou názoru. Linuxový deník měl tuto bodovou/kontrapunktovou diskuzi o tomto přesném tématu zde .

18
philfr

Pro mě osobně je to to, co Bill řekl v odkazu @ philfr:

Na vývojovém systému nebo v karanténě má adresář/opt, ve kterém můžete věci pouze přehazovat a zjistit, zda fungují, dává velký smysl. Vím, že nebudu procházet snahou zabalit věci sám, abych je vyzkoušel. Pokud aplikace nefunguje, můžete jednoduše rm adresář/opt/mytestapp a tato aplikace je historie. Balení může mít smysl, když provádíte velké nasazení (v některých případech, kdy dělám aplikace pro balíčky), ale mnohokrát je dobré hodit věci/opt.

Bohužel, většina make install skripty vkládají soubory do /usr/local místo toho, aby tam jen dělal symbolický odkaz: - /

13
pepoluan

Za prvé si nemyslím, že existuje přísná odpověď; různí administrátoři budou mít různé názory, podle jejich pozadí. Historicky /usr/local přišel první; byla to konvence v Berkley, IIRC. V jednom okamžiku vývoje systému V, pokud se nemýlím (to je už dávno, a neudělal jsem si poznámky), došlo k rozhodnutí nebo touze být schopni připojit /usr pouze pro čtení, což znamenalo, že do něj nemohli přidat nový software; to může být důvod, proč /opt byl vynalezen. Jak se to stane, existovalo tolik existujícího softwaru, který napsal /usr tato myšlenka se nikdy nedostala ze země.

Moje osobní preference jsou /opt, se samostatným podadresářem pro každý produkt; Díky tomu je odebrání produktu jednoduchým případem rm -fr. Ale pokud je veškerý váš software nainstalován pomocí dobrého správce balíčků, nezáleží na tom, a pokud nainstalovaný software striktně nedodržuje tyto konvence a zapisuje konfigurace a podobně někde pod /usr, na tom nezáleží, i když z opačných důvodů.

12
James Kanze

Mám trochu jiný názor na tuto otázku.
Zatímco vše v jlliagre 's odpověď je správné, praktická aplikace pro mě při nasazení softwaru v klastru klesá na výchozí proměnné prostředí a výchozí opětovné použití libs.

Jednoduše řečeno - /usr/local a všechny jeho podřízené dirky jsou ve vhodných variantách env, jako jsou PATH a MANPATH a /usr/local/lib{,64} jsou v ldconfig's (/etc/ld.so.conf.d/).

/opt/ OTOH není - což je výhodné, když vyžaduje souběžná existence více verzí nebo konfliktních balíčků v systému, ale vyžaduje určitý druh správy prostředí (např. environment-modules nebo softwarové sbírky ) a nevýhodné v tom, že by potenciálně „ztratilo“ úložný prostor duplikováním sdílených knihoven, jako každá instalace v /opt může být zcela samostatný.

Pro sdílenou povahu /usr/local pracovat, předpokládá se, že např. binární soubory jsou nainstalovány přímo do /usr/local/bin (a manuálové stránky k příslušným /usr/local/share/man/...) spíše než /usr/local/app/{bin,share/man,...} atd.

10
Dani_l

Stručně řečeno, moje střevní odpověď ...

Použil jsem svůj spravedlivý podíl FreeBSD od 2.2.6 a Red Hat Linux od verze 9 ...

/usr/local == Old School Conventions
/opt       == New School Conventions

Uspořádání věcí v souborových systémech UNIX/Linux má více společného s konvencemi a tradicí, než s absolutní logikou.

Jinak většinou souhlasím se všemi ostatními. :-)

Vždy existuje určitá výjimka z pravidla. Na konci dne se rozhodnete, co je pro vaše nastavení nejlepší (kdy je to možné).

0
Anthony Rutledge