A.5. A CTM használata

A CTM használatáva a távoli könyvtárakat tudunk egy központi változattal szinkronban tartani. Eredetileg a FreeBSD forrásaihoz fejlesztették ki, de idővel mások más célokra is alkalmasnak találhatják majd. Az eltérések (delták) feldolgozásával kapcsolatban kevéske dokumentáció áll rendelkezésre, ezért a ctm-users levelezési listát érdemes felkeresni, ha többet szeretnénk megtudni a CTM egyéb célú alkalmazásairól.

A.5.1. Miért használnánk a CTM-et?

A CTM segítségével a FreeBSD forrásainak helyi másolatát hozhatjuk létre. A források több különböző “kivitelben” is hozzáférhetőek. A CTM minden esetben képes eleget tenni az igényeinknek, akár az egész CVS fát, akár annak egy részét kívánjuk csak figyelemmel követni. Ha netalán FreeBSD fejlesztők lennénk, és híján vagyunk vagy éppen gyenge TCP/IP kapcsolattal rendelkezünk, esetleg egyszerűen csak automatikusan értesülni szeretnénk a változásokról, a CTM-et nekünk találták ki. A leggyorsabban fejlődő ágakból is naponta legfeljebb három deltát fogunk kapni, azonban érdemes megfontolni a változások automatikus elküldését levélben. A szükséges frissítések méretét mindig igyekszünk minimalizálni. Ez egyébként általában alig 5 KB, de néha (tízből egyszer) előfordul, hogy 10 és 50 KB között van, és időnként 100 KB vagy afeletti mennyiségű frissítés is érkezhet.

Amikor a fejlesztők által használt forrásokat töltjük le, magunknak kell gondoskodnunk a menet közben felmerülő különböző problémák megoldásáról. Ez kiváltképp igaz abban az esetben, amikor az aktuális, vagy hivatalos nevén “CURRENT” ágat követjük. Mielőtt azonban egy ilyenbe belevágnánk, érdemes fellapozni a FreeBSD legfrissebb változatának használatáról szóló fejezetet.

A.5.2. Mire van szükségünk a CTM használatához?

A működéshez két komponens szükségeltetik: a CTM kliensprogramja és hozzá a kezdeti delták (amivel majd letöltjük a “CURRENT” forrásait).

A CTM program már a 2.0 kiadástól kezdve a FreeBSD része, és a források között a /usr/src/usr.sbin/ctm könyvtárban találjuk meg (amennyiben felraktuk).

A CTM működéséhez kellő “deltákat” két módon, FTP-n vagy e-mailen keresztül szerezhetjük be. Ha el tudunk érni interneten levő FTP oldalakat, akkor az alábbi FTP helyeken találunk a CTM-hez használható adatokat:

ftp://ftp.FreeBSD.org/pub/FreeBSD/CTM/

valamint lásd a tükrözéseket.

FTP-n keresztül lépjünk be a könyvtárba, töltsük le a README nevű állományt és kövessük a benne szereplő utasításokat.

Ha viszont e-mailen keresztül akarjuk megszerezni a deltákat:

