logo
Etusivu
Käsikirja
Opinnäytetyö
Tiedostot
Linkit
Muuta

LeHTori

Käsikirja

2 FreeBSD Käyttöjärjestelmä

2.1 Esitellään FreeBSD

2.2 Asennetaan FreeBSD

2.3 Yleistä UNIX järjestelmistä

2.4 Peruskomennot

2.5 Komentotulkit

2.6 Ohjelmien asentaminen ja päivittäminen

2.7 Käynnistysjonot

2.8 Asetustiedostot

2.9 Levykiintiö eli quota

2.10 FreeBSD:n kerneli

2.11 Yhteyden jakaminen NATD:llä

2.12 Palomuuriohjelmistot

2.13 Cvsup ja verkosta päivittäminen

2.14 Käyttöjärjestelmän päivittäminen

2.15 XFree86 Ikkunointijärjestelmä

2.16 Sysinstall Ohjelmisto

2.17 Yleisiä ongelmia

2.18 Muuta

2.19 Levyjärjestelmän laitteiden-nimet

3 Asennetut palvelinohjelmistot ja niiden käyttäminen

3.1 Samba ja toimialuepalvelin

3.2 Squid, Internetin välityspalvelin (proxy)

3.3 Apache, Web-palvelin

3.4 Postfix, Sähköpostipalvelin

3.5 Popd, Sähköpostin hakupalvelin

3.6 Openwebmail

3.7 Bind9, DNS-palvelin

3.8 OpenSSH

3.9 OpenSSL sertifikaatti


2.6 Ohjelmien asentaminen ja päivittäminen

Pakettijärjestelmän käyttö

Ohjelmat Unix ja Linux ympäristössä

Unixin/Linux levitys tapahtuu yleensä eritavalla kuin Windows maailmassa, jossa kaikki ohjelmat asennetaan exe paketeista jotka purkavat itse itsensä. Unix / Linux puolella käytetään kolmea erilaista vaihtoehtoa ohjelmien levittämiseen. Pakettien hallinta eli paketti manageri, Lähdekoodi ja joskus valmiit binäärit.

Huonoja hyviä puolia Unixin paketointi systeemistä:

  • Ohjelmien asentaminen helppoa
  • Porteista asennettaessa optimaalisuus ja järjestelmän ajan tasalla pito
  • Hieman sekava aloittelijoille varsinkin asennettaessa paketteja vanhalla tavalla tai poistettaessa paketteja

Mitä ne paketit itse asiassa ovat?

Paketit ovat ohjelmia jotka ovat valmiiksi pakattu johonkin tiedostoon, jonka paketti manageri purkaa kiintolevylle kun paketti asennetaan. Käytännössä tämä merkitsee sitä, että ohjelmien asentamiseen käytetään aina samaa komentoa. Lisäksi FreeBSD sisältää portti paketti järjestelmän, jota mm Gentoo Linux on kopioinut omassa järjestelmässään. Paketit sisältävät usein joukon riippuvuuksia toisiin paketteihin, joka voi tuntua ensiksi hieman vaikealta.

Mikä on riippuvuus?

Riippuvuus syntyy paketissa yleisesti siitä, että paketin sisältämä ohjelma tarvitsee jotain toista ohjelmaa tai kirjastoa toimiakseen oikein. Nopea esimerkki tästä voisi olla vaikka k3b, joka on graafinen ohjelma ja sisältää monia muitakin riippuvuuksia. K3b on graafinen neron kaltainen cd-poltto ohjelma, joka käyttää GUI:n alla cdrecord ohjelmaa. Itse asiassa k3b onkin vain cdrecordin graafinen käyttöä helpottava sovellus. Täten k3b:tä ei voida asentaa ennen kuin cdrecord on asennettu järjestelmään.

Porttipakettijärjestelmä?

Portti paketti järjestelmä on näin nopeasti sanottuna kasa erilaisia komento jonoja, jotka osaavat kääntää ohjelman itse , tehdä siitä paketin ja asentaa sen kaikkine riippuvuuksineen. Etuna järjestelmässä on se, että ohjelmat voidaan tehdä suoraan koneellesi sopiviksi. Näin ne toimivat nopeammin ja tuovat sinulle lisää suorituskykyä. Portti järjestelmään on tehty työkalu nimeltä portupgrade, jolla voit pitää järjestelmäsi ohjelmat todella helposti ajan tasalla.

