Debian csomagtárolókészítés

From MalinaWiki

Jump to: navigation, search

Ezt a leírást a http://www.debian.org/doc/manuals/repository-howto/repository-howto.en.html címen található dokumentum lámaszíntű fordítása alapján készítettem.

A Debian csomagtároló - Debian Packages Repository - feladata az, hogy a .deb csomagként telepíthető programok központi, bárki által elérhető gyűjtőhelyeként szolgáljon. A tárolók elérése többféle módon lehetséges, legelterjedtebb formája a hálózati elérés, amikor is az apt parancsokkal kombinálva az /etc/apt/sources.list fájlban található hálózati címek alatt fellelhető programok közül telepíthetsz. Ha ilyen tárolót szeretnél készíteni és fenntartani, jobb ha tovább olvasol!

Tartalomjegyzék

[szerkesztés] Debian tárolók tartalma

Egy debian tároló mindig tartalmazza a benne elhelyezett DEB csomagokat és két darab speciális fájlt: Packages.gz a bináris csomagoknak, és Sources.gz a forrás csomagoknak.

Ha a tárolód listázva van a sources.list fájlban (/etc/apt/sources.list), az apt-get update parancs lekéri a címként megjelölt tároló indexét, amit a Packages és a Sources fájl tartalmaz. A címek előtt alkalmazott kulcsszó minősíti az adott tároló fajtáját: a bináris csomagokat deb kulcsszóval, a forrás csomagokat deb-src kulcsszóval jelölheted. Az apt-get update parancs meghívásával letöltöd az adott indexfájlokat, majd az apt-cache vagy az apt-get install parancs keresgél az adott csomag adatai után a betárolt indexfájlokban.

A Packages.gz tartalmazza a csomag nevét, verzióját, méretét, a rövid és a hosszú leírást, és a csomag dependenciáját, plusz több opcionális információt. minden információt visszakapsz, ha Debian csomagkezelővel kéred: dselect vagy aptitude.

A Sources.gz tartalmazza a csomag nevét, verzióját, méretét és a fordítás dependenciáját (szükséges csomagokat). Ezeket az információkat megkaphatod az apt-get source parancsal.

Van egy opcionális Release fájl, amely információkat tartalmaz magáról a tárolóról.

Kétféle típusú tároló létezik: egyszerű és a komplexebb automata tároló. A komplexebb tárolóba csak speciális úton juthat el a felhasználó: a disztribúció, a komponens és egy exact útvonal megadásával.

Az egyszerűbb tároló csak egy sima könyvtár.


[szerkesztés] Komlex tároló felépítése

Nézd meg egy komplexebb tároló könyvtárszerkezetét:

A tároló gyökere:

 | 
 +-dists
   | 
   |-stable
   | |-main
   | | |-binary-alpha 
   | | |-binary-arm
   | | |-binary-...
   | | +-source 
   | |-contrib
   | | |-binary-alpha 
   | | |-binary-arm
   | | |-binary-...
   | | +-source 
   | +-non-free
   |   |-binary-alpha
   |   |-binary-arm
   |   |-binary-...
   |   +-source
   |
   |-testing 
   | |-main
   | | |-binary-alpha 
   | | |-binary-arm
   | | |-binary-...
   | | +-source 
   | |-contrib
   | | |-binary-alpha 
   | | |-binary-arm
   | | |-binary-...
   | | +-source 
   | +-non-free
   |   |-binary-alpha
   |   |-binary-arm
   |   |-binary-...
   |   +-source
   |
   +-unstable 
   |-main
   | |-binary-alpha 
   | |-binary-arm
   | |-binary-...
   | +-source 
   |-contrib
   | |-binary-alpha 
   | |-binary-arm
   | |-binary-...
   | +-source 
   +-non-free
   |-binary-alpha
   |-binary-arm
   |-binary-...
   +-source

Jól látható, hogy a gyökér könyvtár tartalmaz egy dists könyvtárt, amelyben megtalálhatóak a dIsztribúciók könyvtárai: stable, testing és unstable. A disztribúciók tartalmazzák a komponensek könyvtárait, amely lehet main, contrib és non-free. A szabad felhasználású csomagok mennek a main könyvtárba, a nem-szabad felhasználásúak mennek a non-free könyvtárba. Az a szabad felhasználású csomag, amely függ egy nem-szabad csomagtól, a contrib könyvtár tagja. A komponensek könyvtárai tartalmazzák a sources könyvtárt, illetve a számítógépek felépítését jelképező könyvtárakat. Ezeken belül találhatóak meg a csomagok, ha nincs megadva pluszként egy útvonal. Ha még van a komponens utábn útvonal megadva, akkor azt az útvonalat hozzá kell tenni az architektúrát jelentő könyvtárak után.

