[ edellinen ] [ Sisällys ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ seuraava ]


Debian-referenssi
Luku 2 - Debianin perusteet


Tämä kappale tarjoaa tavallisille käyttäjille perustietoa Debian käyttöjärjestelmästä. Virallista tietoa löydät seuraavista oppaista:

Nämä on listattu kappaleessa References, Kohta 15.1.

Jos etsit yleisluontoisempia selityksiä ja esimerkkejä, katso lukua Debianin pakettienhallinta, Luku 6 tai muita relevantteja lukuja.

Tämä luku perustuu "Debian FAQ" -oppaaseen. Debian-ylläpitäjien alkuun pääsemisen helpottamiseksi ohjeiden järjestystä on muutettu huomattavasti


2.1 Debian-arkistot


2.1.1 Hakemistorakenteet

Debiania varten pakatut ohjelmat ovat saatavissa FTP:llä tai HTTP:llä jokaiselta Debianin peilipalvelimelta jostain hakemistopuusta.

Seuraavat hakemistot löytyvät jokaiselta Debianin peilipalvelimelta hakemiston debian alta.

dists/:

Tässä hakemistossa ovat "jakeluversiot" ja täältä hakeminen oli ennen kanoninen tapa saada tarjolla olevia Debianin julkaisuversioiden paketteja. Joitain vanhoja paketteja sekä tiedostot Contents-*.gz ja Packages.gz löytyvät vielä täältä.

pool/:

Debianin julkaisuversioiden kaikkien pakettien uusi fyysinen sijainti.

tools/:

DOS-apuohjelmia käynnistyslevykkeiden tekemiseen, kiintolevyn osiointiin, tiedostojen pakkaamiseen ja purkamiseen sekä Linuxin käynnistämiseen

doc/:

Debianin perusdokumentaatio, kuten FAQ (usein kysytyt kysymykset), ohjeet ohjelmavirheiden ilmoittamiseen, jne.

indices/:

Tiedosto pakettien ylläpitäjistä ja override-tiedostot.

project/:

Lähinnä ohjelmakehittäjille tarkoitettua materiaalia, kuten:

project/experimental/:

Tämä hakemisto sisältää paketit ja apuohjelmat, joita kehitetään edelleen ja jotka ovat vielä alfa-testausvaiheessa. Näitä paketteja ei tulisi käyttää, koska ne voivat olla vaarallisia ja haitallisia jopa kokeneimmille käyttäjille.

project/orphaned/:

Paketit, jotka niiden ylläpitäjä on hylännyt, ja jotka on poistettu jakelusta.


2.1.2 Debianin jakeluversiot

Normaalisti dists hakemistossa on kolme Debianin jakeluversiota. Niiden nimet ovat stable (vakaa), testing (testattava) ja unstable (epävakaa) jakelu. Joskus siellä oli myös frozen (jäädytetty) jakeluversio (joka nykyään on vain testing-version tietty kehitysvaihe). Kukin jakeluversio on määritelty symbolisena linkkinä koodinimellä varustettuun hakemistoon dists-hakemistossa.


2.1.3 stable-jakeluversio

stable-jakeluversioon, Debian Sarge (3.1r0), lähetetyt paketit tallennetaan stable-hakemistoon (joka on symbolinen linkki hakemistoon sarge/).

Ylläolevien sijaintien lisäksi fyysiset paketit sijaitsevat nykyään hakemistossa pool (pool-hakemisto, Kohta 2.1.10).

stable-jakelun tämänhetkiset ongelmat raportoidaan verkkosivulla Stablen ongelmat.


2.1.4 testing-jakeluversio

testing-jakeluversioon, Debian Etch, lähetetyt paketit tallennetaan testing-hakemistoon (joka on symbolinen linkki hakemistoon etch/), kun niitä on jonkin aikaa testattu unstable-jakelussa. Fyysiset paketit sijaitsevat nykyään hakemistossa pool (pool-hakemisto, Kohta 2.1.10). testing/-hakemistossa on myös alihakemistot main, contrib ja non-free, jotka vastaavat stable/-jakelun alihakemistoja.

Näistä paketeista tulee aina olla sama versio kaikilla laitearkkitehtuureilla, joilla ne on käännetty ja pakettien tulee olla asentuvia. Niissä tulee myös olla vähemmän julkaisukriittisiä virheitä kuin unstable-jakelussa olevissa versioissa. Tällä pyritään siihen, että testing-jakelu olisi aina lähes valmis julkaisuversiokandidaatti. Lisää tietoa testausmekanismeista on sivulla http://www.debian.org/devel/testing.

testing-jakelun tilasta kerrotaan seuraavilla sivuilla:


2.1.5 unstable-jakeluversio

unstable-jakeluversioon, jonka nimi on aina "Sid", lähetetyt paketit tallennetaan unstable-hakemistoon (joka on symbolinen linkki hakemistoon sid/), kun ne kopioidaan Debian-arkistoon. Paketit pysyvät hakemistossa kunnes ne siirretään testing/-hakemistoon. Fyysiset paketit sijaitsevat nykyään hakemistossa pool (pool-hakemisto, Kohta 2.1.10). unstable/-hakemistossa on myös alihakemistot main, contrib ja non-free, jotka vastaavat stable/-jakelun alihakemistoja.

unstable-jakelu on vedos uusimmasta kehitysversiosta. Käyttäjät ovat tervetulleita testaamaan ja käyttämään näitä paketteja, mutta paketit eivät välttämättä ole kovin valmiita. unstable-jakelun käytön etu on se, että käytössäsi on aina Debian-projektin uusin versio; haittapuoli on se, että jos jokin hajoaa, olet omillasi.