Huonoja- ja hyviäpuolia pakettijärjestelmästä

  • Pakettijärjestelmä on nopea
  • Helppo käyttää
  • Vähän ongelma tilanteita

Hyviäpuolia porttijärjestelmästä

  • Helppo pitää ajantasalla
  • Uusimmat ohjelmat löytyvät nopeasti
  • Helppo käyttöinen
  • Lisää suorituskykyä ohjelmille optiomoimalle ne järjestelmälle
  • Ohjelman löytäminen on helppoa portti puusta

Huonojapuolia porttijärjestelmästä

  • Ongelma tilanteet mikäli joku portti on rikki (voidaan korvata yleensä)
  • Vaatii paljon suorituskykyä käännettäessä sovellusta
  • Vaatii nettiyhteyden!

Ennen kuin aloitetaan käyttämään pakettijärjestelmää tärkeitä huomioita

Tiedä mitä asennat kun asennat ohjelman järjestelmääsi. Samalla asennetaan myös suuri määrä erilaisia kirjastoja. Joten maltti on valttia tässä asiassa, mikäli haluat pitää järjestelmässäsi siisitänä. Turhaa sinne levylle asentamaan kaikkea tarpeetonta, kun suunnitelet asentavasi sovelluksen tustustu sovellukseen etukäteen esimerkiksi sovelluksen netti sivulta ja harkitse asennusta kaksi kertaa. Varsinkin palvelimet on hyvä pitää siisteinä turhista sovelluksista yms.

Muista myös ne oikeudet pkg_add ja pkg_delete komento vaativat suorittamista pääkäyttäjänä, koska peruskäyttäjänä ei ole oikeuksia kirjoittaa /usr/ hakemistoon!

Pakettijärjestelmän käyttö pkg_add

Mikäli haluat asentaa jonkun fyysisen paketin, jonka olet ladannut systeemisi levylle "pkg_add paketti" voit suorittaa asennuksen. Tällöin ohjelma kertoo sinulle kaikista tarvittavista riippuvuuksista, mikäli niitä on. (Ohjelma ei ennen, kuin kaikki riippuvuudet on täytetty).

Uudempi ja parempi tapa asentaa paketteja järjestelmääsi pkg_add komennolla.

-rOhjelma hakee järjestelmääsi ohjelman suoraan netistä täyttäen kaikki riippuvuudet itse.
-fPakota asentamaan paketti (ohittaa riippuvuudet) "älä käytä tästä tulee ongelmia rikkinäisiä ohjelmia yms"
-iPoista asennus scripit käytöstä (Voi aiheuttaa ongelmia asennetun ohjelman toimintaan.)

Lista jo järjestelmääsi asennetuista ohjelmista

pkg_info komenolla saadaan kätevästi tietoja paketeista asennetuista ohjelmista

-aNäytä kaikkien pakettien kaikki tiedot
-vPaketin koko tiedot "näyttää kuvauksen, riippuvuudet, tiedostot joita paketti on luonut koneellesi." (huom tämä parametri vaatii paketin nimeä esim. pkg_info -v gimp-gnome-2.0.0_2,1)
-DNäytä asennuksen viestit (vaatii paketin nimen)
-dNäytä paketin kuvauksen tiedot (vaatii paketin nimen)
-sNäyttää paketin käyttämän tilamäärän kun se on asennettuna järjestelmään kilotavuina (mb 1024 kt) (vaatii paketin nimen)
-rNäytä paketit jotka tarvitsevat sovellusta koneellasi

Vinkki: mikäli haluat etsiä jotain tiettyä pakettijärjestelmästäsi voit kokeilla pkg_info |grep ohjelma . grep komento "etsii" merkki jonoa tulevasta listauksesta ja tulostaa vain ne rivit ohjelma merkki jono täsmäsi. "ei sana kirjain tarkka haku" eli voit voit hakea esim pkg_info |grep gimp jolloin saat kaikki paketit joissa esiintyy gimp sana. Lisää grep:in käytöstä grepi:stä kertovasta ohjeesta.

Paketin poistaminen (toimii myös porteista käännetyille paketeille) pkg_delete.

Huomioitavaa pakettejen poistamisesta. !Lue koko kappale ennen kuin alat toimimaan! suosittelen katsomaan pkg_info -r poistettava_paketti kuinka paljon ala riippuvuuksia paketissa on. mikäli alariippuvuuksilla ei ole mitään tärkeitä riippuvuuksia sinulle tärkeisiin ohjelmiin voit poistaa riippuvuuden ylhäältä alas päin huoletta..

Ohjelman poistossa yleensä kannattaa huomioida:

  • Tarvitseeko joku toinen sovellus kyseistä ohjelmaa.
  • Entä riippuudet (Voitko poistaa riippuvuuksia joita nykyinen pakettisi tarvitsee)
  • Käynnistys scriptat "mikäli ohjelmaa ajatetaan automaattisesti"

Kun olet päättynyt poistaa jonkun paketin koneeltasi. voit tehdä sen pkg_delete paketin-nimi-kokonaan. Eli esimerkiksi

esimerkki. pkg_delete wget-1.8.2_6

Huom. pkg_delete wget ei toimisi!! järjestelmä tarvitsee nimen kokonaan toisin kuin asennettaessa paketteja "pkg_add -r" komennolla. Eli Sinne tulee nyt myös tuo versio numero perään. Niin järjestelmä tietää mitä pakettia ollaan poistamassa.

pkg_delete komentoa käytetään jonkin yksittäisen paketin tai useampien pakettejen poistamiseen.

pkg_delete komennon lisäparametreja (tarvitaan todella harvoin yleensä ovat vaarallisia käyttää)

-aTämä poistaa kaikki paketit järjestelmästäsi .. (poistaa kaiken paitsi itse perusjärjestelmän)
-iKysyy käyttäjältä ennen paketin poistamista
-DMikäli paketti sisältää poisto komentojonon älä suorita sitä
-nÄlä todellisuudessa poista pakettia vaan raportoi poistoon liittyvät komennot "mitä tapahtuu komentoina kun paketti poistetaan"
-rPoistaa paketin ja kaikki paketit jotka tarvitsevat kyseistä pakettia riippuvuutena

Varoituksia: pkg_delete -a tekee aika sileää jälkeä nopeasti ohjelmistasi, pkg_delete -r komentoa käytettäessä täytyy olla todella varovainen. mikäli nappaat jonkun esimerkiksi paketin jolla on paljon riippuvia. Kaikki paketit hierarkiassa tulevat POISTETTAVAKSI alhaalta ylös!

Joten varovaisuutta.

Porttijärjestelmän käyttö

Portti järjestelmän asentaminen ja päivittäminen

Mikäli et ole asentanut portti järjestelmää tai sinulla on jo järjestelmä koneessasi tai sinulla on jo vanhentunut listaus käytössäsi "lista päivittyy kokoajan netissä". Suosittelen sinua tekemään päivitystiedoston porttaus listalle. niin saat viimeisimmän listan.

Pikaohje portti listan hakemiseen ja päivittämiseen

Asennetaan cvsup

Asenna cvsup, paketista jos sinulla ei ole portti listaa asennettuna /usr/ports hakemistossa.

paketista: pkg_add -r cvsup-without-gui

kirjoita: rehash jotta järjestelmäsi osaa hakea cvsup:ia (päivittää järjestelmän hakemistoista löytyvien ohjelmien sisällön)

portti-listasta: cd /usr/ports/net/cvsup-without-gui && make install && make distclean mikäli ongelmia ei ollut ei tullut erroreita ja pkg_info:lla katsottuna löydät listasta työkalun cvsup-with-gui

kirjoita: rehash jotta järjestelmäsi osaa hakea cvsup:ia kirjottaessa cvsup (päivittää dirrejen sisällön)

cvsup /usr/share/exsamples/cvsup/ports-supfile -h cvsup.fi.freebsd.org

Suosittelen sinua kuitenkin lukemaan cvsup kappaleen läpi, jossa neuvotaan cvsup tiedostojen tekeminen. Lue lisäksi binäärejen optimoinnista kappale (make.conf).

Porttipuu ja porttien asentaminen

Kuinka etsin ohjemaa porttipuusta?