Mindegyik binary.* könyvtár tartalmaz egy Packages.gz fájlt, és egy opcionális Release fájlt. Mindegyik forrás könyvtár tartalmaz egy Sources.gz és egy opcionális Release fájlt. Az a csomag nem elérhető, amely nem szerepel az index fájlban, mert ez az index fájl tartalmazza az adott csomag elérési útját.


[szerkesztés] Egyszerű tároló felépítése

Az egyszerű tároló megegyezik a root tárolóval.

A tároló gyökere:

 |
 |-binary
 +-source

[szerkesztés] Index fájl készítése

A dpkg-scanpackages generál egy Packages fájlt, míg a dpkg-scansources Sources fájlt. Mindkettő a kimenetre küldi az adatokat. Kapd el, és csomagold be:

  dpkg-scanpackages arguments | gzip -9c > Packages.gz.

Mindkét eszköz esetében ugyanaz az eljárás. Két argumentet kell megadnod: az első az a könyvtár, ahol vannak a csomagok, és a második a fájl, amibe írhatja az adatokat. mivel nem akarod felülírni, de kell az argument, ad meg a /dev/null értéket.

A dpkg-scanpackages .deb csomagokat keres; dpkg-scansources pedig .dsc fájlokat keres. Az amit szükséges tenni: .orig.gz, .diff.gz és .dsc egymás után. A .changes fájl nem szükséges.

A komplexebb tárolóban a két index fájlt az alábbi módon tudod létrehozni:

 $ cd my-repository
 $ dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
 $ dpkg-scansources source /dev/null | gzip -9c > source/Sources.gz

[szerkesztés] Release fájl készítése

Ha engedélyezni akarod a felhasználóknak a tárolódban, hogy használják a Pinning-et, be kell helyezned egy Release fájlt az összes könyvtárba, amely tartalmaz Index fájlt.

A Release fájl egy egyszerű és rövid szöveges fájl a következő tartalommal:

 Archive: archive
 Component: component
 Origin: YourCompany
 Label: YourCompany Debian repository
 Architecture: architecture


Archive

A Debian csomag disztribúciójának neve a könyvtárban: stable, testing, unstable.


Component

A csomag része: main, non-free, or contrib.


Origin

A csomag készítőjének neve.


Label

Akármi lehet itt, bármit írhatsz.


Architecture

   A csomag gépi architektúrája a könyvtárban: i386, sparc vagy forrás.

Elég, ha csak az Archive és Architecture paramétereket használod.


[szerkesztés] Pool készítése

Automatikus tárolóval, disztrib csomagokkal különböző könyvtárakban gyorsan fejetlenségbe torkolhastz, a csomagok könyvtárak közötti mozgatása közben. Erre nyújt kitűnő megoldást a Pool létrehozása. A Pool egy további könyvtár a tároló root könyvtárában. A Pool csak egy hatalmas tároló. olyan csomagok kerülnek ide, amelyek egyszer elkészülnek, de aztán tojsz rá.

[szerkesztés] Eszközök

Változatos eszközök állnak rendelkezésedre, hogy könnyen és automatizált módon hozz létre Debian achivumokat.

 apt-ftparchive mozgathatod Debian csomagkollekció fájljait . Része az apt-utils csomagnak.
 apt-move ugyanaz

[szerkesztés] Az elkészült tároló használata

Mindegyik tároló kap egy sort az /etc/apt/sources.list fájlban. Ez a sor tartalmazza az a tároló elérését, és tipusát. A bináris deb paranccsal kezdődik, míg a forrásokat tartalmazó tároló deb-src paranccsal. Mindkét esetben az alábbi szintakszis követendő:

 deb|deb-src uri distribution [component1] [component2] [...]

Az uri a tároló rott könyvtára, mint például: ftp://ftp.yoursite.com/debian, http://yoursite.com/debian, vagy hekyi fájlként file::///home/joe/my-debian-repository

Automatikus tárolóként megkell adnod egy disztribúciót és egy vagy több komponenst, és a disztribúció nem végződik / jellel.

Példák automatikus tárolókra:

 deb ftp://sunsite.cnlab-switch.ch/mirror/debian/ unstable main contrib non-free
 deb-src ftp://sunsite.cnlab-switch.ch/mirror/debian/ unstable main contrib non-free

Ez a két sor határozza meg egy autmatikus bináris és forrás tárolót ftp://sunsite.cnlab-switch.ch/mirror/debian/ root könyvtárral, unstable disztribúcióval main, contrib és non-free komponensekkel.

Ha a tároló nem automatikus akkor a disztribúciót meghatározhatod relatív útvonallal az index fájlban, és egy / jellel a disztribúció végén. Nem tartalmazhat komponenst.

Példák egyszerű tárolókra:

 deb file:///home/aisotton/rep-exact binary/
 deb-src file:///home/aisotton/rep-exact source/

Az első sor első része határozza meg a bináris tárolót a /home/aisotton/rep-exact/binary könyvtárként a helyi gépeden. A második sor adja meg a forrástárolót a /home/aisotton/rep-exact/source könyvtárban.

Personal tools