Miért van olyan sok hely, ahová binárisat lehet tenni a Linuxban? Legalább ez az öt létezik:
-
/bin/
-
/sbin/
-
/usr/bin/
-
/usr/local/bin/
-
/usr/local/sbin/
És az irodai dobozomon ezekhez némelyikhez nincs írási engedélyem.
Milyen típusú bináris fájl kerül ezekbe bin
s?
Megjegyzések
Válasz
-
/bin
(és/sbin
) programokat olyan programoknak szánták, amelyeknek kisebb/
partíción kellett lenniük a nagyobb előtt/usr
stb. partíciókat csatlakoztattak. Manapság leginkább olyan kulcsprogramok szokásos helyeként szolgál, mint a/bin/sh
, bár az eredeti szándék még mindig releváns lehet pl. telepítések kis beágyazott eszközökön. -
/sbin
, az/bin
-től eltérően a/usr
csatlakoztatása előtt szükséges rendszerkezelő programokhoz (amelyeket a szokásos felhasználók általában nem használnak). -
/usr/bin
a terjesztés által felügyelt normál felhasználói programok számára készült. -
Van egy
/usr/sbin
, ugyanazzal a kapcsolattal a/usr/bin
mint/sbin
/bin
. -
/usr/local/bin
a terjesztési csomag kezelője által nem kezelt normál felhasználói programok számára készült, pl. helyben összeállított csomagok. Ne telepítse őket a/usr/bin
fájlba, mert a jövőbeni terjesztési frissítések figyelmeztetés nélkül módosíthatják vagy törölhetik őket. -
/usr/local/sbin
, amint valószínűleg kitalálhatja ezen a ponton,/usr/local/bin
/usr/sbin
néven/usr/bin
.
Ezenkívül létezik még /opt
is, amely monolitikus, nem terjesztési csomagokra vonatkozik, bár megfelelő integrálásuk előtt a különböző disztribúciók a Gnome-ot és a KDE-t tették oda. Általában fenntartania kell nagy, rosszul viselkedő harmadik felek csomagjaihoz, például az Oracle-hez.
Megjegyzések
- Úgy gondolom, hogy ez a válasz nagyszerű munkát végez a tisztázásban. közös konvenció, de Rob Landley ez a bejegyzése nagyon jó olvasmány, ha betekintést szeretne kapni a hülyeségekbe … lists.busybox.net/pipermail/busybox/2010 -December / 074114.html
- refspecs.linuxfoundation.org/fhs.shtml a kanonikus aktuális referenciához. A @kojiro linkje elavult, és nincs ‘ az új specifikáció.
- Hova tegyek az internetről letöltött kukát? A leírásból úgy tűnik, hogy a / usr / local / bin vagy a / usr / bin könyvtárba kellene mennie. A / usr / bin olyan dolog, amit soha nem szabad kézzel megérintenem, és csak a csomagkezelővel szabad játszani?
- @DidierA. tedd a
~/bin
mappába, és add hozzá ezt a könyvtárat a PATH-ba, mint felhasználó … Köszönöm a jegyzetet, töröltem komolyan elavult megjegyzésemet. - válasz a kérdésem első részére itt: superuser.com/a/238993/425838 . Az elsőbbség a
PATH
rendszer változó sorrendjén alapul, és azecho $PATH
számomra a/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
, ami azt jelenti, hogy a/usr/local/bin
fájlban lévő futtatható fájlok elsőbbséget élveznek a/usr/bin
fájlban találhatóakkal szemben, amelyek elsőbbséget élveznek a .
Válasz
Javaslom, hogy vessen egy pillantást a fájlrendszer-hierarchia man oldalára:
man hier
amely online is elérhető, például: http://linux.die.net/man/7/hier . A vonatkozó részeket alább másoltuk. Rendszertől függően mást mondhat.
Név
hier – a fájlrendszer-hierarchia leírása
Leírás
Egy tipikus Linux rendszer egyebek mellett a következő könyvtárakat tartalmazza:
/bin
Ez a könyvtár futtatható programokat tartalmaz, amelyek egyetlen felhasználó számára szükségesek módot és a rendszer felhozását vagy javítását.
/sbin
Mint
/bin
, ez a könyvtár rendelkezik a rendszer indításához szükséges parancsokkal, amelyeket azonban általában nem a normál felhasználók hajtanak végre.
/usr/bin
Ez a futtatható programok elsődleges könyvtárja. A normál felhasználók által végrehajtott legtöbb olyan program, amelyre nincs szükség indításhoz vagy a rendszer javításához, és amelyeket nem helyben telepítettek, ebbe a könyvtárba kerül.
/usr/local/bin
A webhely helyi programjainak bináris fájljai.
/usr/local/sbin
Helyileg telepített programok a rendszeradminisztrációhoz.
/usr/sbin
Ez a könyvtár a rendszeradminisztrációhoz szükséges program bináris fájlokat tartalmazza, amelyek nem elengedhetetlenek a rendszerindítási folyamathoz, a
/usr
csatlakoztatásához vagy a rendszer javításához .
Megjegyzések
- Ez nem ‘ t ne válaszoljon a felhasználó ‘ kérdésére.
- A man oldal tartalmaz egy bejegyzést az egyes kukák könyvtáraihoz, elmagyarázva, hogy mi belemegy, ami az egyik kérdés volt.
Válasz
A fájlrendszer Hierar chy Standard bejegyzés a Wikipédiában segített nekem megválaszolni ugyanezt a kérdést, amikor megvolt, ráadásul nagyon magyarázó táblázattal rendelkezik.
Kivonat az oldalról 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 Letöltve: 2019. június 19-én; állandó link .
Válasz
A A sbin
könyvtárak olyan programokat tartalmaznak, amelyek általában csak rendszergazdai feladatok. A rendszeres felhasználóknak szánt programok soha ne menjenek bele.
Néhány programra van szükség az indítás során, és végül /bin/
vagy /sbin/
. Ezeknek a fájlrendszerek csatlakoztatása előtt rendelkezésre kell állniuk. A fájlrendszerek ellenőrzéséhez és csatlakoztatásához szükséges mount
és fsck
dolgoknak ott kell lenniük.
Legtöbb csomagolású a programok /usr/bin/
és /usr/sbin/
sorba kerülnek. Ezek lehetnek a gyökér fájlrendszertől eltérő fájlrendszeren. Bizonyos esetekben előfordulhat, hogy egy hálózati meghajtón vannak.
A helyi programok és szkriptek a /usr/local/bin/
és a /usr/local/sbin/
. Ez egyértelműen nem szabványosként azonosítja őket, és valószínűleg csak a helyszínen érhető el.
További magyarázatért próbálkozzon a man hier
parancs futtatásával, amelynek le kell írnia a terjesztéshez ajánlott fájlrendszer-hierarchiát. Érdemes elolvasnia a fájlrendszer-hierarchiát a Wikipédián is.
Megjegyzések
- +1 Nagyon tömör magyarázat, ha a teteje kissé túl sok.
- ” A helyi programok és szkriptek a / usr / local / bin / és / könyvtárakba tartoznak. usr / local / sbin / ” – Úgy érted a helyi programokat, mint a ” -ben, de az operációs rendszer egyáltalán nem része, de úgy döntöttem, hogy telepítem őket és használni akarja őket “?
Válasz
Az 1970-es években a UNIX összes hivatalos futtatható fájlja a /bin
fájlban volt, és a /usr/bin
egy hely volt a felhasználók otthoni könyvtárai alatt (pl. /usr/dmr
), amely bármely felhasználó számára elérhető volt saját bináris fájlok tárolására, amelyek mások számára is érdekesek lehetnek.
Ennek a nyitott /usr/bin
nem dokumentált szoftverek ócska udvara volt, így Stephen Bourne wro egy cron szkript, amely minden éjjel ellenőrizte az új bináris fájlokat, és eltávolított minden olyan bináris fájlt, amely nem rendelkezett dokumentációval, vagy amelyeket frissítettek a dokumentációjuk frissítése nélkül.
Az 1970-es évek végén integrálódott az operációs rendszer alap disztribúciójába, és az emberek elkezdték használni a /usr/local/bin
t az előző nyitott /usr/bin
.
Egy idő után a sysadminok a /usr/local/bin
felhasználásával tárolták a hálózatról importált nem helyi szoftvereket (pl. a USENET), és mivel a UNIX vállalatok nem szerették megismételni ugyanazt a hibát, mint a /usr/bin
esetén, 1987 körül fájlrendszer-hierarchia konferencia volt, ahol az összes UNIX vállalat megállapodott a id = “5dd614bde0”>
és ehelyett a/opt/<vendor>/bin
szót kell használni.
Sajnos a Linux disztribútorai nem követték ezt a döntést ….
Megjegyzések
- Bár nagyon érdekes, ezek egyike sem sőt megpróbálja megválaszolni a feltett kérdést, amely nem a
/opt
-ről szólt, és nem a UNIX-ról, hanem a Linuxról szólt. Ez olyan, mintha válaszolna ” Miért van 4 kereke az autóknak? ” a ” vel 2! Sajnos az autók nem ‘ t. ” amelyek nem ‘ nem segítik az OP-t annak megértésében az autók 4-esek. - Ha nem tudja használni a megadott magyarázatot a Linux hátterének magyarázataként és arra, hogy a Linux szereti utánozni a UNIX-ot, akkor hiányozhat a szükséges háttér.
- Érdekes, de valami zavaros, és ami talán szintén csak történelmi. Ma egy kuka online letöltése és a céges kuka nem nagyon különbözik egymástól ‘. Ha Joe Blow készít egy programot, és én letöltöm, akkor miért ne tennénk a / opt / JowBlow / bin fájlba az / usr / local / bin helyett. Megbízható szolgáltatóról van szó, szemben a nem megbízható szolgáltatóval? Úgy tűnik, hogy ‘ nincs értelme számomra.
- bárcsak tudtam volna ezt a ‘ pontos ‘ történelem néhány évvel ezelőtt. a) Kíváncsi voltam, miért kerülte el az AIX az / usr / local alkalmazást, miért használja az / opt / IBM-t és / opt / ibm-t és bullfreeware / opt / freeware-t – és miért kellett volna más utat használnom (nem csak a / opt / * sbin-t). Ami a Linux szempontjából félrelevanciát illeti – a jobb GNU eszközök – az alapértelmezett – prefix az auto-tools-ban a / usr / local. Kár, hogy az automatikus szerszámok (az automake, az autoconf stb. Nem követik …. De mindannyian túléljük és megtanuljuk, hogy a distrub. || gyártók hova rakják programjaikat.
- Lehetne még egy ilyen konferencia? Csak ezúttal MINDENKI HALLGAT!
/usr/sbin/
.~/bin/
személyes dolgokra./bin
összevonásra került a/usr/bin
és a/sbin
beolvadt a/usr/sbin
– lásd Az / usr egyesítés esete ./usr/local/bin
?