/ usr / bin vs / usr / local / bin v systému Linux

Proč je v Linuxu tolik míst pro vložení binárního souboru? Existuje alespoň těchto pět:

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /usr/local/sbin/

A v mé kancelářské krabici nemám oprávnění k zápisu k některým z nich.

Jaký typ binárního souboru jde do které z těchto bin s?

Komentáře

  • Zapomněli jste /usr/sbin/ .
  • A ~/bin/ pro osobní věci.
  • V dnešní době je méně míst, protože /bin bylo sloučeno s /usr/bin a /sbin bylo sloučeno s /usr/sbin – viz Případ sloučení / usr .
  • @Calmarius, co? neměli byste ‚ používat /usr/local/bin?
  • @Pacerier ~ / bin je pouze pro aktuálního uživatele. Například na víceuživatelských serverech Linux, kde nejste správcem, je ‚ jediný způsob “ instalace “ věci pro sebe.

odpověď

  1. (a /sbin) byly určeny pro programy, které musely být na malém / před větším Byly připojeny oddíly /usr atd. V dnešní době slouží většinou jako standardní umístění klíčových programů, jako je /bin/sh, ačkoli původní záměr může být stále relevantní např. instalace na malých integrovaných zařízeních.

  2. /sbin, na rozdíl od /bin, je pro programy pro správu systému (běžní uživatelé jej běžně nepoužívají) potřebné před připojením /usr.

  3. /usr/bin je pro normální uživatelské programy spravované distribucí.

  4. Existuje /usr/sbin se stejným vztahem k /usr/bin as /sbin musí /bin.

  5. /usr/local/bin je pro běžné uživatelské programy nejsou spravovány správcem distribučního balíčku, např. lokálně kompilované balíčky. Neměli byste je instalovat do /usr/bin, protože budoucí upgrady distribuce je mohou bez varování upravovat nebo mazat.

  6. /usr/local/sbin, jak v tuto chvíli asi tušíte, je /usr/local/bin jako /usr/sbin/usr/bin.

Kromě toho existuje také /opt, který je určen pro monolitické nedistribuční balíčky, i když než byly řádně integrovány různé distribuce, vložte tam Gnome a KDE. Obecně byste si jej měli rezervovat pro velké, špatně chované balíčky třetích stran, jako je Oracle.

Komentáře

  • Myslím, že tato odpověď skvěle objasňuje běžná sada konvencí, ale tento příspěvek od Roba Landleyho je opravdu skvělé čtení, pokud chcete nahlédnout do nesmyslů … lists.busybox.net/pipermail/busybox/2010 -December / 074114.html
  • refspecs.linuxfoundation.org/fhs.shtml pro kanonický aktuální odkaz. Odkaz od uživatele @kojiro je zastaralý a nemá ‚ novou specifikaci.
  • Kam vložit koš, který jsem stáhl z internetu? Z vašeho popisu to zní, jako by to mělo jít do / usr / local / bin nebo / usr / bin. Je / usr / bin něco, čeho bych se nikdy neměl ručně dotknout a nechat hrát pouze správce balíčků?
  • @DidierA. vložte jej do ~/bin a přidejte tento adresář do své PATH jako uživatel … Díky za poznámku, smazal jsem svůj vážně zastaralý komentář.
  • Našel jsem Odpověď na první část mé otázky zde: superuser.com/a/238993/425838 . Priorita je založena na pořadí v systémové PATH proměnné a echo $PATH pro mě ukazuje /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games , což znamená, že spustitelné soubory v /usr/local/bin mají přednost před těmi v /usr/bin, které mají přednost před těmi v /bin.

Odpověď

Doporučuji podívat se na manuálovou stránku hierarchie souborového systému:

man hier 

který je k dispozici také online, například: http://linux.die.net/man/7/hier . Relevantní části byly zkopírovány níže. V závislosti na vašem systému může říkat něco jiného.

Název

    hier – popis hierarchie souborového systému

Popis

    Typický systém Linux má mimo jiné následující adresáře:

    /bin

      Tento adresář obsahuje spustitelné programy, které jsou potřebné pro jednoho uživatele režim a aktivovat nebo opravit systém.

    /sbin

      Jako /bin, tento adresář obsahuje příkazy potřebné k zavedení systému, které však běžní uživatelé obvykle neprovádějí.

    /usr/bin

      Toto je primární adresář pro spustitelné programy. V tomto adresáři by měla být umístěna většina programů prováděných běžnými uživateli, které nejsou potřeba k zavedení systému nebo k opravě systému a které nejsou nainstalovány místně.

    /usr/local/bin

      Binární soubory pro místní programy.

    /usr/local/sbin

      Lokálně nainstalované programy pro správu systému.

    /usr/sbin

      Tento adresář obsahuje programové binární soubory pro správu systému, které nejsou nezbytné pro spouštěcí proces, pro připojení /usr nebo pro opravu systému .

Komentáře

  • To není ‚ neodpovídá na otázku uživatele ‚.
  • Manuální stránka obsahuje záznam pro každý z adresářů bin s vysvětlením, co jde do nich, což byla jedna z otázek.

Odpověď