unstable-jakelun virheiden tilaa raportoidaan verkkosivulla Unstablen ongelmat.


2.1.6 frozen-jakeluversio

Kun testing-jakelu on tarpeeksi hyvässä kunnosssa, se jäädytetään, mikä tarkoittaa ettei siihen hyväksytä enää uutta koodia, vaan ainoastaan mahdollisia virheiden korjauksia. Tällöin myös luodaan uusi testing-hakemisto dists-hakemistoon ja sille annetaan uusi koodinimi. Jäädytettyä jakeluversiota testataan muutaman kuukauden ajan muuttaen ja testaten sitä vuorotellen "testisykleissä".

Jäädytetyn jakelun yhteydessä pidetään kirjaa pakettien virheistä, jotka voivat viivästyttää paketin julkaisua tai estää koko jakelun julkaisun. Kun virheiden määrä laskee alle hyväksyttävän enimmäismäärän, jäädytetystä jakelusta tulee uusi stable, se julkaistaan ja edellinen vakaa jakelu jää käytöstä (ja se siirretään arkistoon).


2.1.7 Debianin jakeluversioiden koodinimet

Fyysiset hakemistonimet dists-hakemistossa, kuten sarge/ ja etch/, ovat vain "koodinimiä". Kun Debianin jakelu on kehitysvaiheessa, sillä ei ole versionumeroa vaan koodinimi. Näiden koodinimien tarkoituksena on tehdä Debianin jakeluiden peilaamisesta helpompaa. (Jos todellisen hakemiston kuten unstable:n nimi vaihtuisi yhtäkkiä stable/:ksi, paljon tavaraa tarvitsisi turhaan ladata uudestaan.)

Tällä hetkellä stable/ on symbolinen linkki hakemistoon sarge/ ja testing/ on symbolinen linkki hakemistoon etch/. Tämä tarkoittaa, että Sarge on tämänhetkinen vakaa jakeluversio ja Etch on tämänhetkinen testattava jakeluversio.

unstable/ on pysyvä linkki hakemistoon sid/, koska epävakaa jakeluversio on aina nimeltään Sid.


2.1.8 Aikaisemmin käytetyt koodinimet.

Seuraavat koodinimet on jo käytetty: "Buzz" versiolle 1.1, "Rex" versiolle 1.2, "Bo" versiolle 1.3.x, "Hamm" versiolle 2.0, "Slink" versiolle 2.1, "Potato" versiolle 2.2, "Woody" versiolle 3.0 ja "Sarge" versiolle 3.1.


2.1.9 Koodinimien lähde

Tähän mennessä kaikki koodinimet ovat Pixarin elokuvasta Toy Story.


2.1.10 pool-hakemisto

Aikaisemmin paketit olivat dists-hakemiston alihakemistoissa sen mukaan mihin jakeluversioon ne kuuluivat. Tästä aiheutui erinäisiä ongelmia, muun muassa suuria latausmääriä peilipalvelimilla, kun suuria muutoksia tehtiin.

Nykyään paketit pidetään suuressa "altaassa", joka on organisoitu lähdekoodipakettien nimien mukaan. Jotta allas olisi hallittavissa, se on jaettu osaston (main, contrib ja non-free) ja lähdekoodipaketin nimen ensimmäisen kirjaimen mukaan alihakemistoihin. Näissä hakemistoissa on useita tiedostoja: binääripaketit jokaiselle laitearkkitehtuurille ja lähdekoodipaketit, joista binääripaketit on käännetty.

Kunkin paketin sijainti löytyy komennon apt-cache showsrc paketin-nimi tulosteen riviltä "Directory:". Esimerkiksi apache-ohjelman paketit löytyvät hakemistosta pool/main/a/apache/. Koska lib*-nimisiä paketteja on niin paljon, niitä käsitellään hieman eri tavalla. Esimerkiksi libpaper-paketit ovat hakemistossa pool/main/libp/libpaper/.

Jotkin ohjelmat, kuten apt, käyttävät dists-hakemistoja edelleen tiedostojen indeksoimiseen.

Normaalisti käyttäjän ei tarvitse huolehtia näistä, sillä uudempi apt -ohjelma ja luultavasti myös vanhempi dpkg-ftp-ohjelma hoitavat kaiken automaattisesti. Lisätietoa löytyy dokumentista RFC: implementation of package pools.


2.1.11 Sid-jakelun historiaa

Kun nykyistä Sidiä ei ollut, Debianin arkistosivuston organisoinnissa oli yksi suuri ongelma: oletuksena oli, että kun arkkitehtuuri lisättiin sen hetkiseen unstable/-hakemistoon, se julkaistaisiin kun kyseisestä jakelusta tulisi uusi stable. Monien arkkitehtuurien kohdalla näin ei käynyt ja hakemistoja piti siirtää julkaisun aikaan. Tämä oli epäkäytännöllistä, koska siirto kulutti paljon siirtokapasiteettia.

Arkiston ylläpitäjät kiersivät ongelmaa useita vuosia laittamalla julkaisemattomien arkkitehtuurien binääreitä erityiseen hakemistoon nimeltä sid. Kun jokin arkkitehtuuri julkaistiin ensimmäisen kerran, sen hetkisestä stable/-hakemistosta oli linkki hakemistoon sid/ ja siitä eteenpäin binäärit luotiin normaalisti unstable/-hakemistoon. Tämä malli oli käyttäjille jossain määrin hämmentävä.

Siirryttäessä pakettialtaisiin (katso pool-hakemisto, Kohta 2.1.10) Woody-julkaisuversion kehityksen aikaan, binääripaketteja alettiin säilyttää kanonisessa paikassa altaassa riippumatta jakelusta. Tällöin version julkaisu ei enää aiheuta suuria latausmääriä (vaikka kehityksen aikana siirtokapasiteetin kulutus onkin suurempaa).


2.1.12 Palvelimelle ladatut paketit incoming/-hakemistossa.

Palvelimelle ladatut paketit laitetaan hakemistoon http://incoming.debian.org/, kun on ensin tarkistettu, että ne todella tulevat joltain Debian-kehittäjältä. (Ne laitetaan alihakemistoon DELAYED, jos lataaja ei ole kyseisen paketin ylläpitäjä (ns. Non-Maintainer Upload eli NMU).) Kerran päivässä paketit siirretään hakemistosta incoming/ hakemistoon unstable.

Hätätilanteessa saatat haluta asentaa paketteja hakemistosta incoming/ jo ennen kuin ne ehtivät hakemistoon unstable/.


2.1.13 Vanhempien pakettien hakeminen

Uusimpia Debian-jakeluita säilytetään debian-hakemistossa jokaisella Debian-peilipalvelimella, kun taas vanhempien Debian-jakeluiden, esimerkiksi Slinkin, arkistoja säilytetään osoitteessa http://archive.debian.org/ tai hakemistossa debian-archive Debianin peilipalvelimilla.

Vanhemmat testing- ja unstable-paketit löytyvät osoitteesta http://snapshot.debian.net/.


2.1.14 Laitearkkitehtuuriosiot

Jokaisen päähakemistopuun (dists/stable/main, dists/stable/contrib, dists/stable/non-free, dists/unstable/main, jne.) sisällä binääripakettien kuvaukset ovat alihakemistoissa, joiden nimet kertovat laitearkkitehtuurin, jota varten paketit on käännetty.

Huomaa, että todelliset binääripaketit eivät nykyään enää ole näissä hakemistoissa vaan päätason pool-hakemistossa. Indeksitiedostot (Packages ja Packages.gz) on jätetty hakemistoihin taaksepäin yhteensopivuuden takaamiseksi.

Lista tuetuista laitearkkitehtuureista löytyy kunkin jakeluversion julkistusmuistiosta (stable, testing).


2.1.15 Lähdekoodi

Debian-systeemin kaikkien osien lähdekoodi on sisällytetty järjestelmään. Lisäksi useimpien järjestelmän ohjelmien lisenssi vaatii, että niiden lähdekoodia levitetään ohjelman mukana tai että ohjelman mukana kerrotaan kuinka lähdekoodin voi saada.

Yleensä lähdekoodeja pidetään joko source-hakemistoissa, jotka sijaitsevat kaikkien arkkitehtuurispesifisten binäärihakemistojen rinnalla, tai nykyään pool-hakemistossa (Kts. pool-hakemisto, Kohta 2.1.10). Hakeaksesi paketin lähdekoodin tuntematta Debian-arkiston rakennetta, käytä komentoa apt-get source paketin-nimi.

Jotkin paketit, esimerkiksi pine, ovat saatavissa ainoastaan lähdekoodipakettina lisenssirajoitusten takia. (Äskettäin Pinen asennusta helpottamaan on luotu paketti pine-tracker.) Kappaleissa Paketin sovittaminen stable-järjestelmään, Kohta 6.4.10 ja Packaging, Kohta 13.10 kerrotaan tavoista kääntää paketti manuaalisesti.

Hakemistoissa contrib ja non-free olevien, muodollisesti Debian-järjestelmään kuulumattomien, pakettien lähdekoodi saattaa olla saatavissa tai sitten ei.


2.2 Debianin pakettienhallintajärjestelmä


2.2.1 Debian-pakettien yleiskuvaus

Paketit yleensä sisältävät kaikki joidenkin tiettyjen komentojen tai ominaisuuksien toteuttamiseen tarvittavat tiedostot. Debian-paketteja on olemassa kahdenlaisia:

Ohjelmia asennettaessa pakettienhallintajärjestelmä käyttää pakettien ylläpitäjien asettamia "riippuvuuksia". Nämä riippuvuudet kuvataan jokaisen paketin mukana olevassa control-tiedostossa. Esimerkiksi GNU C-kääntäjän sisältävä paketti (gcc) on riippuvainen paketista binutils, joka sisältää linkittäjän ja kokoajan. Jos käyttäjä yrittää asentaa paketin gcc asentamatta ensin pakettia binutils, pakettienhallintajärjestelmä (dpkg) pysähtyy ja tulostaa virheilmoituksen jossa se kertoo tarvitsevansa myös paketin binutils. Käyttäjän on kuitenkin mahdollista ohittaa tämä toiminnallisuus (kts. dpkg(8)). Lisätietoja löytyy alta kappaleesta Pakettien riippuvuudet, Kohta 2.2.8.

Debianin paketointityökaluja voidaan käyttää


2.2.2 Debian-pakettien formaatti

Debianin "paketti" eli pakattu tiedosto sisältää tiettyyn ohjelmistoon tai toisiinsa liittyviin ohjelmiin kuuluvia suoritettavia tiedostoja, ohjelmakirjastoja ja dokumentaatiota. Yleensä Debianin pakettien tiedostopääte on .deb. [1]

Debianin binääripakettien sisällön formaatti on kuvattu ohjesivulla deb(5). Koska pakettien tämä sisäinen formaatti saattaa vaihtua (Debianin julkaisuversioiden välillä), käytä aina ohjelmaa dpkg-deb(1) .deb-tiedostojen muuttamiseen.

Ainakin Sarge-jakelussa kaikkia Debian-paketteja on voinut käsitellä Unixin peruskomennoilla ar ja tar, vaikka dpkg-komennot eivät olisi käytettävissä.


2.2.3 Debianin pakettitiedostojen nimeämiskäytännöt

Debian-pakettien tiedostonimet noudattavat seuraavaa käytäntöä:

     foo_ver-muut_ark.deb

jossa, yleensä, foo on paketin nimi, ver on ohjelman versionumero, muut on Debian-version muutosnumero ja ark kohdelaitearkkitehtuuri. Pakettien nimiä on tietysti helppo muuttaa. Tiedoston tiedostonimi todella sisältämän paketin saat selville komennolla:

     dpkg --info tiedostonimi

Debian-version muutosnumeron määrittää Debian-kehittäjä, tai kuka tahansa paketin paketoi. Muutosnumeron muuttaminen yleensä merkitsee, että paketointitapa on jollain tavalla muuttunut.


2.2.4 Paikallisten asetusten säilyttäminen

Paikallisen ylläpitäjän muokattaviksi tarkoitettuja tiedostoja säilytetään hakemistossa /etc/. Debianin politiikka on, että kaikki paikallisesti muokattavien tiedostojen muutosten tulee säilyä pakettien päivityksessä.

Jos paikallisesti muokattavan tiedoston oletusversio toimitetaan paketissa itsessään, tiedosto listataan "asetustiedostona". Pakettienhallintajärjestelmä ei kysymättä ylläpitäjän lupaa päivitä asetustiedostoja, joita ylläpitäjä on edellisen asennuksen jälkeen muokannut. Toisaalta, jos ylläpitäjä ei ole muokannut asetustiedostoa, se päivitetään muun paketin mukana. Lähes aina tämä on toivottavaa ja siksi asetustiedostoihin tehtävät muutokset kannattaa minimoida.

Pakettiin kuuluvat asetustiedostot voi listata ajamalla seuraavan komennon.

     dpkg --status paketti

Lista löytyy riviltä: "Conffiles:".

Lisätietoja asetustiedostoista löytyy dokumentista Debian Policy Manual kappaleesta "Configuration files". (Kts. References, Kohta 15.1).


2.2.5 Debianin ylläpitoskriptit

Debianin ylläpitoskriptit ovat suoritettavia komentotiedostoja, jotka ajetaan automaattisesti ennen tai jälkeen paketin asennuksen. Nämä tiedostot yhdessä control-nimisen tiedoston kanssa muodostavat Debian-paketin "hallintaosion" (control section).

Ylläpitotiedostoja ovat:

preinst

Tämä skripti suoritetaan ennen kuin Debian-paketin (.deb/) purkamista. Monet "preinst"-skriptit pysäyttävät päivitettäviin paketteihin liittyvät ajossa olevat palvelut kunnes asennus tai päivitys on valmis (eli "postint"-skripti on onnistuneesti suoritettu).

postinst

Tämä skripti tyypillisesti saattaa loppuun kaikki paketin tarvitsemat asetusten määrittelyt sen jälkeen, kun Debian-paketti (.deb) on purettu. Usein "postinst"-skriptit pyytävät käyttäjältä syötteitä ja varoittavat käyttäjää siitä, että jos tämä hyväksyy oletusasetukset, hänen tulisi muistaa määrittää asetukset myöhemmin tarvittaessa uudelleen. Monet "postinst"-skriptit myös suorittavat tarvittavat komennot pakettiin liittyvien palveluiden käynnistämiseksi asennuksen tai päivityksen jälkeen.

prerm

Tämä skripti tyypillisesti pysäyttää kaikkien pakettiin liittyvät taustaohjelmat. Skripti suoritetaan ennen pakettiin liittyvien tiedostojen poistamista.

postrm

Tämä skripti tyypillisesti muokkaa pakettiin liittyviä linkkejä ja muita tiedostoja tai poistaa paketin luomia tiedostoja. (Kts. myös Virtuaaliset paketit, Kohta 2.2.7.)

Nykyään kaikki hallintatiedostot löytyvät hakemistosta /var/lib/dpkg/info. Pakettiin foo liittyvien tiedostojen nimi alkaa "foo" ja niiden tiedostopääte on "preinst", "postinst", jne. Samassa hakemistossa oleva tiedosto foo.list listaa kaikki paketin foo kanssa asennetut tiedostot. (Huomaa, että näiden tiedostojen sijainti on ohjelman dpkg määrittelemä ja saattaa muuttua.)


2.2.6 Pakettien prioriteetit

Jokaiselle Debian-paketille annetaan jakelun ylläpitäjien toimesta prioriteetti auttamaan pakettienhallintajärjestelmää. Prioriteetteja ovat:

Huomaa erot pakettikuvauksissa seuraavien välillä: "Priority: required", "Section: base" ja "Essential: yes". "Section: base" tarkoittaa, että paketti asennetaan ennen kaikkea muuta uudessa järjestelmässä. Useimmilla "Section: base"-paketeilla on "Priority: required" tai ainakin "Priority: important" ja monet niistä on merkitty tunnisteella "Essential: yes". "Essential: yes" tarkoittaa, että poistettaessa pakettia järjestelmästä pakettienhallintaohjelmalle kuten dpkg täytyy antaa ylimääräinen pakotusvalitsin, jotta poisto onnistuu. Esimerkiksi paketeilla libc6, mawk ja makedev on "Priority: required" ja "Section: base", mutta ei tunnistetta "Essential: yes".


