Debianin päivittäminen

Linux.fista
Versio hetkellä 9. toukokuuta 2015 kello 22.02 – tehnyt LP (keskustelu | muokkaukset) (→‎Päivitys: cron-apt)
Siirry navigaatioon Siirry hakuun

Debian GNU/Linuxin yhtenä hyvin vahvana puolena pidetään sen helppoa päivittämistä. Debianin tavoitteena on, että järjestelmä voidaan päivittää versiosta toiseen käyttäjien tarvitsematta keskeyttää koneen käyttöä. Uuden ytimen saamiseksi käyttöön joudutaan toki käynnistämään järjestelmä uudelleen, ja varsinkin epävakaita pakettilähteitä käyttäessä voi päivityksestä seurata hyvinkin vakavia ongelmia.

Paketinhallintatyökalut

Ohjelmien pitäminen ajan tasalla tapahtuu käyttäen apt-paketinhallintatyökalua, sen edustaohjelmaa aptitudea tai sen graafista käyttöliittymää, Synapticia. Matalemmalla tasolla paketteja hallitaan ohjelmalla dpkg.

Nykyisin vaativimpiin päivityksiin (Debianin versiosta toiseen tms.) suositellaan käyttämään aptitudea, joka paremmin kuin apt-get osaa selvittää ristiriitoja. Aptitude pitää myös kirjaa siitä, mitkä paketit on asennettu suoraan käyttäjän toivomuksesta ja mitkä on asennettu toisten pakettien riippuvuuksina. Aptitudea voidaan käyttää joko apt-getin lailla komentoriviltä tai interaktiivisesti koko ruutua tai ikkunaa käyttäen.

Pakettilähteet

Tiedostossa /etc/apt/sources.list kerrotaan, mistä osoitteista järjestelmään haetaan päivityksiä ja uusia ohjelmia. Rivejä on yleensä useampia ja jotkut niistä voivat viitata myös cd-levyihin. Tiedoston katsominen onnistuu tavallisena käyttäjänä, mutta muutosten tekeminen ja päivitysten asentaminen on mahdollista vain pääkäyttäjänä (root).

Tyypillisiä rivejä ovat:

deb http://http.debian.net stable main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
# deb-src http://http.debian.net stable main contrib non-free
# deb-src http://security.debian.org stable/updates main contrib non-free
  • Uudelleenohjaaja ensisijaisen pakettivaraston lähimpään peiliin, tässä vakaan julkaisun (stable) virallisten pakettien (main) lisäksi julkaisun epävapaista riippuvia (contrib) ja epävapaita (non-free) paketteja
  • Turvapäivitykset samaan jakelun versioon
  • Näitä vastaavat lähdekoodirivit, nyt "poiskommentoituina"; ne aktivoidaan poistamalla #-merkki rivin alusta

Yleensä kannattaa pitää lähteissä jakelun version nimi "stable"-määritteen sijasta. Vuonna 2015 stablen nimi on "jessie", oldstablen "wheezy", testingin "stretch" ja unstablen "sid". Vaihda nimi sanan "stable" tilalle, paitsi mahdollisella CD-rivillä (siinä yleensä lukee "unstable", älä välitä, jätä se muuttamatta). Tällöin vanhan version käyttöä jatketaan kunnes versio muutetaan käsin. Vanhaa versiota tuetaan yleensä kohtuullisen kauan (noin vuoden) uuden version ilmestyttyä ja näin vaihdos voidaan tehdä sopivana hetkenä, kun on aikaa selvittää mahdolliset ongelmat.

Palvelin security.debian.org sisältää tietoturvapäivitykset ja on siksi kaikkein tärkein. Katso, että se täsmää käytettyyn julkaisuun. Jos käytät myös varsinaista jakeluversiotasi uudempia ohjelmaversioita, joudut huolehtimaan näiden päivityksistä erikseen.

Jos käytössä on asennuslevy (CD, DVD tms.), se kannattaa lisätä lähteisiin käskyllä apt-cdrom add. CD:tä ei pidä lisätä käsin, mutta valmiin rivin voi siirtää tiedoston toiseen kohtaan. Tiedostojärjestelmään liitettyyn CD:hen voi viitata suoraan: deb file://liitoskohta...

Myös omia pakettivarastoja voi lisätä, katso APT HOWTO tai /usr/share/doc/Debian/apt-howto tarvittavan pakettilistan luomiseksi.

deb-src-rivejä tarvitaan lähdekoodin hakemiseen aptia käyttäen. #-merkillä rivin alussa rivi on merkitty muka huomautukseksi ja näin apt ei välitä siitä. Aktivoi rivi jos haluat katsoa ohjelmien lähdekoodia, tehdä muutoksia ohjelmiin tai kääntää ohjelmasta uudemman version (jolloin rivillä pitää olla testing tai unstable stablen sijaan).

Debian-kehittäjien ylläpitämä backports.org kääntää uudempien Debian-versioiden paketteja käytettäviksi Debianin vakaassa versiossa. Backportsien käyttäminen on turvallisempaa kuin uudempien pakettien hakeminen satunnaisista lähteistä tai niiden kääntäminen itse, mutta käyttö kannattaa kuitenkin rajoittaa niihin paketteihin, joista tarvitsee uudemman version.

Muuta lähdelistaa komennolla apt-setup tai apt-cdrom add jos haluat vain lisätä uudet asennusromppusi. Vaihtoehtoisesti avaa tiedosto /etc/apt/sources.list haluamallasi tekstieditorilla (esimerkiksi nanolla) ja tarkista, että se sisältää rivin

deb http://security.debian.org stable/updates main contrib

Jos et tiedä mitä tekstieditoreita Debian-järjestelmääsi on asennettuna, komennot editor ja man editor toimivat aina.

Jos paketin sama versio on saatavissa useammasta lähdelistassa mainitusta lähteestä, se haetaan tiedostossa ensimmäisenä mainitusta. Pidä siis CD-levyt, omat pakettivarastot yms. listassa ensimmäisinä. Useamman Debian-pelin pitäminen listassa ei haittaa muuta kuin hiukan hitaampana listojen päivityksenä (nykyään oletusarvoisesti pakettitiedoista haetaan vain muutokset).

Asetustiedostoilla voi muuttaa mistä paketit ensisijaisesti haetaan, että jokin paketti haetaan ensisijaisesti jostakin julkaisusta, että testing-paketteja ei käytetä kuin erikseen niin pyydettäessä, vaikka ne olisivatkin listassa jne. Katso manuaalisivu apt_preferences(5)

Lähdelistan muutoksen jälkeen pakettilista pitää päivittää, jotta se vastaisi uutta tilannetta, aptitudea interaktiivisesti käyttäen painamalla "u", komentorivillä komennolla apt-get update tai aptitude update.

Päivitys

Debianin nimettyä vakaata julkaisua käytettäessä uusia paketteja tulee vain tietoturvapäivityksinä ja puolijulkaisuiden yhteydessä (vakavien ongelmien korjaukset). Korjaukset tehdään yleensä vanhoihin versioihin, lisäämättä uusia ominaisuuksia. Testingiä tai unstablea käytettäessä päivityksiä tulee jatkuvasti.

Aptitudessa pakettilista päivitetään painamalla "u" (update), kaikki päivitettävät paketit merkitään päivitettäviksi painamalla "U" ja paketit päivitetään painamalla "g", ensin toimenpidelistan näyttämiseksi ja sitten itse päivityksen suorittamiseksi.

Päivittäminen hoituu komentoriviltä ensin avaamalla pääteikkuna (xterm, konsole tms.) tai kirjautumalla tekstikonsolilla ja sitten antamalla seuraavat komennot:

su -                   (vaihto pääkäyttäjäksi, anna pääkäyttäjän salasana kysyttäessä)
apt-get update (hakee tiedot saatavilla olevista uusista päivityksistä)
apt-get upgrade        (asentaa päivitykset)

Varsinkaan unstablea käytettäessä ei kannata päivittää kaikkea sokeasti. Jos aikomuksena ei ole testata paketteja ja raportoida ongelmista, kannattaa odottaa muutama päivä ainakin keskeisten pakettien osalta. Jos apt-listbugs on asennettuna, se varoittaa asennettaessa pakettia, josta on raportoitu kriittisiä ongelmia (mutta ongelmat saattavat koskea vain erikoisia kokoonpanoja – ellei käytä unstablea eikä halua paneutua, useimmat paketit voi päivittää huoletta).

Asentamalla paketti cron-apt saa koneen hakemaan päivitykset automaattisesti. Perusasetuksilla itse päivitys tehdään käsin, mutta varsinkin hitaalla yhteydellä pakettien hakeminen etukäteen säästää aikaa. Asetukset voi muuttaa niin, että päivitykset myös asennetaan automaattisesti (missä on riskinsä, mutta varsinkin stablea käytettäessä, ellei ole tehnyt omia erikoisia säätöjä, riskin pitäisi olla lähinnä teoreettinen).

Uuteen julkaisuun päivittäminen

Uuteen julkaisuun siirryttäessä pakettejä on saatettu yhdistää tai jakaa osiksi ja monet uudet pakettiversiot ovat ristiriidassa vanhojen kanssa. Usein on myös muuta huomioitavaa. Siksi päivittämisen ajankohta kannattaa valita niin, etteivät mahdolliset ongelmat aiheuta paniikkia. Vanhaa vakaata julkaisua tuetaan yleensä vielä melko pitkään (yleensä noin vuoden).

Julkaisumuistiosta kannattaa lukea ainakin pääkohdat, joista selviää tällä kertaa vaadittavat erikoistoimet: ehkä paketinhallintatyökalu on hyvä päivittää ennen dist-upgradea tai ytimen päivittämiseen liittyy jotakin erikoista. Myös muita tietokoneen käyttäjiä on hyvä varoittaa. Varmuuskopiot pitää saattaa ajan tasalle.

Varsinainen päivittäminen tehdään tekstikonsolilta (johon pääsee näppäinyhdistelmällä Ctrl+Alt+F1) tai ssh-yhteyden kautta (jos päivitetään muualla olevaa konetta). X saatetaan sulkea sen osia päivitettäessä.

Jotta myöhemmin voi katsoa mitä oikein tuli tehtyä, käskyt on hyvä antaa script-komennolla avatussa sessiossa, esim.

script -at 2>upgrade-etch-`date  --iso-8601`.timings upgrade-etch-`date --iso-8601` 

(script-sessio päättyy, kun poistutaan shellistä exitillä)

  • Poista väliaikaisesti omat tai kolmannen tahon paketit, siltä osin kuin ne saattavat sekoittaa riippuvuuksia; poista "älä päivitä" -asetukset
  • Päivitä järjestelmä nykyisessä julkaisussa: aptitude update; aptitude upgrade
  • Vaihda lähdelistaan /etc/apt/sources.list uusi jakelu (korvaa esimerkiksi sarge etchillä) ja päivitä pakettilistat: aptitude update
  • Päivitä julkaisumuistiossa mainitut ensiksi päivitettävät paketit: apt-get upgrade mikälie...
  • Päivitä muut helposti päivitettävät paketit: apt-get upgrade
  • Ota käyttöön uusi ydin, jos tämä kuului päivityksen valmisteluihin, muuten vasta muun päivityksen jälkeen: shutdown -r now ("now" tilalle sopiva varoitusaika, jos koneella saattaa olla muita käyttäjiä)
  • Päivitä koko järjestelmä: apt-get dist-upgrade
  • Ratkaise riippuvuuksien jäljellejääneet ristiriidat, helpoiten ehkä (ainakin osittain) aptituden grafisessa tilassa: aptitude

Ohjelmien uusissa versioissa on yleensä uudet oletusarvoiset asetustiedostot. Jos itse on tehnyt muutoksia tiedostoon, päivitysohjelma kysyy haluaako käyttää omaa vaiko uutta versiota, käsin sovittaa muuttuneet osat toisiinsa vaiko katsoa muutoksia ennen päätöksen tekemistä.

Jäljellejääneet riippuvuusongelmat

Usein päivityksen jälkeen jää jonkin verran ratkaisemattomia riippuvuuksia: asennettu paketti riippuu jostakin pakettiversiosta joka on ristiriidassa sen tilalle asennettavasta uudesta paketista. Vaikka tilanne voi jättää suuren määrän paketteja tilaan, joista niitä ei voi päivittää, ongelma johtuu yleensä vain muutamista paketeista.

aptitudella voi kokeilla eri vaihtoehtoja tilanteen ratkaisemiseksi sen riippuvuusongelmanäytössä. Ongelman ratkaisun voi myös jättää aptituden harteille:

apt-get --simulate -f dist-upgrade

Jos ratkaisu näyttää järkevältä, anna sama komento ilman simulate-valitsinta. Poistettavat paketit voi useimmiten asentaa uudestaan uudesta julkaisusta, kun riippuvuussolmu on ratkaistu.

Julkaisujen tietoturvapäivitykset

Tietoturvapäivityksiä saa seuraavasti:

  • squeeze-lts jatkaa Squeezen tietoturvapäivityksiä i386- ja amd64-arkkitehtuureilla helmikuuhun 2016 [1]
  • oldstable eli Wheezy, julkaistu alun perin 4. toukokuuta 2013, nykyinen versio 7.8 julkaistu 10. tammikuuta 2015
  • stable eli Jessie, julkaistu alun perin 25. huhtikuuta 2015
  • testing eli Stretch, tietoturvapäivitykset tulevat epävakaan kautta. Katso http://www.debian.org/security/faq#testing
  • unstable eli Sid, tietoturvapäivityksiä ei käsitellä mitenkään erityisesti, ne ilmestyvät normaalien uusien pakettiversioiden myötä. Katso http://www.debian.org/security/faq#unstable

Lisätietoja Debianiin saatavilla olevista tietoturvapäivityksistä löytyy osoitteesta http://www.debian.org/security/. Kannattaa myös tilata postituslista debian-security-announce, jolle lähetetään ilmoitukset saatavilla olevista päivityksistä.