Proč je v Linuxu tolik míst pro vložení binárního souboru? Existuje alespoň těchto pět:
-
/bin/
-
/sbin/
-
/usr/bin/
-
/usr/local/bin/
-
/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
odpověď
-
(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. -
/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
. -
/usr/bin
je pro normální uživatelské programy spravované distribucí. -
Existuje
/usr/sbin
se stejným vztahem k/usr/bin
as/sbin
musí/bin
. -
/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. -
/usr/local/sbin
, jak v tuto chvíli asi tušíte, je/usr/local/bin
jako/usr/sbin
až/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é aecho $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Á!
/usr/sbin/
.~/bin/
pro osobní věci./bin
bylo sloučeno s/usr/bin
a/sbin
bylo sloučeno s/usr/sbin
– viz Případ sloučení / usr ./usr/local/bin
?