2.2.7 Virtuaaliset paketit

Virtuaalinen paketti on yleinen nimi, jolla tarkoitetaan mitä tahansa yhtä pakettia joukosta paketteja, jotka kaikki tarjoavat saman perustoiminnallisuuden. Esimerkiksi ohjelmat tin ja trn ovat molemmat tarkoitettu uutisryhmien lukemiseen ja niinpä kumpi tahansa niistä täyttää sellaisen ohjelman tarpeen, joka toimiakseen vaatii, että järjestelmässä on uutisryhmien lukuohjelma. Näin ollen molempien ohjelmien sanotaan tarjoavan virtuaalisen paketin nimeltä news-reader (uutislukija).

Vastaavasti monet paketit kuten exim, exim4, sendmail ja postfix tarjoavat toiminnallisuuden sähköpostin välitykseen. Niinpä sanotaan, että ne tarjoavat virtuaalisen paketin mail-transport-agent (sähköpostin välitysohjelma). Jos mikä tahansa niistä on asennettuna, tämän virtuaalisen paketin olemassaolo riittää ohjelmalle, jolle on määritelty riippuvuus sähköpostin välitysohjelmaan,

Jos systeemiin on asennettuna useampia paketteja, jotka tarjoavat saman virtuaalisen paketin, järjestelmän ylläpitäjä voi valita yhden näistä ensisijaisesti käytettäväksi. Valinta tehdään komennolla update-alternatives, joka on tarkemmin kuvattu kappaleessa Vaihtoehtoiset komennot, Kohta 6.5.3.


2.2.8 Pakettien riippuvuudet

Debianin pakettienhallintajärjestelmä käyttää riippuvuusilmoituksia, joilla ilmaistaan, että toimiakseen oikein tai paremmin paketti vaatii, että jokin toinen paketti on asennettuna.

Tarkempia tietoja näiden termien käytöstä löytyy dokumenteista Packaging Manual ja Policy Manual.

Huomaa, että ohjelmissa dselect ja aptitude voi tarkemmin määrätä riippuvuuksilla Recommends ja Suggests merkittyjen pakettien asennusta kuin ohjelmassa apt-get, joka vain asentaa kaikki Depends-vaatimuksella merkityt paketit ja jättää Recommends- ja Suggests-merkityt paketit asentamatta. Molempien ohjelmien uudemmat versiot pohjautuvat APT:iin.


2.2.9 Riippuvuuden "Pre-Depends" ("esi-riippuvuus") merkitys