Iratkozzunk fel a CTM terjesztési listáinak egyikére. A ctm-cvs-cur lista az egész CVS-fát, míg a ctm-src-cur a fő fejlesztési ágat teszi elérhetővé. A ctm-src-4 a 4.X kiadásaihoz ágakat tartalmazza, és így tovább. (Ha nem tudjuk, hogyan kell feliratkozni egy levelezési listára, akkor kattintsunk a lista nevére vagy kövessük a http://lists.FreeBSD.org/mailman/listinfo linket, majd kattintsunk arra a listára, ahova fel akarunk iratkozni. Ezen az oldalon az összes, a feliratkozáshoz nélkülözhetetlen információnak szerepelnie kell.)

Miután elkezdenek megérkezni a CTM-frissítéseket tartalmazó levelek, a tartalmukat a ctm_rmail programmal tudjuk kicsomagolni és felhasználni. Az /etc/aliases állományba akár közvetlenül is beírhatjuk a ctm_rmail programot, és ezzel a önállósítani tudjuk a levélben érkező frissítések feldolgozását. A ctm_rmail man oldalán olvashatjuk ennek részleteit.

Megjegyzés: Nem számít, milyen módon jutunk hozzá a CTM által használt deltákhoz, minden esetben fel kell iratkoznunk a ctm-announce levelezési listára. Az elkövetkezendőkben ez lesz az egyetlen hely, ahová a CTM rendszer működtetésével kapcsolatos bejelentések beküldésre kerülnek. A feliratkozáshoz kattinsunk a fenti lista nevére és kövessük a mellette szereplő utasításokat.

A.5.3. A CTM első használata

Mielőtt nekilátnánk a CTM-hez tartozó delták használatának, először el kell jutnunk egy kiindulási ponthoz, ahonnan majd létre tudjuk hozni a rákövetkező deltákat.

Ehhez elsőként vegyük számba, pontosan mink is van. Általában mindenki egy “üres” könyvtárral kezd. Ilyenkor egy kezdeti “Empty” (mint “üres”) elnevezésű deltával tudjuk megkezdeni az CTM által ismert fa szinkronizálását. Erre a célra lesznek majd szintén alkalmasak a “megkezdett” delták is, amelyek valamikor a CD-re fognak felkerülni.

Mivel a fák maguk több tíz megabyte-nyi méretűek, ezért érdemes inkább valami kéznél levő eszközzel megkezdeni a folyamatot. Ha van -RELEASE verziójú CD-nk, akkor másoljuk le róla és bontsuk ki a kiindulásként használt forrásokat. Ezzel jelentős mennyiségű adat átvitelét takaríthatjuk meg.

A “kezdő” deltákat könnyen megismerjük a szám után X karakterrel leválasztott nevükről (például src-cur.3210XEmpty.gz). Az X után szereplő megnevezés a kezdeti “kiindulás” (seed) fokának felel meg. Az Empty egy üres könyvtárra utal. A szabályok szerint az Empty állapotból 100 deltánként jön létre újabb (kiindulásra alkalmas) alapváltozat. Ezek azonban nagyon nagyok is lehetnek. A 70 vagy 80 megabyte-os gzippel csomagolt adatok gyakoriak az XEmpty delták esetén.

Miután kiválasztottuk a számunkra megfelelő alapváltozatot, szükségünk lesz a tőle nagyobb sorszámú összes deltára is.

A.5.4. A CTM használata a hétköznapokban

A delták felhasználásához egyszerűen csak ennyit kell tennünk:

# cd /ahol/tárolni/akarjuk/az/adatokat
# ctm -v -v /ahol/tároljuk/a/deltákat/src-xxx.*

A CTM képes értelmezni a gzip által csomagolt adatokat, ezért nincs szükség a delták előzetes kitömörítésére, amivel tárhelyet tudunk spórolni.

Hacsak nem tekinti tökéletesen biztonságosnak az egész folyamatot, akkor a CTM nem fog módosítani a fán. A deltákat a CTM -c kapcsolójával is ellenőrizhetjük, aminek során egyáltalán nem fog módosulni a forrásfa. Ekkor egyszerűen csak ellenőrzi a delták sértetlenségét és megnézi, hogy minden rendben zajlana-e az alkalmazásuk során.

A CTM-nek vannak még további kapcsolói is, melyekről bővebben a man oldalakból és a forráskódokból tájékozódhatunk.

Most már minden megvan, ami kellhet. Amikor kapunk egy újabb deltát, a forrásaink frissítéséhez csak futtassuk át a CTM-en.

Ne töröljük le azokat a deltákat, melyeket nehezen tudtunk letölteni. Helyette érdemes inkább megtartani ezeket arra az esetre, ha valami rossz történne. Még ha csak floppylemezek is állnak rendelkezésünkre, mindenképpen másoljuk le ezeket az fdwrite paranccsal.

A.5.5. A saját változtatásaink megtartása

Fejlesztőként biztosan szeretnénk kísérletezni és állományokat megváltoztatni a forrásfában. A CTM a helyben elkövetett változtatásokat csak korlátozottan támogatja: az ize nevű állomány meglétének vizsgálata előtt az ize.ctm állományt fogja keresni. Ha létezik, akkor a CTM az ize helyett ezen fog dolgozni.

Ezzel a viselkedéssel nyerjük a saját változtatásaink megtartásának egyszerű módját: csak másoljuk le .ctm kiterjesztéssel a módosítani tervezett állományokat. Ezután már szabadon módosíthatjuk a forrásokat, miközben a CTM a .ctm kiterjesztésű állományokat folyamatosan szinkronban tartja.

A.5.6. A CTM egyéb érdekes beállításai

A.5.6.1. Derítsük ki pontosan miket is fog érinteni a frissítés

A CTM által a forrásokon elvégzendő változtatások listáját az -l kapcsolóval kérdezhetjük le.

Ez akkor esik kézre, ha szeretnénk feljegyezni a bekövetkező változásokat, vagy bármilyen módon elő- vagy utófeldolgozni a módosított állományokat, esetleg szimplán elővigyázatosak akarunk lenni.

A.5.6.2. Biztonsági másolat készítése a frissítés előtt

Néha egyszerűen csak szeretnénk az összes érintett állományról biztonsági másolatot készíteni a CTM által elvégzett frissítés előtt.

A -B mentés-állomány beállítás megadásával az adott CTM delta által módosítandó összes állomány tárolásra kerül a mentés-állomány nevű állományba.

A.5.6.3. A frissíthető állományok korlátozása

Egyes esetekben érdekünkben állhat leszűkíteni a CTM által eszközölt frissítések hatáskörét, vagy egyszerűen csak néhány állomány szinkronizálására van szükségünk.

A CTM számára feldolgozható állományok listáját reguláris kifejezés formájában az -e és -x opciók mentén határozhatjuk meg.

Például ha a lib/libc/Makefile állomány az összegyűjtött CTM delták szerinti legfrissebb verziójához kívánunk hozzájutni, akkor futtassuk az alábbi parancsot:

# cd /akarhova/ahova/ki/akarjuk/bontani/
# ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*

A CTM deltákban megadott minden egyes állomány esetén az -e az -x opciók a parancssorban történt megadásuk sorrendjében kerülnek feldolgozásra. Egy állományt kizárólag csak akkor dolgoz fel a CTM, ha az az -e és -x opciók kiértékelése után is indokolt.

A.5.7. További tervek a CTM-mel kapcsolatban

Rengeteg van:

A.5.8. Egyebek

Léteznek delták a portok gyűjteményéhez is, azonban még nem mutatkozott túlzottan nagy érdeklődés irántuk.

A.5.9. CTM tükrözések

A CTM/FreeBSD anonim FTP-n keresztül elérhető az alábbi tüköroldalak valamelyikéről. Amennyiben ezen a módon kívánjuk letölteni a CTM rendszerhez tartozó állományokat, először próbálkozzunk a hozzánk legközelebb levő szerverrel.

Ha bármilyen gond merülne fel, értesítsük a ctm-users levelezési listát.

Ha nem találtunk volna hozzánk közel eső tükrözést, vagy ha talált tükör nem elég friss, akkor próbálkozzunk egy olyan keresőmotor használatával, mint például az alltheweb.

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.