voit kysyä järjestelmältä: whereis ohjelma. jolloin järjestelmä kertoo sinulle ohjelman sijainnin joko asennetun tai porttipuun sijainnin. Voit myös mennä /usr/ports ja etsiä haluamaasi ohjelmaa seuraavalla komennolla "make search key=hakuehto" tämä komento edellyttää sinulta kuitenkin sitä että olet "/usr/ports" hakemistossa.

Miten portit ovat järjesteltynä porttipuussa?

Portit porttipuussa ovat järjesteltynä niiden kategorian mukaan. Esim. irc:een käyttöön liittyvät portit löytyvät /usr/ports/irc/ kansiosta tai sähköpostiin liittyvät portit /usr/ports/mail/.

Kuinka asennan portin?

make komentoa portin kohdalla käytetään kääntämään kyseinen portti binaariksi. (kääntää ja asentaa kaikki ohjelman riippuvuudet)

make install komentoa käytetään asentamaan ohjelma (voit käyttää myös make install jolloin ohjelma kääntyy ja asennetaan paikoilleen.)

Kuinka siivoan käännetyt portit?

make clean siivoaan hakemiston riippuvuuksineen puhtaaksi, josta porttisi käännettiin. (ei poista distfileä)
make distclean poistaa myös lähdekoodin, jota kääntämisessä käytettiin.

Ohjelman poisto porttipuun, portista?

"make deinstall" Komento poistaa asennetun ohjelman, mikäli olet asentanut sen porttipuusta.

Suosittelen käyttämään pkg_delete komentoa.

Porttipuussa olevat tiedostot

MakefileAsennus komentojono
pkg-descKuvaus ohjelmasta
pkg-plistMinne asennetaan mitäkin kun ohjelma asennetaan. Joskus pkg-plist sisältää pkg-plist.alpha esim."Minne alpha koneilla tiedostot asennetaan"
distinfoTietoja lähdekoodista jonka komentojono hakee (aitouden varmistus MD5 avaimella ja koonperusteella) paketista
README.htmlTietoa portista netistä. (voit katsella esim. lynx README.html)

Ohjelmiston päivittäminen porttipuusta portupgrade työkalulla

Mitä tarvitset?

Tarvitset portupgrade työkalun, jolla päivitys onnistuu helposti ja vaivatta.

Kuinka Asennan portupgrade työkalun?

Porteista:

mene cd /usr/ports/sysutils/portupgrade
Asennuksen käynnistys : make install && make distclean
Tämän jälkeen kirjoitat: rehash (päivität systeemisi "ohjelma listan")

Paketeista:

pkg_add -r portupgrade
rehash

Kuinka käytän portupgrade työkalua?

Portupgraden toiminta perustuu siihen, että se vertaa asennetun paketin versioita porttilistan tai paketin asennettavan paketin versioon, mikäli porttilistassa oleva portti on uudempi kuin nykyinen asennettu paketti voidaan rakentaa ohjelma uudelleen lähdekoodista ja korvata vanha.

Yleisimmät parametrit:

^M ^M
--helpNäyttää avut
-h
-aTee kaikille paketeille jotka ovat asennettu
--all
-A komentoAja määritetty komento pääkäyttäjän jokaisen asennuksen jälkeen
--afterinstall komento
-bPidä varmuuskopiot vanhoista versioista. Vanhat paketit säilytetään väliaikaishakemistossa. Selvitä PKG_TMPDIR ja TMPDIR käyttöympäristömuuttujat.
--backup-packages
-CTee make clean jokaisen asennuksen jälkeen (tämä on oletuksena päällä vaikka et käyttäisikään tätä parametria)
--cleanup
-DPoistaa vialliset "distfilesit" ja yrittää uudelleen jos tarkastus epäonnistuu. Määrittää kaksi kertaa, "make distclean" komennon ennen kuin noutaa tai rakentaa porttia.
--distclean
-fPakota päivittämään vaikka porttipaketti olisikin vanhempi kuin nykyinen asennettu.
--force
-FHakee porttien "distfilet" elikkä lähdekoodit, joita portti tarvitsee kääntyäkseen.
--fetch-only
-iInteraktiivinen tila esittää kysymyksiä ennen jokaista päivitystä "päivitetäänkö seuraava ohjelma"
--interactive
-kPakota päivittämään, vaikka jokin päivitettävän paketin rakentaminen epäonnistuu. (päivitys jatkuu vaikka rakennus epäonnistuu. Ei riko paketteja) . Ohitetaan vain paketti jota ei voida päivittää.
--keep-going
-l tidostoTallennetaan tulokset tiedostoon mitä tehtiin.
--results-file tiedosto
-mMääritä argumentit jotka lisätään joka käännössä komentoriviltä
--make-args
-nÄlä todellisuudessa asenna tai päivitä yhtään pakettia. Näytä vain mitä saatiin tehtyä.
--noexecute
-NAsenna uusipaketti, "kun pakettia ei ole asennettu" kaikki tarvittavat paketit päivitetään (eli suomeksi mikäli sinulla on esim. apache joka on poistettu ja haluat päivittää ja uudelleen asentaa ohjelman kirjoitat portupgrade -No apache tällöin apache paketti asennetaan uutena pakettina ja sen vanhan riippuvuudet päivitetään.
--new
-oMääritä päivitettävä paketti tai paketteja
--origin
-rRekursiivinen (päivittää myös paketin riippuvuudet)
--recursive
-RRekursiivinen ylhäätä päin
--upward-recursive
-sSuorittaa komennot sudolla
--sudo
-vNäytä tietoja
--verbose
-wÄlä suorita make clean komentoa ennen jokaista kääntöä
--noclean
-WÄlä suorita make clean komentoa asennuksen jälkeen
--nocleanup
-yVastaa kaikkiin komentoihin kyllä
--yes
-PKäytä paketteja porttejen sijasta jos on mahdollista, mikäli haluat määrittää työkalun käyttämään vain paketteja määritä -PP tällöin syrjäytät portit
--use-packages

Vinkki : portupgraden käyttäminen voi tuntua hankalalta jota se ei kuitenkaan ole. Itse olen yleensä käyttänyt "portupgrade -arRvk" komentoa päivittämiseen. (katso parametrit listasta, voit joskus tarvita muitakin kuin -arRvk) parametreja.

Mitä jos jokin menee pieleen, eikä päivitys käynnisty?

Joskus päivittäminen ei käynnisty johtuen, paketti listan olemisesta jäljessä edellisestä päivityksestä. Tällöin järjestelmä yleensä pyytää sinut ajamaan pkgdb -F komentoa . Kyseisellä käskyllä editoidaan "pkg tietokantaa, jossa ohjelmapakettien nimet löytyvät". Yleensä portupgrade tarjoaa sinulle viimeisellä rivillään pkgdb komentoa jolla voit eheyttää tietokantasi.

"pkgdb"

-aAutomaattinen korjaus jolloin -F on määritetty (korjaa vain eroavaisuudet paketeista esim. versiot)
-FKorjaa tietokanta interaktiivisesti (kysyy kysymyksiä)
-uPäivittää ja luo pakettitietokanta tiedoston pkgdb.db $PKG_DBDIR polkuun, joka sijaitsee oletuksena /var/db/pkg hakemistossa vakiona.
-vNäytä tietoja

Vinkki:

ctlr+d voi auttaa joskus kun paketin vanha riippuvuus halutaan poistaa. Lue kuitenkin tarkasti kysymykset joita pkgdb sinulle esittää. "Voit vastata kysymyksiin yleensä myöntävästi"

"portsclean" Porttipuun siivoamistyökalu. Tällä ohjelmalla puhdistat kääntämisessä käytetyt tiedostot pois. Ne vievät koneestasi usein hyvinkin paljon levytilaa, esim. "Openoffice 1.1" 4 gt, valmis binaari 120 mt ja lähdekoodi noin 100 mt.

-CPoista kaikki porttipuun kääntötiedostot.
-DPoistaa myös "distfilet" porteista (lähdekoodin paketin, jonka portti kääntää binaariksi")
-iInteraktiivinen tila (kyselee ennen poistoa poistetaanko kyseisen hakemiston tietoja)
-nÄlä poista mitään "oikeasti" (virtuaalinen poisto)
daemon

Tero Asikainen, Mika Mähönen ja Markku Hämäläinen