dpkg aina määrittää paketin asetukset ennen kuin se määrittää paketista riippuvan toisen paketin asetukset. Normaalisti dpkg kuitenkin purkaa paketit satunnaisessa järjestyksessä, johon ei vaikuta pakettien väliset riippuvuudet. (Purkuprosessi koostuu tiedostojen paketista purkamisesta ja niiden siirtämisestä oikeisiin paikkoihin. Kuitenkin, jos paketille on määritetty "Pre-Depends"-riippuvuus jostain toisesta paketista, tämä toinen paketti puretaan ja sen asetukset määritetään ennen kuin siitä riippuva paketti edes puretaan. [2] Tämän riippuvuuden käyttö pyritään minimoimaan.


2.2.10 Paketin tila

Paketin tila voi olla "unknown" (tuntematon), "install" (asenna), "remove" (poista), "purge" (siivoa) tai "hold" (säilytä). Nämä "liput" kertovat mitä käyttäjä on halunnut paketille tehdä (joko tehdessä valintoja ohjelman dselect valintaosiossa tai käyttäen suoraan ohjelmaa dpkg).

Lippujen merkitykset ovat:


2.2.11 Pakettien päivittämisen estäminen

Pakettien päivittämisen estämiseen on kaksi tapaa ohjelmassa dpkg, ja Woodystä alkaen ohjelmassa APT.

Ohjelmassa dpkg, tallenna ensin lista valituista paketeista:

     dpkg --get-selections \* > valinnat.txt

Sen jälkeen muuta tuloksena olevassa tiedostossa valinnat.txt säilytettävän paketin, esimerkiksi libc6, rivi muodosta:

     libc6                       install

muotoon:

     libc6                       hold

Tallenna tiedosto ja lataa se dpkg:n tietokantaan komennolla:

     dpkg --set-selections < valinnat.txt

Jos tiedät säilytettävän paketin nimen, voit ajaa suoraan komennon:

     echo libc6 hold | dpkg --set-selections

Tämä menetelmä säilyttää paketit kunkin paketin asennusvaiheessa.

Saman voin tehdä ohjelmassa dselect. Etsi valintaosiossa ([S]elect) paketti, jonka nykyisen tilan haluat säilyttää ja paina näppäintä `=' (tai `H'). Muutokset tulevat voimaan heti, kun poistut valintaikkunasta.

Woody:ssä ja sitä uudemmissa jakeluissa oleva APT-järjestelmä tarjoaa uuden vaihtoehtoisen mekanismin pakettien säilyttämiseen päivityksen aikana käyttäen Pin-Priority-järjestelmää. Katso ohjesivua apt_preferences(5) ja dokumenttia http://www.debian.org/doc/manuals/apt-howto/ tai pakettia apt-howto.


2.2.12 Lähdekoodipaketit

Lähdekoodipaketteja levitetään hakemistossa source, josta voit joko ladata ne manuaalisesti tai käyttää komentoa

     apt-get source foo

niiden hakemiseen. (Katso ohjesivulta apt-get(8) kuinka tehdä tämä APT:lla.)


2.2.13 Binääripakettien rakentaminen lähdekoodipaketeista

Kääntääksesi paketin foo tarvitset kaikki paketit foo_*.dsc, foo_*.tar.gz ja foo_*.diff.gz. (Suoraan Debianille tehdyille paketeille ei ole tiedostoa .diff.gz.)

Kun sinulla on ne kaikki, jos paketti dpkg-dev on asennettuna, komento

     $ dpkg-source -x foo_versio-muutosnumero.dsc

purkaa paketin hakemistoon foo-versio.

Anna seuraavat komennot paketoidaksesi binääripaketin:

     $ cd foo-versio
     $ su -c "apt-get update ; apt-get install fakeroot"
     $ dpkg-buildpackage -rfakeroot -us -uc

Sitten:

     # su -c "dpkg -i ../foo_versio-muut_ark.deb"

asentaaksesi rakentamasi paketin. Katso Paketin sovittaminen stable-järjestelmään, Kohta 6.4.10.


2.2.14 Uusien Debian-pakettien teko

Tarkat ohjeet uusien pakettien tekemisestä löytyvät dokumentista New Maintainers' Guide, jonka saat paketista maint-guide tai sivulta http://www.debian.org/doc/manuals/maint-guide/.


2.3 Debian-järjestelmän päivittäminen

Yksi Debianin tavoitteista on tarjota sujuva, turvallinen ja luotettava päivitysprosessi. Pakettienhallintajärjestelmä varoittaa ylläpitäjää tärkeistä muutoksista ja pyytää joskus ylläpitäjää tekemään päätöksiä. Kannattaa myös lukea julkistusmuistio, joka toimitetaan kaikilla Debian-CD:illä ja on luettavissa verkossa sivulla http://www.debian.org/releases/stable/releasenotes tai http://www.debian.org/releases/testing/releasenotes.

Käytännönläheinen opas päivittämiseen löytyy kappaleesta Debianin pakettienhallinta, Luku 6. Tässä kappaleessa ainoastaan hahmotellaan prosessi, alkaen paketointityökaluista.


2.3.1 dpkg

Tämä on pääasiallinen ohjelma pakettitiedostojen käsittelyyn. Ohjesivu dpkg(8) tarjoaa ohjelman täyden kuvauksen.

dpkg mukana tulee muutamia alkeellisia lisäohjelmia.

APT-järjestelmä on korvannut ohjelmat dpkg-ftp ja dpkg-mountable.


2.3.2 APT

APT (the Advanced Packaging Tool eli kehittynyt paketointityökalu) on kehittynyt rajapinta Debianin pakettienhallintajärjestelmään. Se sisältää useampia ohjelmia, joiden nimet tyypillisesti alkavat "apt-". apt-get, apt-cache ja apt-cdrom ovat komentorivityökaluja pakettien hallintaan. Ne toimivat myös taustaohjelmina toisille työkaluille kuten dselect ja aptitude. Nykyään aptitude on suositeltu työkalu järjestelmäylläpitoon.

Saadaksesi lisätietoa asenna paketit apt ja aptitude ja lue ohjesivut: aptitude(8), apt-get(8), apt-cache(8), apt-cdrom(8), apt.conf(5), sources.list(5) ja apt_preferences(5).

Toinen tietolähde on APT HOWTO. Sen saa asennettua paketissa apt-howto hakemistoon /usr/share/doc/Debian/apt-howto/.

apt-get upgrade ja apt-get dist-upgrade hakevat ainoastaan paketit, joiden riippuvuussuhde on "Depends:" ja jättävät huomioitta riippuvuussuhteet "Recommends:" ja "Suggests:". Välttääksesi tämän käytä ohjelmaa dselect.


2.3.3 dselect

Tämä ohjelma on valikkopohjainen käyttöliittymä Debianin pakettienhallintajärjestelmään. Se on erityisen hyödyllinen asennettaessa järjestelmää ensimmäistä kertaa ja tehtäessä suuria päivityksiä. Katso kappaletta dselect, Kohta 6.2.4.

Saadaksesi lisätietoa lue dselect Documentation for Beginners.


2.3.4 Ajossa olevan järjestelmän päivittäminen

Debian-järjestelmän tiedostojärjestelmä tukee tiedostojen korvaamista toisilla vaikka ne olisivat käytössä. Kun paketti päivitetään, kaikki pakettiin liittyvät taustaprosessit käynnistetään uudelleen, jos ne on asetettu ajettavaksi nykyisellä järjestelmän ajotasolla. Debian ei vaadi siirtymistä yksikäyttäjä-tilaan päivitystä varten.


2.3.5 Ladatut ja pakettivarastossa olevat .deb-tiedostot

Jos olet manuaalisesti ladannut pakettitiedostoja levyllesi (mikä ei ole välttämätöntä, katso ylläolevaa ohjelmien dpkg-ftp ja APT kuvausta), voit asennettuasi paketit poistaa lataamasi .deb-tiedostot järjestelmästäsi.

Jos käytät ohjelmaa APT, nämä tiedostot tallennetaan hakemistoon /var/cache/apt/archives. Voit poistaa ne asennuksen jälkeen (komennolla apt-get clean) tai kopioida ne toisen tietokoneen /var/cache/apt/archives-hakemistoon välttyäksesi lataamasta niitä uudelleen seuraavissa asennuksissa.


2.3.6 Päivitysten kirjanpito

dpkg pitää kirjaa paketeista, jotka on purettu, joille on määritetty asetukset ja jotka on poistettu tai siivottu, mutta ei (nykyään) pidä kirjaa näiden toimien lopputuloksista.

Helpoin tapa kiertää tämä rajoitus on ajaa ohjelmat dpkg, dselect, apt-get, jne. ohjelman script(1) sisältä.


2.4 Debianin käynnistysprosessi


2.4.1 init-ohjelma

Kuten kaikki Unixit, Debian käynnistetään suorittamalla ohjelma init. init-ohjelman asetustiedosto (/etc/inittab) määrää, että ensimmäisenä suoritetaan skripti /etc/init.d/rcS.

Seuraavat tapahtumat riippuvat siitä kumpi paketeista sysv-rc ja file-rc on asennettuna. (Paketti file-rc sisältää oman /etc/init.d/rcS-skriptinsä ja käyttää tiedostoa rc-hakemistoissa olevien symbolisten linkkien sijaan kontrolloidessaan mitkä ohjelmat käynnistetään milläkin ajotasolla.)

Paketin sysv-rc /etc/init.d/rcS-tiedosto ajaa kaikki hakemiston /etc/rcS.d/ skriptit alustaakseen järjestelmän. Tällöin mm. liitetään ja tarkistetaan tiedostojärjestelmiä, ladataan moduleita, alustetaan tietoliikenneyhteydet, asetetaan kellonaika ja niin edelleen. Tämän jälkeen, yhteensopivuussyistä, se ajaa myös kaikki hakemiston /etc/rc.boot/ skriptit, joiden nimessä ei ole pistettä. Jälkimmäinen hakemisto on varattu järjestelmän ylläpitäjän käyttöön, mutta sen käyttöä ei suositella. Lisätietoa saat Debian Policy Manualin kappaleista System initialization, Kohta 9.1 ja System run levels and init.d scripts.

Debian ei käytä BSD-tyylistä rc.local-hakemistoa.


2.4.2 Järjestelmän ajotasot

Käynnistysprosessin jälkeen init käynnistää kaikki oletusajotasolla ajettavaksi määritellyt palvelut. Oletusajotaso määritetään tiedoston /etc/inittab rivillä id. Debianin oletuksissa id=2.

Debianissa käytetään seuraavia ajotasoja:

Myös ajotasoja 7, 8 ja 9 voidaan käyttää, mutta niiden rc-hakemistoihin ei automaattisesti kopioida skriptejä, kun paketteja asennetaan.

Ajotasoja vaihdetaan ohjelmalla telinit.

Vaihdettaessa jollekin ajotasolle, kaikki skriptit hakemistossa /etc/rcajotaso.d/ suoritetaan. Skriptin nimen ensimmäinen kirjain kertoo tavan, jolla skripti ajetaan. Kirjaimella K alkaville skripteille annetaan komentoriviargumentti stop (pysäytä) ja kirjaimella S alkaville skripteille argumentti start (käynnistä). Skriptit ajetaan aakkosjärjestyksessä. Tästä johtuen pysäytysskriptit ajetaan ennen käynnistysskriptejä ja kirjaimien K ja S perässä olevat kaksi numeroa määräävät ajojärjestyksen.

Hakemistossa /etc/rcajotaso.d olevat skriptit ovat oikeasti vain symbolisia linkkejä hakemiston /etc/init.d/ skripteihin. Nämä skriptit hyväksyvät myös argumentit "restart" (käynnistä uudelleen) ja "force-reload" (pakota uudelleenlataus). Näitä argumentteja voidaan käyttää järjestelmän käynnistyksen jälkeen, jos taustaohjelma tarvitsee käynnistää uudelleen tai pakottaa lukemaan asetustiedostonsa uudelleen.

Esimerkiksi:

     # /etc/init.d/exim4 force-reload

2.4.3 Ajotasojen muokkaaminen

Ajotasojen muokkaaminen on vaativa järjestelmän ylläpitäjän tehtävä. Seuraavat ohjeet pätevät suurimmalle osalle palveluita.

Käynnistääksesi palvelun palvelu ajotasolla R, luo symbolinen linkki /etc/rcR.d/Sxypalvelu, joka osoittaa tiedostoon ../init.d/palvelu. Järjestysnumeron xy tulisi olla sama kuin palvelulle pakettia asennettaessa annettu numero.

Pysäyttääksesi palvelun, nimeä symbolinen linkki siten, että sen nimi alkaa kirjaimella K S:n sijaan ja sen järjestysnumero on 100 miinus xy.

Näiden muutosten tekeminen on helpointa ajotasoeditorilla kuten sysv-rc-conf tai ksysv.

On mahdollista poistaa palvelun symbolinen S-linkki uudelleennimeämisen sijaan. Tällöin palvelua ei pysäytetä vaan se jää sysv-rc init-järjestelmän mielestä "kelluvaan" tilaan. Kun ajotasoa vaihdetaan, kyseistä palvelua ei käynnistetä eikä pysäytetä vaan se jätetään siihen tilaan, jossa se oli. Huomaa kuitenkin, että riippumatta palvelun tilasta kelluvassa tilassa oleva palvelu käynnistetään, jos sen asentama paketti päivitetään. Tämä on tunnettu nykyisen Debian-järjestelmän puute. Huomaa myös, että ajotasojen 0 ja 6 K-linkit tulisi säilyttää. Jos poistat kaikki palveluun liittyvät symboliset linkit, niin palvelun paketin päivittäminen palauttaa linkit oletustasoille.

Hakemiston /etc/rcS.d/ symbolisia linkkejä ei suositella muutettavaksi mitenkään.


2.5 Monimuotoisuuden tukeminen

Debian tarjoaa järjestelmän ylläpitäjälle useita tapoja toteuttaa toiveitaan rikkomatta järjestelmää.

Kaikki hakemistopuussa /usr/local/ olevat tiedostot kuuluvat järjestelmän ylläpitäjälle eikä Debian koske niihin. Useimmat hakemiston /etc/ alla olevat tiedostot ovat asetustiedostoja, eikä Debian muokkaa niitä päivityksen yhteydessä ellei ylläpitäjä nimenomaan tätä pyydä.


2.6 Kansainvälistäminen

Debian-järjestelmä tukee useiden eri kielien merkki- ja kirjoitusjärjestelmiä sekä komentorivillä että X:ssä. Useita dokumentteja, ohjesivuja ja järjestelmäviestejä on käännetty yhä useammalle kielelle. Asennuksen aikana Debian pyytää käyttäjää valitsemaan asennuskielen (ja joskus myös kielen variantin).

Jos käyttämäsi järjestelmä ei tue kaikki kielen ominaisuuksia, joita tarvitset, tai jos haluat vaihtaa kieltä tai asentaa uuden kieltäsi tukevan näppäimistön, katso kappaletta Localization (l10n), Kohta 9.7.


2.7 Debian ja ydin (kernel)

Katso The Linux kernel under Debian, Luku 7.


2.7.1 Ytimen kääntäminen ei-Debian lähdekoodista

Debian menettelee seuraavasti otsaketietojen kanssa.

Debianin C-kirjastot on käännetty käyttäen uusimman stable-jakelun ytimen otsaketietoja.

Esimerkiksi Debian-1.2 -julkaisu käytti otsaketietoja, joiden versionumero oli 5.4.13. Tämä käytäntö poikkeaa kaikista Linux FTP-sivustoilla levitetyistä lähdekoodipaketeista, jotka käyttävät vielä uudempia versioita otsaketiedoista. Ytimen lähdekoodin mukana levitetyt ytimen otsaketiedot löytyvät hakemistosta /usr/include/linux/include/.

Jos on tarpeen kääntää ohjelma uudempien ytimen otsaketietojen kanssa kuin mitä paketti libc6-dev tarjoaa, on käännöskomentoon lisättävä valitsin -I/usr/src/linux/include/. Tämä on ollut tarpeen esimerkiksi paketoitaessa automaattista liittäjäpalvelua (automounter daemon, amd). Kun uusissa ytimissä muutettiin NFS:n sisäistä käsittelyä, ohjelma amd tarvitsisi tätä tietoa. Tämä vaati uusimpien ytimen otsikkotietojen käyttöä.


2.7.2 Työkaluja muokatun kernelin kääntämiseen

Käyttäjien, jotka haluavat (tai joiden täytyy) kääntää itse muokattu ydin, suositellaan lataamaan paketti kernel-package. Paketti sisältää skriptejä ydinpaketin tekemiseen ja mahdollistaa Debianin ytimen binäärikuvan sisältävän paketin rakentamisen pelkästään ajamalla komennon

     # make-kpkg kernel_image

ytimen lähdekoodin sisältävän hakemiston juuressa. Ohjeita saat ajamalla komennon

     # make-kpkg --help

ja ohjesivuilta make-kpkg(1) ja The Linux kernel under Debian, Luku 7.

Käyttäjien tarvitsee erikseen ladata viimeisimmän (tai haluamansa) ytimen lähdekoodi joltain Linux-arkistosivulta, ellei paketti kernel-source-versio ole saatavilla (missä versio on ytimen versio). Debianin initrd latausskripti vaatii erityisen ytimen muutostiedoston nimeltä initrd. Katso http://bugs.debian.org/149236.

Yksityiskohtaiset ohjeet paketin kernel-package käytöstä löytyvät tiedostosta /usr/share/doc/kernel-package/README.gz.


2.7.3 Erityishuomioita modulien käytöstä

Debianin paketti modconf tarjoaa komentoriviskriptin, (/usr/sbin/modconf) jonka avulla voidaan muokata modulien asetuksia. Skripti tuottaa valikkopohjaisen käyttöliittymän järjestelmän ladattavien laiteajurien valitsemiseen. Valintojen pohjalta ohjelma muokkaa tiedostoja /etc/modules.conf (joka listaa aliakset ja muut argumentit, joita käytetään modulien yhteydessä), /etc/modules (joka listaa käynnistyksen yhteydessä ladattavat modulit) ja hakemiston /etc/modutils/ tiedostoja.

(Uusien) muokattujen kernelien rakentamista helpottavien Configure.help-tiedostojen tapaan, paketti modconf asentaa ohjetiedostoja (hakemistoon /usr/share/modconf/), jotka sisältävät yksityiskohtaista tiedota kunkin modulin sopivista argumenteista.


2.7.4 Vanhan ydinpaketin poistaminen

kernel-image-NNN.prerm-skripti tarkistaa yritätkö poistaa samaa ydintä, jota juuri ajat. Niinpä voit turvallisesti poistaa tarpeettomat ydinpaketit komennolla:

     # dpkg --purge --force-remove-essential kernel-image-NNN

(Korvaa NNN ytimen versio- ja muutosnumeroilla.)


[ edellinen ] [ Sisällys ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ A ] [ seuraava ]


Debian-referenssi

CVS, to 18.1.2007, 11:54:20 UTC

Osamu Aoki osamu#at#debian.org
Suomenkielinen käännös: Esko Arajärvi edu#at#iki.fi
Tekijät, Kohta A.1