Hierar souborového systému Chy Standard na Wikipedii mi pomohl odpovědět na stejnou otázku, když jsem ji měl, a navíc má velmi vysvětlující tabulku.

Výňatek z této stránky 1 :

/bin Essential command binaries that need to be available in single user mode; for all users, e.g., cat, ls, cp. /usr/bin Non-essential command binaries (not needed in single user mode); for all users. /usr/local Tertiary hierarchy for local data, specific to this host. Typically has further subdirectories, e.g., bin, lib, share /usr/sbin Non-essential system binaries, e.g., daemons for various network-services. /sbin Essential system binaries, e.g., fsck, init, route. 

1 Citováno dne 19. června 2019; permalink .

Odpověď

sbin adresáře obsahují programy, které jsou obecně pouze pro správu systému. Programy pro běžné uživatele by do nich nikdy neměly chodit.

Během spouštění je potřeba několik programů, které končí v /bin/ nebo /sbin/. Ty musí být k dispozici před připojením souborových systémů. Musí tam být věci jako mount a fsck, které jsou vyžadovány ke kontrole a připojení souborových systémů.

Nejvíce zabalené programy končí v /usr/bin/ a /usr/sbin/. Mohou být v jiném systému souborů než v kořenovém systému souborů. V některých případech mohou být na jednotce připojené k síti.

Místní programy a skripty patří do /usr/local/bin/ a /usr/local/sbin/ . To je identifikuje jako zjevně nestandardní a pravděpodobně dostupné pouze na místě.

Pro další vysvětlení zkuste spustit příkaz man hier, který by měl poskytnout popis doporučené hierarchie souborového systému pro vaši distribuci. Můžete si také přečíst o Hierarchii souborového systému na Wikipedii

Komentáře

  • +1 Opravdu stručné vysvětlení, pokud je top trochu moc.
  • “ Místní programy a skripty patří do adresáře / usr / local / bin / a / usr / local / sbin / “ – Myslíte tím místní programy jako v “ vůbec ne v OS, ale rozhodl jsem se nainstalovat a chcete je použít „?

Odpovědět

V 70. letech měl UNIX všechny oficiální spustitelné soubory v /bin a /usr/bin byl pod domovskými adresáři uživatelů (např. /usr/dmr), který byl k dispozici každému uživateli k ukládání vlastních binárních souborů, které by mohly být zajímavé i pro ostatní.

Výsledek tohoto otevřeného /usr/bin byl haraburdí neregistrovaného softwaru, a tak Stephen Bourne wro cron skript, který každou noc kontroloval nové binární soubory a odstranil všechny binární soubory, které neměly dokumentaci nebo které byly aktualizovány, aniž by byla aktualizována také jejich dokumentace.

Na konci 70. let /usr/bin bylo integrováno do základní distribuce OS a lidé začali používat /usr/local/bin pro účely předchozí otevřené /usr/bin .

Sysadmins po chvíli použili /usr/local/bin k ukládání nelokálního softwaru, který byl importován ze sítě (např. USENET) a protože společnosti UNIX nerad opakovaly stejnou chybu jako u /usr/bin, konala se kolem roku 1987 konference o hierarchii souborového systému, kde se všechny společnosti UNIX dohodly vzdát se /usr/local/bin a místo toho použít /opt/<vendor>/bin.

Linuxové distribuce bohužel toto rozhodnutí neřídily ….

Komentáře

  • I když je to velmi zajímavé, nic z toho dokonce se pokouší odpovědět na položenou otázku, která nešlo o /opt a ne o UNIX, ale o Linux. To je jako odpovědět na “ Proč mají auta 4 kola? “ s “ kola mají 2! Je smutné, že auta ‚ t. “ což ‚ nepomůže OP pochopit proč auta mají 4.
  • Pokud nemůžete dané vysvětlení použít jako vysvětlení pozadí Linuxu a skutečnosti, že Linux rád napodobuje UNIX, možná vám chybí potřebné pozadí.
  • Zajímavé, ale něco, z čeho mám zmatek a co je možná také jen historické. Stahování koše online a firemního koše dnes není ‚ příliš odlišné. Pokud Joe Blow vytvoří program a já si ho stáhnu, proč jej nevložit do / opt / JowBlow / bin místo / usr / local / bin. Je to záležitost důvěryhodného poskytovatele versus nedůvěryhodný? Zdá se mi, že mi to ‚ nedává smysl.
  • Přál bych si, abych znal tento ‚ přesný ‚ historie před několika lety. a) Zajímalo by mě, proč se AIX vyhnul / usr / local, používá / opt / IBM a / opt / ibm a bullfreeware používá / opt / freeware – a proč bych MĚL použít jinou cestu (nejen / opt / * sbin). Pokud jde o semi-relevanci s Linuxem – lepší GNU nástroje – výchozí –předpona v automatických nástrojích je / usr / local. Škoda automatických nástrojů (automake, autoconf atd. Se neřídí …. Ale všichni přežíváme a učíme se, kde distrub. || prodejci dávají své programy.
  • Mohli bychom mít další z těchto konferencí? Tentokrát KAŽDÝ POSLOUCHÁ!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *