Tänään: järjestelmäherrojen arvostuspäivä

System Administrator Appreciation Day eli järjestelmäherrojen arvostuspäivä on täällä taas. Tänä vuonna ylläpitäjien päivää vietetään tänään perjantaina 25.7.2008. Vuosittaista tapahtumaa vietetään aina heinäkuun viimeisenä perjantaina, vaikkakin amerikkalaislähtöisen arvostuspäivän suomalaisilla sivuilla odotellaan maanantaille asti.

Yksinkertaisena ideana on osoittaa edes kerran vuodessa arvostusta raskaan työn sankareille, ylläpitäjille, jotka suurella panoksellaan pitävät sinunkin palvelimesi ja järjestelmäsi toiminnassa.

Kiitos ja kumarrus kaikille System Administraattoreille.

Gentoo ja pakettien kääntöä DistCC:n avustuksella

Gentoossa kaikki paketit käännetään lähdekoodista ja tämä vie varsinkin isompien ohjelmien kohdalla ja hieman vanhemmalla tietokoneella jonkin verran aikaa. Pakettien kääntämistä voi kuitenkin nopeuttaa jakamalla käännöstyötä useampien tietokoneiden kesken. Gentoossa tämä onnistuu helposti käyttämällä DistCC:tä.

DistCC:n käyttöönotto on yksinkertaista lukemalla Gentoon DistCC -ohje. Ohje neuvoo muun muassa käyttämään samaa GCC:n versiota jokaisessa kääntöön osallistuvassa koneessa. Kokonaisuutena DistCC:n asentamisessa ja asetusten määrittämisessä ei ole mitään erikoista.

DistCC:n asentamiseen tulee kuitenkin hieman lisää vaiheita, jos käytössä olevat koneet eivät ole samaa arkkitehtuuria, eli toinen on esimerkiksi 64-bittinen amd64 ja toinen 32-bittinen x86. Lisävaiheet eivät ole monimutkaiset, sillä tarvitaan vain crossdev, muutamat linkit ja halutun käännösympäristön valmisteleminen. Ohjeet tarvittavista toimenpiteistä löytyvät Gentoon DistCC Cross-compiling -ohjeesta. Usean alustan DistCC:n valmistelu kannattaa suorittaa ennen varsinaisen DistCC:n asentamista.

Tarvittavien ohjelmien ja asetusten jälkeen paketit kääntyvät enemmän tai vähemmän nopeammin, sillä kaikki ohjelmat eivät hyödynnä useamman koneen tarjoamia mahdollisuuksia. DistCC:n käännöstyön jakamista eri koneiden välillä voi seurata käyttämällä graafista distccmon-gui -ohjelmaa tai tekstipohjaista distccmon-text -ohjelmaa. Lähiverkon lisäksi DistCC:n voi myös putkittaa normaalisti SSH:n läpi, mutta esimerkiksi lähiverkossa DistCC käyttää kaistaa 200 – 2000 kt/s, joten käytössä olevan kaistan on suotavaa olla riittävän leveä.

Pakettien kääntöaika ei ole koskaan ollut mielestäni ongelma, sillä käännökset voi suorittaa haluamaan aikana eikä järjestelmää ole tarvetta koko aikaa päivitellä. Käännöstyön jakaminen useampien koneiden välille on kuitenkin ihan kiva lisä.

Ylläpitäjien päivä jo kahdeksannen kerran

Vuosittaista ylläpitäjien päivää (eng. System Administrator Appreciation Day) vietetään jo kahdeksannen kerran. Tapahtumaa vietetään heinäkuun viimeinen perjantai, mutta amerikkalaislähtöisyydestä johtuen päivä osuu suomenkielisten sivujen mukaan lauantaille.

