Ero sivun ”Paketinhallintajärjestelmä” versioiden välillä
LP (keskustelu | muokkaukset) (pakettilähteet, pientä) |
LP (keskustelu | muokkaukset) p (typoja, linkkejä yms.) |
||
Rivi 42: | Rivi 42: | ||
Yksittäisen ohjelman tai käytetyn jakeluversion päivitysten asentaminen paketinhalilnnan kauttaa vaatii yleensä vain muutaman klikkauksen tai yksinkertaisen komennon (<tt>apt-get update; apt-get upgrade</tt> tms.). Tällaisen päivittämisen voi tehdä automaattiseksi (katso [[cron]]), mutta parempaa on tehdä se käsin, koska päivityksessä voi (sinsänsä harvoin, jos käyttää virallisia vakaita paketteja) syntyä ongelmia. | Yksittäisen ohjelman tai käytetyn jakeluversion päivitysten asentaminen paketinhalilnnan kauttaa vaatii yleensä vain muutaman klikkauksen tai yksinkertaisen komennon (<tt>apt-get update; apt-get upgrade</tt> tms.). Tällaisen päivittämisen voi tehdä automaattiseksi (katso [[cron]]), mutta parempaa on tehdä se käsin, koska päivityksessä voi (sinsänsä harvoin, jos käyttää virallisia vakaita paketteja) syntyä ongelmia. | ||
Itse jakelun päivittäminen versiosta toiseen on hankalampaa. Periaatteessa se sujuu Debian-pohjaisissa samaten parilla käskyllä (<tt>aptitude update; aptitude upgrade; aptitude dist-upgrade</tt>, kunhan lähteissä on uusi jakelun versio), mutta yleensä päivityksessä on kommervenkkejä, esimerkiksi siinä, että ohjelmien | Itse jakelun päivittäminen versiosta toiseen on hankalampaa. Periaatteessa se sujuu Debian-pohjaisissa samaten parilla käskyllä (<tt>aptitude update; aptitude upgrade; aptitude dist-upgrade</tt>, kunhan lähteissä on uusi jakelun versio), mutta yleensä päivityksessä on kommervenkkejä, esimerkiksi siinä, että ohjelmien asetustiedostojen muoto on voinut muuttua tavalla joka vaatii omien viritysten käsin muokkaamista. Päivitysohjeet kannattaa lukea sen varalta, että tarvitaan erikoisjärjestelyjä, yleensä niin että jokin paketti pitää päivittää käsin ennen muita. Vanhaa vakaata jakelun versiota yleensä tuetaan jonkin aikaa uuden ilmestyttyä, jotta päivityksen voi tehdä itselle sopivana aikana. Joillakin jakeluilla on erikseen pitkään tuetut versiot (ainakin [[Ubuntu]] ja [[Redhat]]). | ||
Jakelun päivitys versiosta toiseen ja päivitysten julkaisutahti kannattaa ottaa huomioon jakelua valittaessa. Nopea päivitystahti tuo ohjelmista uudempia versioita käyttöön, mutta ainainen päivittäminen ja uusiin ominaisuksiin totuttelu on oma rumbansa, mikä esimerkiksi yrityskäytössä tai tietokonetta | Jakelun päivitys versiosta toiseen ja päivitysten julkaisutahti kannattaa ottaa huomioon jakelua valittaessa. Nopea päivitystahti tuo ohjelmista uudempia versioita käyttöön, mutta ainainen päivittäminen ja uusiin ominaisuksiin totuttelu on oma rumbansa, mikä esimerkiksi yrityskäytössä tai tietokonetta ymmärtämätöntä sukulaista autettaessa on hankalaa. | ||
Usein jostakin ohjelmasta haluaa uudemman version kuin mitä käytetystä jakelun versiosta löytyy. Tällöin sen voi joka asentaa saman jakelun testattavasta haarasta (''testing'' tai ''per-release'' eli [[beta]] tai vastaava), ohjelman tekijän palvelimelta tai kolmannen tahon tekemästä paketista (kuten Debian [[backports]]). Näin asennettujen ohjelmien tietoturvapäivityksistä joutuu ainakin joissakin määrin huolehtimaan itse. | Usein jostakin ohjelmasta haluaa uudemman version kuin mitä käytetystä jakelun versiosta löytyy. Tällöin sen voi joka asentaa saman jakelun testattavasta haarasta (''testing'' tai ''per-release'' eli [[beta]] tai vastaava), ohjelman tekijän palvelimelta tai kolmannen tahon tekemästä paketista (kuten Debian [[backports]]). Näin asennettujen ohjelmien tietoturvapäivityksistä joutuu ainakin joissakin määrin huolehtimaan itse. | ||
Rivi 50: | Rivi 50: | ||
===Paketin sisältö=== | ===Paketin sisältö=== | ||
Ohjelmapaketti koostuu yleensä itse tiedostoarkistosta (esimerkiksi [[tarball|tervapallona]]), asennuksen yhteydessä ajettavista [[skripti|skripteistä]] sekä pakettia | Ohjelmapaketti koostuu yleensä itse tiedostoarkistosta (esimerkiksi [[tarball|tervapallona]]), asennuksen yhteydessä ajettavista [[skripti|skripteistä]] sekä pakettia koskevista tiedoista kuten riippuvuudet ja tiedostojen tarkistussummat. | ||
Paketin tietoja voi käsitellä paketinhallinnan työkaluilla ja usein myös, ainakin jos paketin purkaa näillä työkaluilla johonkin | Paketin tietoja voi käsitellä paketinhallinnan työkaluilla ja usein myös, ainakin jos paketin purkaa näillä työkaluilla johonkin väliaikaishakemistoon, myös tavallisilla unix-kaluilla, kuten [[tekstieditori|editoreilla]] ja [[tar]]:lla. | ||
Yleensä paketeilla tarkoitetaan binääripaketteja, mutta jakeluiden ohjelmat ovat myös saatavissa lähdekoodimuodossa. [[Gentoo]]ssa tämä on normaalimuoto ja binääripaketteja on saatavissa vain osasta jakelua. Redhatissa lähdekoodit jaetaan srpm-muodossa, Debianissa kolmena tiedostona: muualta saatu lähdekoodi (.tar), Debianin tekemät muutokset (.diff) ja metatietotiedosto (.dsc). Myös näitä paketteja voi käsitellä paketinhallintatyökaluilla, esimerkiksi niin että purkaa paketin, tekee haluamansa muutokset ja paketoi sen uudestaan. | Yleensä paketeilla tarkoitetaan binääripaketteja, mutta jakeluiden ohjelmat ovat myös saatavissa lähdekoodimuodossa. [[Gentoo]]ssa tämä on normaalimuoto ja binääripaketteja on saatavissa vain osasta jakelua. Redhatissa lähdekoodit jaetaan srpm-muodossa, Debianissa kolmena tiedostona: muualta saatu lähdekoodi (.tar), Debianin tekemät muutokset (.diff) ja metatietotiedosto (.dsc). Myös näitä paketteja voi käsitellä paketinhallintatyökaluilla, esimerkiksi niin että purkaa paketin, tekee haluamansa muutokset ja paketoi sen uudestaan. | ||
Rivi 58: | Rivi 58: | ||
===Lähteet=== | ===Lähteet=== | ||
Jotta paketinhallintajärjestelmä osaisi hakea paketteja Internetistä, järjestelmälle on kerrottava ''pakettilähteet''. Asennuksen yhteydessä lähdeluetteloon on yleensä laitettu jakelun virallinen palvelin, mahdollisesti sen suomalainen toisiopalvelin. Lisäksi voi haluta myös epävirallisia tai huonommin tuettuja paketteja, joko jakelusta tai joskus siihen liittyvältä käyttäjäyhteisöltä. | Jotta paketinhallintajärjestelmä osaisi hakea paketteja Internetistä, järjestelmälle on kerrottava ''[[pakettilähteet]]''. Asennuksen yhteydessä lähdeluetteloon on yleensä laitettu jakelun virallinen palvelin, mahdollisesti sen suomalainen toisiopalvelin. Lisäksi voi haluta myös epävirallisia tai huonommin tuettuja paketteja, joko jakelusta tai joskus siihen liittyvältä käyttäjäyhteisöltä. | ||
Listaan voi laittaa jakelulle sopivalla tavalla paketteja tarjoavan kolmannen osapuolen, mutta pitää muistaa, että tällöin | Listaan voi laittaa jakelulle sopivalla tavalla paketteja tarjoavan kolmannen osapuolen (katso [[epäviralliset pakettilähteet]]), mutta pitää muistaa, että tällöin sen on mahdollista muuttaa järjestelmää mielivaltaisesti (ellei tarkoin säädä järjestelmää tämän estämiseksi). Vaikka tähän tahoon luottaisikin siinä mielessä, että se ei tarjoa [[haittaohjelmat|troijanhevosia]], huonosti tehty paketti voi rikkoa järjestelmän. | ||
==Katso myös== | ==Katso myös== |
Versio 4. maaliskuuta 2008 kello 20.06
Paketinhallintajärjestelmä on ohjelmisto, jolla tietyn järjestelmän ohjelmapaketteja voidaan käsitellä standardilla tavalla ja siten helpottaa ohjelmistojen asennusta, poistoa, riippuvuuksien hallintaa ym. Eri jakeluilla on tähän eri menetelmät.
Paketinhallinnan välttämätön tehtävä on selvittää riippuvuudet. Edistyneemmät paketinhallinnat osaavat itse ne myös täyttää ilman että käyttäjän on tarvetta puuttua asiaan. Modernit paketinhallintaratkaisut myös hakevat ohjelman Internetistä käyttäjän puolesta ja käyttäjän tarvitsee vain kertoa minkä nimisen ohjelman haluaa asentaa. Ohjelman on sisällyttävä paketinhallinan tuntemiin tietokantoihin, jotta se osataan hakea itse.
Eri jakeluiden järjestelmät
- Redhat-pohjaisissa järjestelmissä kuten Fedorassa, Mandrivassa ja openSUSEssa paketinhallintajärjestelmä on yleensä RPM. Verkkoasennusmahdollisuuden tarjoava työkalu vaihtelee jakeluittain.
- Debian-pohjaisissa järjestelmissä taas käytetään yleensä dpkg:tä sen edustaohjelmalla apt:llä tai jollain apt:n edustaohjelmalla.
- Gentoolla on Portage.
- Slackwarella on tgz (joka ei selvitä riippuvuuksia).
- Arch Linux ja Frugalware käyttävät Pacmania.
Ohjelmien asentaminen
Katso artikkeli Ohjelmien asentaminen, jossa on tarkempaa tietoa ohjelmien asentamisesta käytännössä, sekä artikkelit eri jakeluista ja työkaluista.
Paketinhallinnan toiminta
Riippuvuudet
Ohjelma tarvitsee toimiakseen esimerkiksi erinäisiä ohjelmakirjastoja ja apuohjelmia, ehkä myös esimerkiksi tietokantaohjelman tai muun palvelimen. Näitä kutsutaan ohjelman sisältävän paketin riippuvuuksiksi ja ne voidaan kuvata toimintoja tarjoavan paketin, toimintaa vastaavan virtuaalisen paketin tai kaivatun tiedoston nimellä ja mahdollisesti versionumerolla. Järjestelmän perusosia, kuten kerneliä, C-kirjastoa tai komentotulkkia ei yleensä luetella riippuvuuksissa, ellei paketti kaipaa niistä tiettyä versiota (mitä perusosiksi lasketaan vaihtelee jakelusta toiseen).
Riipuvuuksia voi olla eri tasoisia: jos riippuvuus on sellainen, että paketti on käyttökelvoton ilman toista pakettia, .deb-paketissa käytetään depends-riviä, jos pakettia ei yleensä halua käyttää ilman toista pakettia, recommends-riviä, jos toinen paketti parantaa paketin käytettävyyttä (käsikirja, kielipaketit, graafiset edustaohjelmat), suggests-riviä.
Samoja resursseja käyttäviä ohjelmia tai toisiaan korvaavia ohjelmia kuvataan riveillä conflicts ja replaces ja toisen paketin toiminnallisuutta tarjoamista rivillä provides. Lisäksi voi kertoa, että jotakin pakettia tarvitaan paketin lähdekoodista kääntämiseen (build-dep) tai pakettia asennettaessa (pre-depends).
Yllä Debian-sukuisten jakeluiden tärkeimmät riippuvuuksien kuvaukset. Muissa paketinhallintajärjestelmissä on vastaavia ominaisuuksia, vaikkakin Debianin järjestelmä kuuluu monipuolisimpiin.
Kun on asentamassa jotakin ohjelmapakettia, jonka riippuvuudet eivät ole kunnossa, rpm, dpkg tai vastaava kuvailee ongelman eikä suostu asentamaan uutta pakettia. Käyttäjä joko asentaa tarvittavat apuohjelmat (tai käyttää valitsinta --force-depends tms., mikä hyvin harvoin on perusteltua). Edistyneemmät paketinhallinta- tai edustaohjelmat (apt, aptitude, synaptic, yum yms.) osaavat asentaa kaivatut riippuvuudet ja ratkaista monimutkaisempiakin riippuvuusongelmia. Ongelmatilanteissa eri työkaluja voi auttaa eri tavoilla antamalla niille vihjeitä tai valtuuksia ongelman ratkaisuun.
Jos asentaa ohjelmia paketinhallinnan ohi, paketinhallintajärjestelmä ei pysty hyödyntämään asennettuja ohjelmia riippuvuuksien tyydittämiseen eikä huomaa milloin näin asennettu ohjelma kilpailee jostakin resurssista toisen paketin kanssa. Paketinhallinnan ohi asenenttaaessa kannattaa käyttää hakemistoja /opt tai /usr/local, jolloin paketinhallinnan kautta ja sen ohi asennetut ohjelmat eivät ylikirjoita toistensa tiedostoja. Jos paketinhallinnan ohi asennettu ohjelma käyttää jotakin muuta resurssia, verkkopalvelinten tapauksessa tcp- tai udp-porttia, kannattaa vähintään tehdä "dummy-paketti", joka kertoo tarjoavansa tätä toiminnallisuutta ja käyttävänsä tätä resurssia.
Muualta haetusta ohjelmasta voi myös tehdä aidon paketin, jonka voi asentaa paketinhallinnan kautta. Näin ainakin riippuvuudet ja ristiriidat tulee huomioiduiksi.
Toisen jakelun paketista ei yleensä kannata asentaa mitään, koska riippuvuudet on määritelty toisen jakelun käytäntöjen mukaan, mikä saattaa aiheuttaa ikävyyksiä.
Toisen jakelun pakettia voi hyödyntää jos osaa arvioida toimiiko se oikein omassa jakelussa, tarvittaessa niin, että sen purkaa ja kokoaa oman jakelun paketiksi (vrt alien). Yleensä on kuitenkin varmempaa asentaa vieras paketti paketinhallinnan ohi hakemistoon /opt tai /usr/local, joko lähdekoodista kääntämällä tai purkamalla ja käsin asentamalla. Perusohjelmisto kyllä löytyy minkä tahansa isomman jakelun omasta pakettitarjonnasta.
Päivitys
Paketinhallinta hakee haluttaessa tiedon päivityksistä jakelun palvelimilta (kunhan lähteet on oikein asennettu) ja tarjoaa mahdollisuuden uusien ohjelmaversioiden asentamiseen. Jakelusta riippuen jakelun tiettyyn versioon tulee vain tietoturvapäivityksiä tai myös ohjelmien uudempia versioita.
Yksittäisen ohjelman tai käytetyn jakeluversion päivitysten asentaminen paketinhalilnnan kauttaa vaatii yleensä vain muutaman klikkauksen tai yksinkertaisen komennon (apt-get update; apt-get upgrade tms.). Tällaisen päivittämisen voi tehdä automaattiseksi (katso cron), mutta parempaa on tehdä se käsin, koska päivityksessä voi (sinsänsä harvoin, jos käyttää virallisia vakaita paketteja) syntyä ongelmia.
Itse jakelun päivittäminen versiosta toiseen on hankalampaa. Periaatteessa se sujuu Debian-pohjaisissa samaten parilla käskyllä (aptitude update; aptitude upgrade; aptitude dist-upgrade, kunhan lähteissä on uusi jakelun versio), mutta yleensä päivityksessä on kommervenkkejä, esimerkiksi siinä, että ohjelmien asetustiedostojen muoto on voinut muuttua tavalla joka vaatii omien viritysten käsin muokkaamista. Päivitysohjeet kannattaa lukea sen varalta, että tarvitaan erikoisjärjestelyjä, yleensä niin että jokin paketti pitää päivittää käsin ennen muita. Vanhaa vakaata jakelun versiota yleensä tuetaan jonkin aikaa uuden ilmestyttyä, jotta päivityksen voi tehdä itselle sopivana aikana. Joillakin jakeluilla on erikseen pitkään tuetut versiot (ainakin Ubuntu ja Redhat).
Jakelun päivitys versiosta toiseen ja päivitysten julkaisutahti kannattaa ottaa huomioon jakelua valittaessa. Nopea päivitystahti tuo ohjelmista uudempia versioita käyttöön, mutta ainainen päivittäminen ja uusiin ominaisuksiin totuttelu on oma rumbansa, mikä esimerkiksi yrityskäytössä tai tietokonetta ymmärtämätöntä sukulaista autettaessa on hankalaa.
Usein jostakin ohjelmasta haluaa uudemman version kuin mitä käytetystä jakelun versiosta löytyy. Tällöin sen voi joka asentaa saman jakelun testattavasta haarasta (testing tai per-release eli beta tai vastaava), ohjelman tekijän palvelimelta tai kolmannen tahon tekemästä paketista (kuten Debian backports). Näin asennettujen ohjelmien tietoturvapäivityksistä joutuu ainakin joissakin määrin huolehtimaan itse.
Paketin sisältö
Ohjelmapaketti koostuu yleensä itse tiedostoarkistosta (esimerkiksi tervapallona), asennuksen yhteydessä ajettavista skripteistä sekä pakettia koskevista tiedoista kuten riippuvuudet ja tiedostojen tarkistussummat.
Paketin tietoja voi käsitellä paketinhallinnan työkaluilla ja usein myös, ainakin jos paketin purkaa näillä työkaluilla johonkin väliaikaishakemistoon, myös tavallisilla unix-kaluilla, kuten editoreilla ja tar:lla.
Yleensä paketeilla tarkoitetaan binääripaketteja, mutta jakeluiden ohjelmat ovat myös saatavissa lähdekoodimuodossa. Gentoossa tämä on normaalimuoto ja binääripaketteja on saatavissa vain osasta jakelua. Redhatissa lähdekoodit jaetaan srpm-muodossa, Debianissa kolmena tiedostona: muualta saatu lähdekoodi (.tar), Debianin tekemät muutokset (.diff) ja metatietotiedosto (.dsc). Myös näitä paketteja voi käsitellä paketinhallintatyökaluilla, esimerkiksi niin että purkaa paketin, tekee haluamansa muutokset ja paketoi sen uudestaan.
Lähteet
Jotta paketinhallintajärjestelmä osaisi hakea paketteja Internetistä, järjestelmälle on kerrottava pakettilähteet. Asennuksen yhteydessä lähdeluetteloon on yleensä laitettu jakelun virallinen palvelin, mahdollisesti sen suomalainen toisiopalvelin. Lisäksi voi haluta myös epävirallisia tai huonommin tuettuja paketteja, joko jakelusta tai joskus siihen liittyvältä käyttäjäyhteisöltä.
Listaan voi laittaa jakelulle sopivalla tavalla paketteja tarjoavan kolmannen osapuolen (katso epäviralliset pakettilähteet), mutta pitää muistaa, että tällöin sen on mahdollista muuttaa järjestelmää mielivaltaisesti (ellei tarkoin säädä järjestelmää tämän estämiseksi). Vaikka tähän tahoon luottaisikin siinä mielessä, että se ei tarjoa troijanhevosia, huonosti tehty paketti voi rikkoa järjestelmän.
Katso myös
- Paketinhallinta-luokka
- Paketinhallinnan idean esittely Ubuntu tutuksi -wikirjassa