linux zaklady
Napsal: 12. 11. 2009, 10:01
Len pre zaujimavost a pohopenie unixu (linuxu) a jeho "instalacie" napisem nejaky pokec k adresarom a organizacii disku, prosim ospravedlnte mierne nepresnosti ktore vznikaju skor tym, ze sa snazim to podat co najlajckejsie.. a ospravedlnte tento uvod do unix/linux v CNC fore .. ale pokial mame riadit masiny EMC-ckom musime prebrat aj linux ..
Pouzivajte bud prikaz ls alebo uz uvedeny prikaz mc na "kontrolu" toho co pisem nizsie.
Ked si pozriete korenovy adresar najdete v nom zakladnu adresarovu strukturu.
strucne:
/bin - zakladne binarky ako napr ls, cat, bash ... bez nich si v systeme neporadite a ani asi nestartne
/boot sem sa uklada jadro OS stadial sa toto jadro pri boote vytiahne
/dev tuna nieje v skutocnosti ziaden subor .. toto su len odkazove veci na interne drivre v jadre, ktore spristupnuju periferie (jednak znakove .. napr seriova linka alebo blokove t.j. disk)
/etc - globalne konfiguracie pre stroj a jeho aplikacne programove vybavenie (uzivatelia maju svoje lokalne nastavenia pre aplikacie v svojich adresaroch, vzdy sa maju pouzit najprv tito z /etc a az ked ma uzivatel nejake specialnosti tieto sa potom aplikuju z jeho nastavenia)
/lib kniznice
/sbin specialne binarky .. bezny uzivatel z nich nema nic lebo vacsinou su urcene na take akcie, ku ktorim ma pritup len admin (root).
/tmp - pr ehocioho na docasne veci, po reboote sa bezne "vycisti" ale da sa nastavit inac .. (napr. vycisti len veci starsie ako .. )
Toto co som spomenul staci na zakladny beh stroja. Po boote sa je mozne aspon prihlasit na textovu konzolu.
Dalsie veci ktore najdete v / su adresar
/usr - aplikacne vybavenie (zas ma napr podaresar /bin /lib .. s podobnym ucelom ako na /bin /lib .. Ak by ste /usr nemali .. nemate aplikacie ale system ako taky bezi
/var rozlicne veci "variabilneho" typu .. databazi . mail, logovanie atd .. (zas nie je nutne pre zakladny system .. ale normalne pri behu stroja kde su aplikacie .. servre je uz potrebny
/home domace adresare uzivatelov
/root domaci adresar admina
/sys a /proc su specialne adresare podobne ako /dev .. ale ich ucel je iny .. poskytuju "pohlad" na iste veci v jadre OS.. (premenne , nastavenia atd ).
adresare /cdrom /usb /mnt /media su meista kde sa pripajaku adresare inych diskov (externych medii atd.)
Povodna idea takehoto delenia bola taka, aby sme zakladny system instalovali na mensi disk .. kde nebudu veci /var /usr .. (kde su velke objemi dat). Unix pripaja disky do adresarov takze bolo lahke od zaciatku pridat do /usr novy velky disk a na neho naloadovat aplikacne data.. ale ked sa muselo na systeme nieco opravovat .. proste bol schopny bezat aj bez toho disku v /usr .. resp. /var
Instalacie softwaru:
od zaciatku vyvoja unixu sa preferovalo riesenie distribucie softu v zdrojakoch. Admin proste nakopiroval zdrojaky do predurceneho adresara (/usr/src) tam si zdrojaky rozbalil (bezne sa balia do tzv. tar .. a potom zazipuju .. dnes najcastejsie cez bz2 alebo gz... podla toho pripona tar.gz alebo skratene tgz).
Amin potom skompilovl podla pokynov sdrojaky a "instalacia" rozhodila binarne vysledky kompilacie do prislusnych adresarov /usr/bin /usr/lib /usr ... pripadne variabilne data do /var/lib atd ..
Zial takto riesene instalacie sa zle udrzuju.. ked instalujete novu verziu tohoisteho programu, sice prepisete nejake zo starych binariek ale mozno niektore zo suborov uz neexistuju v novej verzii tychto aplikacii a tak na disku vznika "bordel"..
Vacsina z vas . pouzivate ubuntu linux .. tento je postaveny na distribucii debian. Debian pred rokmi vyriesil hore uvedeny problem ..
Admin zas skompiluje zdrojak do binarneho tvaru .. ale vysledok nenainstaluje do systemu . al e do specialneho subor .deb (tzv. deb balicek). Tento balicek potom moze lahko nainstalovat aj admin na inom systeme, bez nutnosti kompilacie. Balicek pri instalacii zaroven zapise o kazdom subore v nom obsiahnutom zaznam do databazi (/var/lib/dpkg adresar) . Potom sa na zaklade takehoto zaznamu da balicek aj korektne odinstalovat alebo upgradnut.
ak sa teda rozhodnete kompilovat EMC, mate niekolko moznosti ..
a) ako admin stiahnete zdrojaky .. a po kompilacii to instalnete do systemu (nesystemove, problematike pri upgrade)
b) ako admin vytvorite po kompilacii EMC .deb balicek a tento instalnete
c) pouzijete na instalaciu nejaky nestandardny adresar napr svoj domaci adresar v /home .. sami si ale musite pameta aka verzia v nom je nainstalovana a ci ju este potrebujete atd ..
Pokial ide o externe kniznice ktore EMC potrebuje .. pri instalacii typu b) bude zabezpecene, ze ked sa pokusite odinstalovat nejaku kniznicu, ktoru EMC potrebuje, tak sa vam to nepodari (aspon nie jednoducho) pretoze system .deb balickov bude hlasit chybu . kvoli dependencii na tejto kniznici.
Este strucne k zoznamu co mate na stroji instalovane ..
(preberiem niegraficke riesenia .. )
dpkg -l zobrazi zoznam nainstalovanych balickov
dpkg -l _balicek_ - zobrazi konkretny balicek (je/ nie je instalnuty, aku ma verziu)
dpkg -L _meno_balicka_ (napr balicek dajte "bash") vam vypise zoznam suborov patriacich k balicku bash
ak ma nejaky subor, a xcem vedeit ktory balicek ho nainstaloval . mozem sa to spytat
dpkg -S /bin/bash
Elementarna instalacia ak mam .deb balicek ..
dpkg -i _meno_suboru_.eb
ak nejaky balicek xcem odinstalovat
dpkg --remove _nazov_balicka_ (toto ale zachova konfiguracne veci balicka)
dpkg --purge _nazov_balicka_ odinstaluje balicek aj s konfiguraciou.
Tieto elementarne veci su dostupne aj cez textove interface napr dselect alebo aptitude, pripadne cez graficke aplikacie .. ale je dobre vediet aj to co sa za nimi deje na nizsej urovni.
Pouzivajte bud prikaz ls alebo uz uvedeny prikaz mc na "kontrolu" toho co pisem nizsie.
Ked si pozriete korenovy adresar najdete v nom zakladnu adresarovu strukturu.
strucne:
/bin - zakladne binarky ako napr ls, cat, bash ... bez nich si v systeme neporadite a ani asi nestartne
/boot sem sa uklada jadro OS stadial sa toto jadro pri boote vytiahne
/dev tuna nieje v skutocnosti ziaden subor .. toto su len odkazove veci na interne drivre v jadre, ktore spristupnuju periferie (jednak znakove .. napr seriova linka alebo blokove t.j. disk)
/etc - globalne konfiguracie pre stroj a jeho aplikacne programove vybavenie (uzivatelia maju svoje lokalne nastavenia pre aplikacie v svojich adresaroch, vzdy sa maju pouzit najprv tito z /etc a az ked ma uzivatel nejake specialnosti tieto sa potom aplikuju z jeho nastavenia)
/lib kniznice
/sbin specialne binarky .. bezny uzivatel z nich nema nic lebo vacsinou su urcene na take akcie, ku ktorim ma pritup len admin (root).
/tmp - pr ehocioho na docasne veci, po reboote sa bezne "vycisti" ale da sa nastavit inac .. (napr. vycisti len veci starsie ako .. )
Toto co som spomenul staci na zakladny beh stroja. Po boote sa je mozne aspon prihlasit na textovu konzolu.
Dalsie veci ktore najdete v / su adresar
/usr - aplikacne vybavenie (zas ma napr podaresar /bin /lib .. s podobnym ucelom ako na /bin /lib .. Ak by ste /usr nemali .. nemate aplikacie ale system ako taky bezi
/var rozlicne veci "variabilneho" typu .. databazi . mail, logovanie atd .. (zas nie je nutne pre zakladny system .. ale normalne pri behu stroja kde su aplikacie .. servre je uz potrebny
/home domace adresare uzivatelov
/root domaci adresar admina
/sys a /proc su specialne adresare podobne ako /dev .. ale ich ucel je iny .. poskytuju "pohlad" na iste veci v jadre OS.. (premenne , nastavenia atd ).
adresare /cdrom /usb /mnt /media su meista kde sa pripajaku adresare inych diskov (externych medii atd.)
Povodna idea takehoto delenia bola taka, aby sme zakladny system instalovali na mensi disk .. kde nebudu veci /var /usr .. (kde su velke objemi dat). Unix pripaja disky do adresarov takze bolo lahke od zaciatku pridat do /usr novy velky disk a na neho naloadovat aplikacne data.. ale ked sa muselo na systeme nieco opravovat .. proste bol schopny bezat aj bez toho disku v /usr .. resp. /var
Instalacie softwaru:
od zaciatku vyvoja unixu sa preferovalo riesenie distribucie softu v zdrojakoch. Admin proste nakopiroval zdrojaky do predurceneho adresara (/usr/src) tam si zdrojaky rozbalil (bezne sa balia do tzv. tar .. a potom zazipuju .. dnes najcastejsie cez bz2 alebo gz... podla toho pripona tar.gz alebo skratene tgz).
Amin potom skompilovl podla pokynov sdrojaky a "instalacia" rozhodila binarne vysledky kompilacie do prislusnych adresarov /usr/bin /usr/lib /usr ... pripadne variabilne data do /var/lib atd ..
Zial takto riesene instalacie sa zle udrzuju.. ked instalujete novu verziu tohoisteho programu, sice prepisete nejake zo starych binariek ale mozno niektore zo suborov uz neexistuju v novej verzii tychto aplikacii a tak na disku vznika "bordel"..
Vacsina z vas . pouzivate ubuntu linux .. tento je postaveny na distribucii debian. Debian pred rokmi vyriesil hore uvedeny problem ..
Admin zas skompiluje zdrojak do binarneho tvaru .. ale vysledok nenainstaluje do systemu . al e do specialneho subor .deb (tzv. deb balicek). Tento balicek potom moze lahko nainstalovat aj admin na inom systeme, bez nutnosti kompilacie. Balicek pri instalacii zaroven zapise o kazdom subore v nom obsiahnutom zaznam do databazi (/var/lib/dpkg adresar) . Potom sa na zaklade takehoto zaznamu da balicek aj korektne odinstalovat alebo upgradnut.
ak sa teda rozhodnete kompilovat EMC, mate niekolko moznosti ..
a) ako admin stiahnete zdrojaky .. a po kompilacii to instalnete do systemu (nesystemove, problematike pri upgrade)
b) ako admin vytvorite po kompilacii EMC .deb balicek a tento instalnete
c) pouzijete na instalaciu nejaky nestandardny adresar napr svoj domaci adresar v /home .. sami si ale musite pameta aka verzia v nom je nainstalovana a ci ju este potrebujete atd ..
Pokial ide o externe kniznice ktore EMC potrebuje .. pri instalacii typu b) bude zabezpecene, ze ked sa pokusite odinstalovat nejaku kniznicu, ktoru EMC potrebuje, tak sa vam to nepodari (aspon nie jednoducho) pretoze system .deb balickov bude hlasit chybu . kvoli dependencii na tejto kniznici.
Este strucne k zoznamu co mate na stroji instalovane ..
(preberiem niegraficke riesenia .. )
dpkg -l zobrazi zoznam nainstalovanych balickov
dpkg -l _balicek_ - zobrazi konkretny balicek (je/ nie je instalnuty, aku ma verziu)
dpkg -L _meno_balicka_ (napr balicek dajte "bash") vam vypise zoznam suborov patriacich k balicku bash
ak ma nejaky subor, a xcem vedeit ktory balicek ho nainstaloval . mozem sa to spytat
dpkg -S /bin/bash
Elementarna instalacia ak mam .deb balicek ..
dpkg -i _meno_suboru_.eb
ak nejaky balicek xcem odinstalovat
dpkg --remove _nazov_balicka_ (toto ale zachova konfiguracne veci balicka)
dpkg --purge _nazov_balicka_ odinstaluje balicek aj s konfiguraciou.
Tieto elementarne veci su dostupne aj cez textove interface napr dselect alebo aptitude, pripadne cez graficke aplikacie .. ale je dobre vediet aj to co sa za nimi deje na nizsej urovni.