Ero sivun ”Paketinhallintajärjestelmä” versioiden välillä

Siirry navigaatioon Siirry hakuun
307 merkkiä lisätty ,  16. toukokuuta 2009
p (typoja, linkkejä yms.)
(11 välissä olevaa versiota 7 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
'''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 [[Jakelu|jakeluilla]] on tähän eri menetelmät.
'''Paketinhallintajärjestelmä''' on ohjelmisto, jolla tietyn järjestelmän ohjelmapaketteja voidaan käsitellä yhtenäisellä tavalla ja siten helpottaa ohjelmistojen asennusta, poistoa, riippuvuuksien hallintaa ym. Eri [[Jakelu|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.
Paketinhallinnan välttämätön tehtävä on selvittää riippuvuudet. Edistyneemmät paketinhallinnat osaavat itse myös täyttää ne ilman että käyttäjän on tarvetta puuttua asiaan. Nykyaikaiset paketinhallintaratkaisut hakevat ohjelman riippuvuuksineen Internetissä olevista [[pakettivarasto]]ista käyttäjän puolesta ja käyttäjän tarvitsee vain kertoa minkä nimisen ohjelman haluaa asentaa. Ohjelman on sisällyttävä paketinhallinnan tuntemiin tietokantoihin, jotta paketinhallinta osaa hakea sen.


==Eri jakeluiden järjestelmät==
==Eri jakeluiden järjestelmät==


* [[Redhat]]-pohjaisissa järjestelmissä kuten [[Fedora]]ssa, [[Mandriva]]ssa ja [[openSUSE]]ssa paketinhallintajärjestelmä on yleensä [[RPM]]. Verkkoasennusmahdollisuuden tarjoava työkalu vaihtelee jakeluittain.
* [[Redhat]]-pohjaisissa järjestelmissä kuten [[Fedora]]ssa, [[Mandriva]]ssa ja [[openSUSE]]ssa 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.
* [[Debian]]-pohjaisissa järjestelmissä taas  käytetään yleensä [[dpkg]]:tä sen edustaohjelmalla [[apt]]:llä tai jollain apt:n edustaohjelmalla (kuten [[aptitude]] tai [[synaptic]]).
* [[Gentoo]]lla on [[Portage]].
* [[Gentoo]]lla on [[Portage]].
* [[Slackware]]lla on [[tgz]] (joka ei selvitä riippuvuuksia).
* [[Slackware]]lla on [[tgz]] (joka ei selvitä riippuvuuksia).
* [[Arch Linux]] ja [[Frugalware]] käyttävät [[Pacman]]ia.
* [[Arch Linux]] ja [[Frugalware]] käyttävät [[Pacman]]ia.
* Monella erikoisjakelulla on omat paketinhallintajärjestelmänsä


==Ohjelmien asentaminen==
==Ohjelmien asentaminen==
Katso artikkeli [[Ohjelmien asentaminen]], jossa on tarkempaa tietoa ohjelmien asentamisesta käytännössä, sekä artikkelit eri jakeluista ja työkaluista.
Katso artikkeli [[Ohjelmien asentaminen]], jossa on tarkempaa tietoa ohjelmien asentamisesta käytännössä, sekä artikkelit eri [[:Luokka:Jakelut|jakeluista]] ja työkaluista.


==Paketinhallinnan toiminta==
==Paketinhallinnan toiminta==
Rivi 20: Rivi 21:
Ohjelma tarvitsee toimiakseen esimerkiksi erinäisiä [[kirjasto|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 [[kernel]]iä, [[Libc|C-kirjastoa]] tai [[komentorivi|komentotulkkia]] ei yleensä luetella riippuvuuksissa, ellei paketti kaipaa niistä tiettyä versiota (mitä perusosiksi lasketaan vaihtelee jakelusta toiseen).
Ohjelma tarvitsee toimiakseen esimerkiksi erinäisiä [[kirjasto|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 [[kernel]]iä, [[Libc|C-kirjastoa]] tai [[komentorivi|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ä.
Riippuvuuksia 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ähdekoodi]]sta [[kääntäminen|kääntämiseen]] (''build-dep'') tai pakettia asennettaessa (''pre-depends'').
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ähdekoodi]]sta [[kääntäminen|kääntämiseen]] (''build-dep'') tai pakettia asennettaessa (''pre-depends'').
Rivi 28: Rivi 29:
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 <tt>--force-depends</tt> 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.
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 <tt>--force-depends</tt> 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 [[wikipedia:fi:TCP|tcp]]- tai [[wikipedia:fi:UDP|udp]]-porttia, kannattaa vähintään tehdä "dummy-paketti", joka kertoo tarjoavansa tätä toiminnallisuutta ja käyttävänsä tätä resurssia.
Jos asentaa ohjelmia paketinhallinnan ohi, paketinhallintajärjestelmä ei pysty hyödyntämään asennettuja ohjelmia riippuvuuksien tyydyttämiseen, eikä huomaa, milloin näin asennettu ohjelma kilpailee jostakin resurssista toisen paketin kanssa. Paketinhallinnan ohi asennettaessa 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 [[wikipedia:fi:TCP|tcp]]- tai [[wikipedia:fi:UDP|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.
Muualta haetusta ohjelmasta voi myös tehdä aidon paketin, jonka voi asentaa paketinhallinnan kautta. Näin ainakin riippuvuudet ja ristiriidat tulee huomioiduiksi.
Rivi 46: Rivi 47:
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.
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 joko asentaa saman jakelun testattavasta haarasta (''testing'' tai ''pre-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ö===
===Paketin sisältö===


Ohjelmapaketti koostuu yleensä itse tiedostoarkistosta (esimerkiksi [[tarball|tervapallona]]), asennuksen yhteydessä ajettavista [[skripti|skripteistä]] sekä pakettia koskevista tiedoista kuten riippuvuudet ja tiedostojen tarkistussummat.
Ohjelmapaketti koostuu yleensä itse tiedostoarkistosta (esimerkiksi [[tarball|tervapallona]]), asennuksen yhteydessä ajettavista [[skripti|skripteistä]] sekä pakettia koskevista tiedoista, joita ovat mm. paketin 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 [[tekstieditori|editoreilla]] ja [[tar]]:lla.
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 [[Komentorivikomennot|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). Lisätietoja Debian-paketeista löytyy artikkelista [[Deb-paketin tekeminen]]. Myös näitä paketteja voi käsitellä paketinhallintatyökaluilla, esimerkiksi niin että purkaa paketin, tekee haluamansa muutokset ja paketoi sen uudestaan.


===Lähteet===
===Lähteet===
Rivi 67: Rivi 68:


[[Luokka:Paketinhallinta]]
[[Luokka:Paketinhallinta]]
[[Luokka:Jakelut]]
[[Luokka:Ohjeet]]
Rekisteröitymätön käyttäjä

Navigointivalikko