K3b, growisofs ja ongelmat

K3b:llä DVD:tä poltettaessa voi ongelmana olla seuraavanlainen virheilmoitus:
unable to anonymously mmap 33554432: Resource temporarily unavailable

Pikaisella haulla Gentoon foorumilta löytyi syy ongelmaan. dvd+rw-tools v6.1:lla on ongelmia NFS:n kanssa ja paikalliselta levyltä polton pitäisi onnistua.

Ongelman voi kiertää asettamalla rajattomat limitit komennolla ulimit -l unlimited tai vaihtoehtoisesti antamalla K3b:n asetusvalikosta growisofs:lle parametriksi -use-the-force-luke=bufsize:16m. Bufferin koon voi valita väliltä 30-64MB, yli 64MB voi vaikuttaa systeemin vakauteen. Itse testasin limittien asettamista, jonka jälkeen DVD paloi taas ilman ongelmia.

DVD+RW toolsin sivuilta löytyi myös asiaan liittyvä teksti:
IMPORTANT NOTE for 6.0 users! Newer Linux kernels have ridiculously low default memorylocked resource limit, which prevents privileged users from starting growisofs 6.0 with ”unable to anonymously mmap 33554432: Resource temporarily unavailable” error message. Next version will naturally have workaround coded in, but meanwhile you have to issue following command at command prompt prior starting growisofs:
* if you run C-like shell, issue ’limit memorylocked unlimited’;
* if you run Bourne-like shell, issue ’ulimit -l unlimited’;

Gentoo, portage ja eix

Gentoon viikottaisessa uutislehdykässä 12.06.2006 oli vinkkinä eix -ohjelman käyttäminen. Eix on kätevä työkalu, joka indeksoi portage-puun ja mahdollistaa nopeat haut portagesta.

Alkuunpääsemiseksi asennetaan Eix ja päivitetään indeksi:

# emerge eix
# update-eix

Eix indeksoi portage-puun lisäksi myös ebuildit, jotka ovat ”PORTDIR_OVERLAY:ssä”, eli portagen overlayssa.

Eix:n käyttäminen on helppoa. Hakujen tekeminen onnistuu komennolla eix foo paketeille tai eix -S bar pakettien kuvauksille. Jotain tiettyä pakettia haettaessa voidaan käyttää komentoa eix -e packagename. Lisäksi hauissa voidaan käyttää säännöllisiä lausekkeita (regular expression).

Eix tulostaa hauista jokaisen saatavilla olevan paketin version ja ~ -merkatut paketit ovat unstableja ja ! tarkoittaa hard maskattuja paketteja.

Esimerkiksi tulostus voi näyttää tältä:

pikseli ~ # eix amarok
* media-sound/amarok
     Available versions:  1.3.8 1.4.0a
     Installed:           1.4.0a
     Homepage:            http://amarok.kde.org/
     Description:         Advanced audio player based on KDE framework

Viimeisenä vinkkinä voit ajaa eix-sync, joka vastaa emerge –sync ja update-eix -komentojen ajamista.

Eix:n suorittamat haut portageen ovat ”selkeästi” nopeampia, kuin jos käyttäisi emerge -s foo -komentoa.

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

Swap-tiedostot

Swappia voi Linuxissa käyttää perinteisen swap-osion asemesta myös suoraan tiedostoista, eli swap-fileistä. Swapin hallinta on muutenkin helppoa, sillä swap-tilan voi kytkeä päälle ja pois ilman uudelleenkäynnistystä ja vaikka tila olisikin käytössä.

Perinteisesti swap on sijoitettu erilliselle osiolleen (mahdollisesti turvallisempaa), mutta swapin voi käytännöllisistä syistä luoda myös tiedostoja käyttäen. Swap-tiedostot ovat swap-osioihin verrattuna helpompia luoda, poistaa ja muuttaa kooltaan.

Swap-tiedoston luominen onnistuu seuraavalla komennolla (x86-alustalla maksimissaan 2GB), kuten ”man mkswap” ohjeistaa:
dd bs=1024 count=1M if=/dev/zero of=/path/to/swapfile.n

Komento luo 1 GB kokoisen tiedoston (1 MB * 1024) paikkaan ”/path/to/swapfile.n”

Swap-tilalle voidaan antaa myös prioriteetteja (man 2 swapon). Korkeamman prioriteetin swap-tila käytetään ennen alemman prioriteetin swappia ja saman prioriteetin swap-tila ”jaetaan” (striped). Prioriteetti määritellään joko swapin aktivoinnissa ”swapon” komennolla tai /etc/fstab tiedostossa (esimerkki).

# swap space in device partitions
/dev/hda2        none    swap    pri=5,defaults 0 0
/dev/hde2        none    swap    pri=5,defaults 0 0
# swap space in swap files
/work/swapfile.1 none    swap    pri=5,defaults 0 0
/work/swapfile.2 none    swap    pri=5,defaults 0 0

Kun swap-tila on varattu, täytyy se alustaa swap-otsikkotiedoilla seuraavasti.

	mkswap /dev/hda2
	mkswap /dev/hdb1
	mkswap /work/swapfile.1
	mkswap /work/swapfile.2

Swap-tila aktivoidaan järjestelmän käynnistyksessä ja myöhemmin sama voidaan myös tehdä ”swapon” komennolla ennen swapin käyttöönottoa, esimerkiksi seuraavasti:

	swapon /dev/hdf1
	swapon /work/swapfile.3

Swap-tilan käyttäminen useammalta osiolta tai swap-tiedostojen jakaminen useammalle osiolle vastaa RAID-0:n toimintaa. Yleensä on hyvä olla useampi swap-alue samalla prioriteetilla toiminnan tehostamiseksi. Jos koneessa on riittävästi muistia niin swappia ei periaatteessa tarvita ollenkaan, sillä swapin käyttäminen on hitaampaa kuin muistin käyttäminen.

Swapin poistaminen käytöstä voidaan suorittaa ”swapoff” komennolla (man swapoff).

	swapoff /work/swapfile.1
	swapoff /work/swapfile.2
	swapoff /dev/hdb1
	swapoff /dev/hda2

Lisää swapista voi lukea swap-mini-howto:sta

iBook ja muistin lisääminen

Mac OS X, kuten monet muutkin käyttöjärjestelmät, rakastavat muistia. Mitä enemmän, sitä parempi. OS X toimii ihan hyvin iBookin vakiomäärällä muistia 512MB, mutta useamman softan ollessa yhtäaikaa päällä on käyttö hieman tahmeaa. Onneksi muisti on kohtalaisen edullista ja ohjeita muistin omatoimiseen lisäämiseen on netissä tarjolla. Yksi hyvä sivusto on PB FixIt Guide, jossa on ohjeita Powerbookkien, iBookkien ja Mac Minien korjaamiseen selkeiden kuvien kera.

FixIt Guiden ohjeet eivät ole ihan ajantasalla. Alkuun hankalalta vaikuttanut muistinlisäys onnistuikin itseasiassa todella helposti. Ohjeista poiketen ei syksyllä julkaistussa iBookissa tarvinnut irroittaa Airport-korttia tai nykiä piuhoja. Akku pois, näppäimistö auki, suojalevyn ruuvit ja levy pois edestä ja muistipalikka sisään. Helppoa.

Yksinkertainen operaatio näytti seuraavalta:

muisti on nam muisti on nam muisti on nam muisti on nam muisti on nam muisti on nam

Kuten kuvista voinee sanoa, on digikamera nähnyt parhaat päivänsä. Toki oikea syyhän on aina kuvaajassa, mutta laitteen kierrättäminen lattian kautta ei ole elektroniikalle kovin terveellistä.

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ä.

MySQL:n käyttöönotto aloittelijoille

Reallylinux.comissa on hyvä artikkeli MySQL:n käyttöönotosta Linuxissa. ”So You’d Like To Use MySQL – Getting Started with the World’s Most Popular Open Source Database” esittelee lyhyesti MySQL tietokannan ja antaa ohjeita asennukseen (rpm, binaarit ja lähdekoodi) ja lyhyet vinkit toimenpiteistä, mitä pitää tehdä ennen käyttöönottoa.

Ihan hyvä artikkeli vähemmän Linuxia käyttäneille. Artikkeli mainitsee jakelupakettien kautta saatavat MySQL-paketit, mutta kehottaa käyttämään MySQL:n omia paketteja nopeamman päivitystahdin vuoksi. On silti syytä pysyä jakelupakettien pakettijärjestelmän (mm. apt-get, portage, YaST, yum, up2date) omissa MySQL-paketeissa, sillä yhteensopivuus järjestelmän kanssa on parempi (init-skriptit, logitus jne.)

Artikkeli on ihan hyvää luettavaa, jos MySQL ja tietokannat eivät ole tuttuja ja suunnittelmissa on tietokannan asentaminen nurkassa nököttävälle Linux-purkille.

MySQL ei ole ainoa olemassa oleva tietokanta, mutta ehkä se helpoiten alkuunpäästävä ja ohjelmien tuki on hyvää. Toinen mainio vaihtoehto on myös PostgreSQL. Tehokkuudesta ja nopeuseroista ja tuen laajuudesta en lähde tässä spekuloimaan. Molemmille on hyvät dokumentoinnit verkossa, joilla pääsee alkuun.