/ usr / bin vs / usr / local / bin Linuxissa

Miksi Linuxissa on niin paljon paikkoja, joihin binääriä voidaan laittaa? Ainakin nämä viisi ovat:

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

Ja toimistolaatikossa minulla ei ole kirjoitusoikeuksia joihinkin näistä.

Minkä tyyppinen binaari mihin näistä bin s?

Kommentit

  • Unohdit /usr/sbin/ .
  • Ja ~/bin/ henkilökohtaisille tavaroille.
  • Paikkoja on nykyään vähemmän, koska /bin yhdistettiin osastoon /usr/bin ja /sbin yhdistettiin ryhmään /usr/sbin – katso / usr -yhdistämisen tapaus .
  • @Calmarius, mitä? Pitäisikö ’ käyttää /usr/local/bin?
  • @Pacerier ~ / bin on tarkoitettu vain nykyiselle käyttäjälle. Esimerkiksi monen käyttäjän Linux-palvelimissa, joissa et ole järjestelmänvalvoja, joka ’ on ainoa tapa ” asentaa ” tavaraa itsellesi.

Vastaa

  1. /bin (ja /sbin) oli tarkoitettu ohjelmille, joiden oli oltava pienessä / -osiossa ennen suurempaa /usr jne. osiot asennettiin. Nykyään se toimii enimmäkseen vakiopaikkana avainohjelmille, kuten /bin/sh, vaikka alkuperäinen tarkoitus voi silti olla merkityksellinen esim. asennukset pieniin sulautettuihin laitteisiin.

  2. /sbin erotettuna /bin on järjestelmänhallintaohjelmille (joita tavalliset käyttäjät eivät normaalisti käytä), joita tarvitaan ennen /usr -asennusta.

  3. /usr/bin on tarkoitettu jakelun hallinnoimille tavallisille käyttäjäohjelmille.

  4. /usr/sbin on sama suhde /usr/bin kuten /sbin on /bin.

  5. /usr/local/bin on tarkoitettu tavallisille käyttäjäohjelmille, joita ei hallinnoi jakelupakettien hallinta, esim. paikallisesti kootut paketit. Älä asenna niitä osioon /usr/bin, koska tulevat jakelupäivitykset saattavat muokata tai poistaa niitä ilman varoitusta.

  6. /usr/local/sbin, kuten voit todennäköisesti arvata tässä vaiheessa, on /usr/local/bin muodossa /usr/sbin/usr/bin.

Lisäksi on olemassa /opt, joka on tarkoitettu monoliittisille ei-jakelupaketeille, vaikka ennen kuin ne oli integroitu oikein, erilaiset jakelut asettivat Gnomen ja KDE: n. Yleensä sinun tulisi varata se suurille, huonosti käyttäytyville kolmansien osapuolten paketeille, kuten Oraclelle.

Kommentit

  • Mielestäni tämä vastaus on hyvä tehtävä selventää yhteinen käytännesarja, mutta tämä Rob Landleyn viesti on todella hieno lukema, jos haluat käsityksen hölynpölystä … lists.busybox.net/pipermail/busybox/2010 -December / 074114.html
  • refspecs.linuxfoundation.org/fhs.shtml kanonista nykyistä viittausta varten. @Kojiron linkki on vanhentunut, eikä sillä ole ’ uutta spesifikaatiota.
  • Mihin laitan Internetistä lataamasi roskakorin? Kuvauksestasi tuntuu siltä, että sen pitäisi mennä hakemistoon / usr / local / bin tai / usr / bin. Onko / usr / bin jotain, jota en koskaan saa koskettaa manuaalisesti, ja anna vain paketinhallinnan pelata?
  • @DidierA. laita se ~/bin -kansioon ja lisää kyseinen hakemisto polkuusi käyttäjänä … Kiitos huomautuksesta, poistin vakavasti vanhentuneen kommenttini.
  • Löysin vastaus kysymykseni ensimmäiseen osaan täällä: superuser.com/a/238993/425838 . Etusija perustuu järjestelmän PATH -muuttujan järjestykseen, ja echo $PATH näyttää minulle /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games , mikä tarkoittaa, että /usr/local/bin -sovelluksessa olevat suoritettavat tiedostot ovat etusijalla /usr/bin -tietokoneisiin nähden. >