Alkujaan Ted Kekatosin ideoimaa Sysadminday:tä vietettiin jossain Chicagon liepeillä, mutta tapahtuma on muuttunut enemmän tai vähemmän webinlaajuiseksi juhlapäiväksi. Yksinkertaisena ideana on osoittaa edes kerran vuodessa juhlistaa raskaan työn sankareita, ylläpitäjiä, jotka suurella panoksellaan pitävät sinunkin palvelimesi ja järjestelmäsi toiminnassa.

Debian ja puuttuva tiedosto

Debian Administration kirjoittaa keinosta löytää jokin tietty kirjasto tai tiedosto ja vastaava Debian-paketti, joka sisältää haetun tiedoston.

Tiedoston etsiminen paketista onnistuu käyttämällä dpkg:tä –search argumentilla. Toinen vaihtoehtoinen tapa on käyttää apt-file -komentoa.

Ensin apt-file pitää asentaa komennolla: apt-get install apt-file. Komennolla apt-file update haetaan data, josta apt-file etsii tiedostoja. Tämän jälkeen voidaan etsiä tiedostoa debian-paketeista komennolla: apt-file search <tiedosto> .

Toiminto näyttää esimerkiksi seuraavalta ja saamme selville, että alisp.h löytyy paketista libasound2-dev:

~$ apt-file search alisp.h
libasound2-dev: usr/include/alsa/alisp.h

Pakettienhallinta Debianissa

Eri Linux jakelupaketeissa on ohjelmistojen jakelu ja päivitys toteutettu hieman erilailla. Nykyään lähes jokaisessa distribuutiossa on jonkinlainen hallittu pakettimanageri, joka hallitsee ohjelmien riippuvuudet, helpon asennuksen ja päivittelyn. FreeBSD:ssä on Ports, Gentoossa Portage, Susessa Yast, Fedora Coressa Yum ja Debianissa Apt.

Debianin Apt on toimiva kokonaisuus, ainakin omasta mielestäni. Ehkä sen toimivuus voisi olla hieman samanlaisempaa kuin Gentoon Portagen, mutta ulkonäölliset asiat ovat sivuseikkoja. Aptin käyttäminen onnistuu ”apt-get” ohjelmalla. Perustoiminnot onnistuvat komennoilla ”apt-get install foopacket” ja ”apt-get remove foopacket”.

Koska poistamalla paketin, ei riippuvuuksina asennettuja paketteja poisteta, voidaan poistetun ohjelman riippuvuuksia tarkastella komennolla ”dpkg -p foopacket” ja sitten poistaa apt-getillä. Lisäksi konfiguraatiotiedostot pitää mahdollisesti poistaa käyttämällä komentoa ”dpkg -P” eli ”–purge” lippua.

Lähdekoodeista asentamiseen komento ”apt-get source foopacket” hakee ohjelman lähdekoodit ja kääntäminen onnistuu menemällä lähdehakemistoon ja komentamalla ”./debian/rules”. Paketin riippuvuudet on helppo asentaa ”apt-get build-dep foopacket” -komennolla.

Systeemin asennetut paketit näkee komennolla ”dpkg -l” ja tiettyä pakettia voi etsiä komentamalla ”dpkg -l \*foopacket\*” joka listaa paketit joissa on sana ”foopacket”. Listaus näyttää kaikki järjestelmän paketit, ei vain asennettuja, joten kätevä myös pakettien etsimiseen. Listauksesta näkee myös paketin tilan; asennettu, asennettu ja poistettu vai poistettu mutta ei purgetettu. Paketteja voi etsiä myös ”apt-cache search foopacket” komennolla.

Paketin informaation näkee komennolla ”dpkg -p foopacket” ja ”dpkg -L foopacket” näyttää paketin asennetut tiedostot. ”dpkg -S foo.sh” voi etsiä tiedostoa ja mihin pakettiin kyseinen tiedosto kuuluu.

Lisää ohjelman käytöstä voi lukea vaikkapa Apt manuaalista.

Paketeista voi etsiä tietoa myös Debianin pakettisivulta. Web-käyttöliittymä on hieman ystävällisempi kuin konsolipohjainen liittymä.