next up previous index
Következő: 5.7.7.2 Ha valami nem Fel: 5.7.7 A kernel patch-elése Előző: 5.7.7 A kernel patch-elése   Index

5.7.7.1 Patch-elés

A kernel inkrementális frissítéseit patch (``folt'') formában terjesztik. Például, ha neked a 2.0.30 verzió van meg, és észreveszed, hogy van hozzá valahol egy `patch-2.0.31.gz', akkor ez azt jelenti, hogy upgrade-elhetsz a 2.0.31 verzióra a patch alkalmazásával. Először talán készíts egy biztonsági másolatot a forrásról. (make clean aztán cd /usr/src; tar zcvf old-tree.tgz linux csinál neked egy tömörített tar archivumot.)

A fenti példát folytatva, tegyük fel, hogy a `patch-2.0.31.gz' az /usr/src-ben van. Menj át az /usr/src-be (cd) és add ki a zcat patch-2.0.31.gz | patch -p0 parancsot (vagy patch -p0 < patch-2.0.31, ha a patch nincs tömörítve). Egy csomó minden fog elsuhanni előtted a képernyőn (vagy épp elvánszorogni, ha annyira lassú a gép). Üzenetek jelennek meg arról, hogy a patch éppen mit csinál, és hogy sikerült-e neki vagy nem. Ez általában túl gyors ahhoz, hogy bármit is el lehessen olvasni. Ha nem vagy biztos benne, hogy sikerült-e, használd a patch -s opcióját, aminek hatására csak a hibaüzeneteket írja ki. Menj be a /usr/src/linux-ba és keress .rej (``reject'') kiterjesztésű fájlokat. A patch néhány verziója (olyan régebbi verziók, amelyeket gyengébb fájlrendszerhez fordítottak) # kiterjesztést ad a ``reject'' fájloknak. A find parancsot használhatod a keresésre:

find . -name '*.rej' -print

Ez kiírja a standard outputra az összes olyan fájl nevét, amely az aktuális könyvtárban, vagy az abból nyíló alkönyvtárakban van és .rej a kiterjesztése.

Ha minden simán ment, akkor add ki a make clean, config, és dep parancsokat ebben és ebben a fejezetben leírtaknak megfelelően.

A patch parancsnak elég sok opciója van. Ahogy az előbb is szó volt róla, a patch -s kikapcsolja az üzeneteket, a hibák kivételével. Ha a kernel forrását nem az /usr/src/linux-ben tartod, hanem valahol másutt, akkor a patch -p1 (az adott könyvtárban) fogja helyesen megpatchelni. A többi patch opció jól le van írva a manualban.

A fenti folyamat akár automatizálható is a patch-kernel scripttel, ami szintén megtalálható a kernel forrásában. Meghatározza a kernel aktuális verziószámát, majd minden patch-et alkalmaz rá amit megtalál, s ami frissebb az aktuális kernel verziójánál.

cd /usr/src
. linux/scripts/patch-kernel

A kernelforrás alapértelmezett könyvtára a /usr/src/linux, de első argumentumként más is megadható. Továbbá a patch-eket az aktuális könyvtárban keresi a script, hacsak a második argumantumban nem adsz meg egy másik könyvtárat.


next up previous index
Következő: 5.7.7.2 Ha valami nem Fel: 5.7.7 A kernel patch-elése Előző: 5.7.7 A kernel patch-elése   Index

1999-09-17