/ usr / bin vs / usr / local / bin Linux rendszeren

Miért van olyan sok hely, ahová binárisat lehet tenni a Linuxban? Legalább ez az öt létezik:

  1. /bin/
  2. /sbin/
  3. /usr/bin/
  4. /usr/local/bin/
  5. /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

  • Elfelejtette /usr/sbin/ .
  • És ~/bin/ személyes dolgokra.
  • Manapság kevesebb hely van, mivel /bin összevonásra került a /usr/bin és a /sbin beolvadt a /usr/sbin – lásd Az / usr egyesítés esete .
  • @Calmarius, mi? Nem szabad, hogy ‘ t használja: /usr/local/bin?
  • A @Pacerier ~ / bin csak az aktuális felhasználónak szól. Például többfelhasználós Linux kiszolgálókon, ahol Ön nem rendszergazda, aki ‘ egyedüli módja ” dolgokat magadnak.

Válasz

  1. /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.

  2. /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).

  3. /usr/bin a terjesztés által felügyelt normál felhasználói programok számára készült.

  4. Van egy /usr/sbin, ugyanazzal a kapcsolattal a /usr/bin mint /sbin /bin.

  5. /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.
  6. /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 az echo $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>/binszó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!

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük