Raktározzunk! - Repository készítése
2006/08/13 18:27
403 megtekintés
A cikk már legalább egy éve nem frissült, az akkor még aktuális információk lehet, hogy mára elavultak.
Egy-egy Fedora vagy CentOS repository-ból történő frissítés bizony akár több száz megabájt adatforgalommal járhat. Ezt sok klienssel megszorozva az annyi, mint... szóval csináljunk inkább saját raktárat!

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. A repogenerálás folyamata 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

Csatlakozz hozzánk!

Ajánljuk

European Schoolnet Academy Ingyenes online tanfolyamok tanároknak
School Education Gateway Ingyenes tanfolyamok és sok más tanárok számára
ENABLE pilot Program iskoláknak a bullying ellen
eBiztonság Minősítés Minősítési rendszer oktatási intézményeknek