Muokataan sivua Paketinhallintajärjestelmä

Siirry navigaatioon Siirry hakuun
Varoitus: Et ole kirjautunut sisään. IP-osoitteesi näkyy julkisesti kaikille, jos muokkaat. Jos kirjaudut sisään tai luot tunnuksen, muokkauksesi yhdistetään käyttäjänimeesi ja saat paremman käyttökokemuksen.

Kumoaminen voidaan suorittaa. Varmista alla olevasta vertailusta, että haluat saada aikaan tämän lopputuloksen, ja sen jälkeen julkaise alla näkyvät muutokset.

Nykyinen versio Oma tekstisi
Rivi 1: Rivi 1:
'''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.
'''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 [[Jakelut|jakeluilla]] on tähän eri menetelmät.


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.
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 [[Fedora]]ssa, [[Mandriva]]ssa ja [[openSUSE]]ssa paketinhallintajärjestelmä on yleensä [[RPM]].
 
* [[Debian]]-pohjaisissa järjestelmissä taas  käytetään yleensä [[apt]]:ia (paketinhallinta) ja [[deb]]:(paketin muoto).
* [[Red Hat]]-pohjaisissa järjestelmissä kuten [[Fedora Linux]]issa, [[Mageia]]ssa ja [[openSUSE]]ssa paketinhallintajärjestelmä on yleensä [[RPM]]. Verkkoasennusmahdollisuuden tarjoava työkalu vaihtelee jakeluittain.
* [[Gentoo]]lla on [[Portage]]
* [[Debian]]-pohjaisissa järjestelmissä taas  käytetään yleensä [[dpkg]]:tä sen edustaohjelmalla [[apt]]:llä tai jollain apt:n edustaohjelmalla (kuten [[aptitude]] tai [[synaptic]]).
* [[Slackware]]lla on [[tgz]].(joka ei selvitä riippuvuuksia)
* [[Gentoo]]lla on [[Portage]].
* [[Arch Linux]] ja [[Frugalware]] käyttävät [[Pacman]]ia.
* [[Slackware]]lla on [[tgz]] (joka ei selvitä riippuvuuksia).
* [[Arch Linux]], sekä siihen [[:Malline:Arch Linux|pohjautuvat jakelut]] käyttävät <tt>[[pacman]]ia</tt> tai edustaohjelmaa kuten [[Pamac]]ia.
* [[Frugalware]] käyttää pacmanista uudelleenkirjoitettua versiota nimeltä pacman-G2.
* Monella erikoisjakelulla on omat paketinhallintajärjestelmänsä
 
===Rosetta===
Suosituimpien paketinhallintajärjestelmien tulkitsemisopas löytyy artikkelista [[Rosetta]].


==Ohjelmien asentaminen==
==Ohjelmien asentaminen==
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==
===Riippuvuudet===
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 [[ydin]]tä, [[Libc|C-kirjastoa]] tai [[komentorivi|komentotulkkia]] ei yleensä luetella riippuvuuksissa, ellei paketti kaipaa niistä tiettyä versiota (mitä perusosiksi lasketaan vaihtelee jakelusta toiseen).
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'').
Yllä [[Debian]]-sukuisten [[jakelu]]iden 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 <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 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.
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 [[tietoturva]]pä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 (<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 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 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ö===
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 [[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). 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===
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 [[haittaohjelmat|troijanhevosia]], huonosti tehty paketti voi rikkoa järjestelmän.
Katso artikkeli [[ohjelman asennus]] jossa on tarkempaa tietoa ohjelmien asentamisesta käytännössä.


==Katso myös==
==Katso myös==
*[[:Luokka:Paketinhallinta|Paketinhallinta]]-luokka  
*[[:Luokka:Paketinhallinta|Paketinhallinta]]-luokka  
*Paketinhallinnan idean esittely [http://fi.wikibooks.org/wiki/Ubuntu_tutuksi/Ohjelmien_asentaminen_ja_pakettivarastot#Pakettienhallinta Ubuntu tutuksi -wikirjassa]
*Paketinhallinnan idean esittely [http://fi.wikibooks.org/wiki/Ubuntu_tutuksi/Ohjelmien_asentaminen_ja_pakettivarastot#Pakettienhallinta Ubuntu tutuksi -wikirjassa]
*[[wikipedia:fi:Paketinhallintajärjestelmä|Wikipedian artikkeli-paketinhallintajärjestelmästä]]


[[Luokka:Paketinhallinta]]
[[Luokka:Paketinhallinta]]
[[Luokka:Ohjeet]]
[[Luokka:Jakelut]]
Wikin materiaali on kaikkien vapaasti käytettävissä Creative Commons 3.0 - nimi mainittava -lisenssin alaisuudessa. TEKIJÄNOIKEUDEN ALAISEN MATERIAALIN KÄYTTÄMINEN ILMAN LUPAA ON EHDOTTOMASTI KIELLETTYÄ!

Muokataksesi tätä sivua vastaa alla olevaan kysymykseen (lisätietoja):

Peruuta Muokkausohjeet (avautuu uuteen ikkunaan)