.

vastaus

Suosittelen katsomaan tiedostojärjestelmähierarkian man-sivua:

man hier 

joka on saatavana myös verkossa, esimerkiksi: http://linux.die.net/man/7/hier . Asiaankuuluvat osat on kopioitu alla. Järjestelmästäsi riippuen se voi sanoa jotain erilaista.

Nimi

    hier – tiedostojärjestelmähierarkian kuvaus

Kuvaus

    Tyypillisessä Linux-järjestelmässä on muun muassa seuraavat hakemistot:

    /bin

      Tämä hakemisto sisältää suoritettavia ohjelmia, joita tarvitaan yhden käyttäjän kanssa tilassa ja tuoda järjestelmä ylös tai korjata se.

    /sbin

      Kuten /bin, tämä hakemisto omistaa järjestelmän käynnistämiseen tarvittavat komennot, mutta tavalliset käyttäjät eivät yleensä suorita niitä.

    /usr/bin

      Tämä on suoritettavien ohjelmien ensisijainen hakemisto. Suurin osa normaalien käyttäjien suorittamista ohjelmista, joita ei tarvita käynnistämiseen tai järjestelmän korjaamiseen ja joita ei ole asennettu paikallisesti, tulisi sijoittaa tähän hakemistoon.

    /usr/local/bin

      Sivuston paikallisten ohjelmien binaarit.

    /usr/local/sbin

      Paikallisesti asennetut ohjelmat järjestelmän hallintaa varten.

    /usr/sbin

      Tämä hakemisto sisältää järjestelmän hallintaa varten tarvittavat ohjelma-binäärit, jotka eivät ole välttämättömiä käynnistysprosessille, /usr -asennukseen tai järjestelmän korjaamiseen .

Kommentit

  • Tämä ei ole ’ t vastaa käyttäjän ’ kysymykseen.
  • Man-sivu sisältää merkinnän kustakin roskakorihakemistosta ja selittää mitä menee niihin, mikä oli yksi kysymyksistä.

Vastaus

Tiedostojärjestelmä Hierar chy Standard -merkintä Wikipediassa auttoi minua vastaamaan samaan kysymykseen, kun minulla oli se, ja siinä on hyvin selittävä taulukko.

Ote tältä sivulta 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 Haettu 19. kesäkuuta 2019; pysyvä linkki .

Vastaa

sbin -hakemistot sisältävät ohjelmia, jotka ovat yleensä vain järjestelmänhallintaa. Tavallisten käyttäjien ohjelmat eivät saa koskaan mennä niihin.

Käynnistyksen aikana tarvitaan joitain ohjelmia, jotka päätyvät /bin/ tai /sbin/. Niiden on oltava käytettävissä ennen tiedostojärjestelmien asentamista. Tiedostojärjestelmien tarkistamiseen ja liittämiseen tarvittavien asioiden, kuten mount ja fsck, on oltava siellä.

Pakatuimmat ohjelmat päätyvät /usr/bin/ ja /usr/sbin/. Nämä voivat olla muussa tiedostojärjestelmässä kuin juuritiedostojärjestelmässä. Joissakin tapauksissa ne voivat olla verkkoon asennetulla asemalla.

Paikalliset ohjelmat ja komentosarjat kuuluvat ryhmiin /usr/local/bin/ ja /usr/local/sbin/ . Tämä tunnistaa ne selvästi epätyypillisiksi ja mahdollisesti saatavana vain paikan päällä.

Saat lisätietoja selittämällä komennon man hier, joka antaa kuvauksen jakelusi suositellusta tiedostojärjestelmähierarkiasta. Saatat myös haluta lukea -tiedostojärjestelmän hierarkiasta Wikipediassa

