Szinte minden Linux disztribúcióban használt csomagkezelő frontend lehetőséget nyújt arra, hogy akár lokális, akár publikus repository használatával végezzünk frissítéseket vagy programtelepítéseket. Egy-egy ilyen frissítés akár több gigabájtnyi adatforgalmat is eredményezhet, főleg akkor, ha sok kliensünk van igen gazdak csomaggyűjteménnyel. Logikusnak látszik a gondolta tehát, hogy Fedora, illetve CentOS rendszereinkhez készítsünk saját repot. Ehhez némi türelemre, illetve kb. 15 GB-nyi szabad diszkterületre van szükségünk.Első körben nézzük meg, hogy az érintett rendszereink milyen repokat használnak. Ezekről az /etc/yum.conf és a /etc/yum.repos.d könyvtár alatti állományokból tájékozódhatunk. Leggyakrabban a fedora-core, fedora-extras, fedora-updates, illetve a dag (dries) és a livna repok ismertek, ezek tartalmát kell tehát lokálisan elhelyeznünk és elérhetővé tennünk (CentOS esetén értelemszerűen másokat). Készítsünk tehát a leendő frissítőszerveren egy könyvtárat, pl. /var/www/repo néven, ez alatt pedig sorban base, dag, updates, livna, extras nevűeket.
A fedora-core esetén nincs egyéb dolgunk, minthogy a telepítő CD-k vagy DVD RPMS könyvtár(ak) tartalmát átmásoljuk az imént létrehozott könyvtárba a base almappa alá. Erre tökéletesen alkalmas a cp parancs is. A többi repo esetén viszont szinkronizálnunk kell az ott található adatokat a helyi géppel. Szerencsére a legtöbb reponak van rsync szolgáltatása, ezt fogjuk tehát használni. Adjuk ki tehát a következő parancsot:
rsync -av rsync://ftp.belnet.be/packages/fedora/linux/updates/5/i386/ --exclude=debug/ --exclude=repodata/ /var/www/repo/updates/
A fent látható repodata és debug tartalmára nem lesz szükségünk, a többit pedig az rsync szépen leszedi a megfelelő helyre.
Folytassuk a sort a többivel is:rsync -av rsync://ftp.belnet.be/packages/fedora/linux/extras/5/i386/ --exclude=debug/ --exclude=repodata/ /var/www/repo/extras/
rsync -av rsync://rpm.livna.org/rlo/fedora/5/i386/ --exclude=debug/ --exclude=repodata/ /var/www/repo/livna/
rsync -av rsync://apt.sw.be/pub/freshrpms/pub/dag/fedora/5/en/i386/dries/RPMS/ --exclude=debug/ --exclude=repodata/ /var/www/repo/dag/
Ez összességében 15 GB-ot jelent, legyünk tehát türelmesek; az első alkalom fájdalmas, de később már csak a frissítéseket kell letöltenünk.
Ha mindezzel megvagyunk, akkor a /var/www/repo alatti mappaszerkezetben szépen megtalálható lesz a fent említett repok teljes tartalma. Nade hogyan fogja ezt megenni a gépünk? Hát úgy, hogy saját repoadatokat generálunk, erre szolgál a createrepo parancs:
createrepo /var/www/repo/updates/
createrepo /var/www/repo/base/
createrepo /var/www/repo/extras/
createrepo /var/www/repo/livna/
createrepo /var/www/repo/dag/
A folyamat végeztével az egyes könyvtárakban létrejönnek azok a speciális, tömörített XML állományok, amelyek tartalmaznak minden olyan adatot, amely a "raktárak" használatához szükségesek. Nincs más hátra, mint értesítenünk a klienseinket, hogy ne az Interneten keresztül elérhető szervereket, hanem a lokálisat használják. Ehhez az említett yum.repos.d alatti repoállományok módosítására van szükség: keressük meg bennük a mirrorlist beállítást és kommentezzül ki, illetve a baseurl értékét állítsuk át a szerverünk elérésére, pl.:
baseurl=http://192.168.0.2/repo/updates/
Gondoskodjunk róla, hogy a szerveren fusson a webkiszolgáló és a megfelelő tartalmat szolgáltasson a klienseknek. Ha mindent megfelelően csináltunk, akkor a klienseken kiadott yum check-update utasítás már a saját szerverünk repodata állományaiból fog dolgozni.
Béres László
rendszermérnök, RHCE
beres.laszlo@sys-admin.hu