| |
|
Chapter 4 Konfiguracija
sistema
Pre nego što budete u mogućnosti da vršite konfiguraciju
složenijih delova vašeg sistema, ne bi bila loša ideja da naučite
kako je sistem organizovan i koje se komande mogu koristiti za pretragu nad datotekama i
programima. Isto je tako dobro znati kako se vrši kompajliranje kernela tako da on
odgovara vašim potrebama. Ovo poglavlje će vas upoznati sa organizacijom
sistema i njegovim konfiguracionim datotekama. Posle toga ide se dalje ka složenijim
aspektima u konfiguraciji sistema.
Bitno je da razumete kako Linux sistem objedinjuje svoje komponente, da biste kasnije
prešli na dublje razumevanje raznih aspekata u konfigurisanju. Linux sistem se
značajno razlikuje od DOS-a, Windows-a, ili Macintosh sistema (izuzetak je Unix
baziran Mac OS X sistem). Pored toga ovi odeljeci će vas upoznati sa suštinom
kako da lako konfigurišete sistem prema vašim potrebama.
Prva uočljiva razlika između Slackware Linux-a i DOS odnosno Windows sistema
je sistem fajlova. Kao prvo, mi ne koristimo slova za označavanje različitih
particija. Pod Linux-om, postoji samo jedan glavni direktorijum. Možete ga
poistovetiti sa C: drajvom u DOS-u. Svaka particija
vašeg sistema je montirana na taj glavni direktorijum. To je neka vrsta uvek
proširivog hard diska.
Glavni direktorijum zvaćemo root (korenski) direktorijum, a on je obeležen
kao kosa crta ili slash (/). Ovaj koncept možda izgleda
čudno, ali stvarno olakšava život u onim slučajevima kada je potrebno
dodati još prostora. Na primer, recimo da smo popunili drajv na kome se nalazi /home direktorijum. Većina ljudi u toku instalacije
Slackware-a ostavlja veliki root drajv. Pošto se particija može montirati na
bilo koji direktorijum, jednostavno možete da odete u prodavnicu, izaberete novi
hard disk i montirate ga kao /home. Na ovaj način
dobićete više prostora na vašem sistemu, bez potrebe da radite razna
kopiranja.
Dole ćete naći opis Slackware direktorijuma najvišeg nivoa.
- bin
-
Esencijalni korisnički programi se nalaze ovde. Oni predstavljaju minimum
programa koji su potrebni korisniku da bi koristio sistem. Stvari kao školjka i
komande sistema fajlova (ls, cp, itd.)
se nalaze tu. Direktorijum /bin obično ostaje nepromenjen
posle instalacije. Ako se i promeni to su uglavnom nadogradnje paketa.
- boot
-
Fajlovi koji se koriste od strane Linux Loader-a (LILO). Taj direktorijum se
obično malo menja posle instalacije sistema. Kernel se tu nalazi od Slackware 8.1. U
ranijim izdanjima Slackware-a, kerenel se jednostavno nalazio u / direktorijumu, ali sadašnja je praksa da se kernel i njemu
pripadajući fajlovi tu stavljaju radi pojednostavljivanja dualnog startovanja.
- dev
-
Sve se u Linux-u tretira kao fajl, čak i hardverski uređaji kao što su
serijski portovi, hard diskovi, i skeneri. Da bi se moglo pristupiti tim uređajima,
specijalni fajl zvani čvor uređaja (device node) mora da postoji. Svi
čvorovi uređaja se nalaze u /dev direktorijumu.
Uverićete se da to važi za mnoge na Unix-olike operativne sisteme.
- etc
-
Ovaj direktorijim sadrži konfiguracione fajlove. Sve od X Window konfiguracionih
fajlova pa do skripti za pokretanje. Sistemski administrator se povremeno druži sa
ovim direkotrijumom .
- home
-
Linux je višekorisnički operativni sistem. Svaki korisnik na sistemu ima
svoj nalog i jedinstveni direktorijum za lične fajlove. Taj direktorijum se zove
korisnički ili početni (home) direktorijum. Direktorijum /home je podrazumevana lokacija za smeštanje direktorijuma
korisnika.
- lib
-
Sistemske biblioteke koje su potrebne za bazičene operacije sistema se nelaze
ovde. C bublioteke, dinamički loader, ncurses biblioteka, i moduli kernela pored
ostalih stvari se isto ovde nalaze.
- mnt
-
Ovaj direktorijum sadrži privremene tačke montiranje za hard diskove ili
promenjive uređaje. Tu se mogu naći tačke montiranja za vaš CD-ROM
ili floppy drajv.
- opt
-
Opcioni softrerski paketi. Ideja na kojoj se zasniva koncept /opt direktorijuma leži u tome da se svaki paket softvera
instalira u /opt/software-package, i na taj način se
pojednostavljuje kasnije deinstaliranje. Slackware distribuira neke stvari u /opt direktorijum (kao što je KDE u /opt/kde), ali i vi ste slobodni da sami dodate ono što
želite u taj direktorijum.
- proc
-
Ovo je jedinstveni direktorijum. On nije stvarno sastavni deo sistema fajlova,
već je virtualni fajl sistem koji omogućava pristup informacijama kernela.
Razne inforamacije koje kernel želi da vi znate se saopštavaju preko fajlova u
/proc direktorijumu. Isto tako i sami možete da
šaljete informacije kernelu preko nekog od tih fajlova. Pokušajte cat /proc/cpuinfo.
- root
-
Administartor sistema još se zove i root sistema. root-ov početni direktorijum se nalazi na lokaciji /root umesto u /home/root. Razlog za to
je jednostavan. Šta ako /home i / nisu na istim particijama i ako se /home ne može montirati? root
normalno može da se loguje i da popravi problem. Ako je fajl sistem koji sadrži
njegov početni direktorijum oštećen, biće otežano logovanje.
- sbin
-
Esecijalni programi koje pokreće root i koji se
izvršavaju u toku butovanja se čuvaju ovde. Obični korisnici ne
pokreću programe u tom direktorijumu.
- tmp
-
Privremena lokacija za skladištenje. Svi korisnici imaju pristup kako i za
čitanje i pisanje u tom direktorijumu.
- usr
-
Ovo je veliki direktorijum u Linux sistemu. Skoro sve ostalo se nalazi ovde, programi,
dokumentacija, izvorni kod kernela i X Windows sistem. Ovo je direktorijum u koji će
se najverovatnije instalirati programi.
- var
-
Dnevnik (log) fajlovi sistema, keš podaci i fajlovi zaključavanja programa
se ovde čuvaju. Ovaj direktorijum je za često menjanje podataka.
Sada treba da imate dobar osećaj da znate šta se nalazi u kom direktorijmu.
Za više informacija o pregledu fajl sistema pogledajte hier(7) man starnu.
Sledeći odeljak će vam pomoći u potrazi za određenim datotekama, tako
da ne morate to da radite ručno.
Sada znate šta svaki glavni direktorijum sadrži, ali to vam doista ne
pomaže u pretrazi. Mislim, trebali biste da pretražujete direktorijume na
efikasniji način. Postoje četiri glavna načina za pretraživanje
fajlova u Slackware-u.
Prvi način je korišćenje which(1) komande. which se obično koristi za brzo lociranje programa. Ona
jednostavno pretražuje vaš PATH i vraća prvu
instancu i njoj odgovarajuću putanju direktorijuma. Evo primera:
Ovde vidite da se komanda bash nalazi u /bin direktorijumu. Ovo je veoma ograničena komanda pošto
pretražuje samo vaš PATH.
whereis(1) komanda radi slično kao i which komanda, ali ona pretražuje i man strane i izvorne
fajlove. A whereis koja traži bash
bi vratila ovo:
% whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz
|
Ova komanda ne samo da govori gde se nalazi dati program, već i pokazuje gde se
nalazi odgovarajuća dokumentacija. Još uvek je ova komanda ograničena.
Šta ako hoćete da pronađete određeni konfiguracioni fajl? Komande which ili whereis vam neće
pomoći.
find(1) komanda omogućava pretragu nad fajl sistemom
korišćenjem bogate kolekcije izraza za pretragu. Korisnici mogu da specifiraju
pretragu datoteka u odnosu na džokere, opseg vremena modifikacije ili kreiranja ili
u odnosu na neke druge napredne osobine. Na primer, da bi se pretraživala
podrazumevana xinitrc datoteka na sistemu, treba zadati
sledeću komandu:
% find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc
|
Izvršavanje komande find traje prilično, pošto
se prolazi od korena stabla direktorijuma. A ako se ta komanda pokrene pod
ovašćenjima običnog korisnika, pojaviće se poruke o greškama
zabranjenog pristupa ka diretorijumima koje samo root korisnik
može da gleda. Ipak će find komanda pronaći
našu datoteku, što je sasvim u redu. Ali bi valjalo to biti malo
brže...
Komanda slocate(1) pretražuje čitav datotečni
sistem, baš kao što to radi find komanda, ali se ne pretražuje neposredno
aktuelni datotečni sistem već odgovarajuća baza podataka. Baza podataka je
podešna tako da se automatski ažurira svako jutro, tako da imate donekle
svež listing datoteka na vašem sistemu. Možete ručno da pokrenete updatedb(1) da ažurirate slocate bazu podataka (pre pokretanja
komande updatedb morate biti root
korisnik. Evo primera slocate komande u akciji:
% slocate xinitrc # ne moramo biti root
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm
|
Dobićete više nego što ste tražili, i isto tako dosta brzo. Sa tim
komandama, bićete u stanju da pronađete ono što ste nameravali na
vašem Linux sistemu.
Fajlovi za inicijalizaciju sistema se nalaze u /etc/rc.d
direkotrijumu. Slackware koristi BSD stil za svoje inicijalne datoteke. Ova BSD
šema, za razliku od System V init skripti, teža je za konfigurisanje ukoliko se
ne koriste programi dizajnirani za tu namenu. Kod BSD init skripti, svakom runlevel-u
odgovara jedan rc fajl. U System V šemi, svaki runlevel ima vlasititi direktorijum
koji sadrži brojne init skripte. Na taj način imamo organizovanu strukturu koja
se lako održava.
Postoji nekoliko kategorija fajlova za inicijalizaciju. To su fajlovi za podizanje
sistema, runlevel-i, fajlovi za pokretanje mreže, i fajlovi koji obezbeđuju
System V kompatibilnost. Po tradiciji, nabacaćemo sve ostalo u neku drugu
kategoriju.
Prvi program na Slackware-u koji se pokreće, ako se izuzme Linux kernel, je init(8). Ovaj program čita /etc/inittab(5) fajl da vidi kako da pokrene sistem. Pokreće
skript /etc/rc.d/rc.S da pripremi sistem pre nego što ode
u izabran runlevel. Datoteka rc.S omogućava virualnu
memoriju, montira fajl sistem, čisti određene log direktorijume, inicira Plug
and Play uređaje, učitava module kernela, konfiguriše PCMCIA uređaje,
podešava serijske portove i pokreće System V init skriptove (ako ih
pronađe). Očigledno, rc.S skript ima puno toga da
odradi, ali ima nešto skripti u /etc/rc.d direktorijumu
koje rc.S poziva da mu pomognu da obavi posao:
- rc.S
-
Ovo je aktuelni skript za iniciranje sistema.
- rc.modules
-
Učitava module kernela. Stvari kao što su mrežna kartica, PPP
podrška i druge stvari se ovde učitavaju. Ako ovaj skript pronađe rc.netdevice, takođe će ga pokrenuti.
- rc.pcmcia
-
Isprobava konfiguracije za sve PCMCIA uređaje koji su možda na vašem
sistemu. Ovo je najkorisnije za korisnike laptop računara koji verovatno imaju
PCMCIA modeme, odnosno mrežne karte.
- rc.serial
-
Konfiguriše vaš serijski port pokretanjem odgovarajuće setserial komande.
- rc.sysvinit
-
Traži System V init skripte namenjene odgovarajućem runlevel-u i
pokreće ih. O tome je detaljnije diskutovano u narednom odeljku.
Kada je inicijalizacija sistema završena, init prelazi
na runlevel inicijalizaciju. Runlevel opisuje stanje u kojem će se vaša
mašina naći. Zvuči izlišno? Dakle, runlevel govori init-u da li sistem da prihvati višekorisničko
prijavljivanje ili samo jednog korisnika, da li ili ne želite mrežne servise
ili ćete koristiti X Window sistem ili agetty(8) da rukuje
prijavljivanjima. Dole navedene datoteke definišu različite runlevel-e na
Slackware Linux-u.
- rc.0
-
Zaustavljanje sistema (runlevel 0). Podrazumevano, to je link ka rc.6 datoteci.
- rc.4
-
Višekorisničko pokretanje (runlevel 4), ali u X11 sa KDM, GDM, odnosno XDM
kao login menadžerom.
- rc.6
-
Restartovanje sistema (runlevel 6).
- rc.K
-
Pokretanje u modu jednog korisnika (runlevel 1).
- rc.M
-
Višekorisnički mod (runlevel-i 2 i 3), ali sa standardnom, tekstualno
baziranom, logovanju. Ovo je podrazumevani runlevel u Slackware-u.
Runleveli 2, 3 i 4 pokreću mrežne servise. Sledeći fajlovi su odgovorni
za inicijalizaciju mreže:
- rc.inet1
-
Kreiran netconfig komandom, ovaj fajl je odgovoran za
konfigurisanje aktuelnog mrežnog inerfejsa.
- rc.inet2
-
Pokreće se posle rc.inet1 a startuje osnovne
mrežne servise.
- rc.atalk
-
Pokreće AppleTalk servis.
- rc.httpd
-
Pokreće Apache web server. Kao i nekoliko drugih rc skriptova, ovaj skript se
može koristiti za stopiranje i ponovno startovanje datog servisa. rc.httpd uzima argumenat za stopiranje, startovanje, odnosno
restart.
- rc.news
-
Pokreće news server.
System V init kompatibilnost je uvedena u 7.0 verziji Slackware-a. Mnoge druge Linux
distribucije koriste ovaj stil umesto BSD stila. Ukratko, svakom runlevel-u je dodeljen
poddirektorijum za odgovarajuće init skripte, za razliku od BSD stila gde ima po
jedan skript za svaki runlevel.
rc.sysvinit skipt će da pretražuje /etc/rc.d direktorijum da bi se uverio da li postoje System V init
skriptovi i ukoliko su prisutni da ih pokrene u odgovarajućem runlevelu. Ovo
može biti od koristi za neke komercijalne softverske pakete koji ga koriste.
Skripte koje su izlistane dole su ostali skripte za inicijalizaciju. Njih uglavnom
pokreću neke od onih glavnih skripti koje su malopre opisane. Sve što je
potrebno da uradite je da uredite njihov sadržaj.
- rc.gpm
-
Pokreće servis za miša, generalne namene. Dozvoljava da kopirate i prenosite
mišem u Linux konzoli. Ponekad, gpm može da pravi probleme kada je pokrenut X
windows. Ukoliko iskusite takve probleme sa mišom pod X okruženjem,
pokušajte da stopirate gpm server.
- rc.font
-
Učitava vaš izabrani font namenjen za konzolu.
- rc.local
-
Sadrži sve specifične skripte vašeg sistema. Ova datoteka je prazna
posle sveže instalacije i namenjena je za lokalno administriranje. Ovaj skript se
pokreće na kraju, posle svih ostalih skirpti koji treba da se izvše.
Da biste omogućili skriptu, sve što je potrebno je da dodate dozvolu za
izvršavanje sa chmod komandom. Da biste onemogućili
skriptu, uklonite dozvolu za izvršavanje sa date datoteke. Za više informacija
o chmod komandi, pogledajte Section 9.2.
|
| |
|