kommentit

  • +1 Todella tiivis selitys, jos yläosa on hieman liikaa.
  • ” Paikalliset ohjelmat ja komentosarjat kuuluvat kansioihin / usr / local / bin / ja / usr / local / sbin / ” – Tarkoitat paikallisia ohjelmia kuten ” -ohjelmassa, eivätkä ollenkaan käyttöjärjestelmän osissa, mutta päätin asentaa ja haluat käyttää niitä ”?

Vastaa

1970-luvulla UNIXilla oli kaikki viralliset suoritettavat tiedostot /bin -kohdassa ja /usr/bin oli paikka käyttäjien kotihakemistojen alla (esim. /usr/dmr), joka oli kaikkien käyttäjien käytettävissä tallentamaan omia binäärejä, jotka ovat saattaneet kiinnostaa myös muita.

Tämän avoimen /usr/bin oli romuttamaton telakka dokumentoimattomia ohjelmistoja, joten Stephen Bourne wro te cron-skripti, joka tarkisti uusia binaareja joka ilta ja poisti kaikki binäärit, joilla ei ollut dokumentaatiota tai jotka on päivitetty päivittämättä myös niiden dokumentaatiota.

1970-luvun lopulla /usr/bin integroitiin käyttöjärjestelmän peruskokoonpanoon ja ihmiset alkoivat käyttää /usr/local/bin -ohjelmaa edellisen avoimen /usr/bin .

Jonkin ajan kuluttua sysadmins käytti /usr/local/bin -palvelua verkkoon tuotujen ei-paikallisten ohjelmistojen (esim. USENET) ja koska UNIX-yhtiöt eivät halunneet toistaa samaa virhettä kuin uudelleen /usr/bin -tapahtumassa, noin 1987 järjestettiin tiedostojärjestelmähierarkiakonferenssi, jossa kaikki UNIX-yritykset suostuivat luopumaan /usr/local/bin ja käyttää sen sijaan /opt/<vendor>/bin.

Valitettavasti Linux-distrot eivät noudattaneet tätä päätöstä ….

Kommentit

  • Vaikka tämäkin on erittäin mielenkiintoista, mikään tästä yrittää edes vastata kysymykseen, joka ei koske /opt eikä UNIXista vaan Linuxista. Tämä on kuin vastaaminen ” Miksi autoilla on 4 pyörää? ” ” polkupyörillä on 2! Valitettavasti autot eivät ’ t. ”, jotka eivät ’ auta OP: ta ymmärtämään miksi autoissa on 4.
  • Jos et pysty käyttämään annettua selitystä selitykseksi Linuxin taustalle ja siitä, että Linux haluaa jäljitellä UNIXia, saatat puuttua tarvittavan taustan.
  • Mielenkiintoista, mutta hämmentynyt asia, joka on ehkä myös vain historiallista. Nykyään roskakorin lataaminen verkossa ja yrityksen roskakori eivät ole ’ kovin erilaisia. Jos Joe Blow tekee ohjelman ja lataan sen, miksi ei laittaa sitä kansioon / opt / JowBlow / bin / usr / local / bin. Onko kyse luotetusta palveluntarjoajasta vai epäluotettavasta? Minulla ei näytä olevan järkevää ’.
  • Toivon, että olisin tiennyt tämän ’ tarkan ’ historiaa muutama vuosi sitten. a) Mietin, miksi AIX välttää / usr / local, käyttää / opt / IBM: tä ja / opt / ibm ja bullfreeware käyttää / opt / freeware – ja miksi PITÄISIN käyttää eri polkua (ei vain / opt / * sbin). Puoli-merkityksellisyys Linuxilla – paremmat GNU-työkalut – oletusarvoinen etuliite automaattisissa työkaluissa on / usr / local. Harmi huonot automaattiset työkalut (automake, autoconf jne. Eivät seuraa … Mutta me kaikki selviämme ja opimme, mihin distrub. || myyjät sijoittavat ohjelmansa.
  • Voisimmeko järjestää toisen näistä konferensseista? Juuri tällä kertaa KAIKKI KUUNTELE!

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *