diff --git a/README.md b/README.md index 098f31a..791be89 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Linuxra készült programok kézenfekvő terjesztési módja a beépített csomagkezelő használata. -Az alábbiakban az APT csomagkezelőhöz szükséges tároló létrehozása kerül ismertetésre apache2 szerveren, amely felhasználónév jelszó párossal (ez elhagyható) érhető el https protokollon. Az alábbi leírás a www.brickorama.hu szerveren készült, így minden hivatkozásban az található. A felhasználónév és jelszó kezelését az apache2 végzi, itt nem kerül kifejtésre, a leírásban ezekhez a [felhasználónév] és [jelszó] jelzések használatosak. Minden parancs a domainhez tartozó felhasználó (brickorama.hu) nevében került kiadásra, ami másra nincs használva, így elkerülhető pl. a pgp kulcs felülírása. +Az alábbiakban az APT csomagkezelőhöz szükséges tároló létrehozása kerül ismertetésre apache2 szerveren, amely felhasználónév jelszó párossal (ez elhagyható) érhető el https protokollon. Az alábbi leírás a www.brickorama.hu szerveren készült, így minden hivatkozásban az található. A felhasználónév és jelszó kezelését az apache2 végzi, itt nem kerül kifejtésre, a leírásban ezekhez a $felhasználónév és $jelszó jelzések használatosak. Minden parancs a domainhez tartozó felhasználó (brickorama.hu) nevében került kiadásra, ami másra nincs használva, így elkerülhető pl. a pgp kulcs felülírása. ## A tároló aláírásához szükséges PGP kulcs létrehozása @@ -32,27 +32,55 @@ gpg --list-keys Ez a kulcs tartalmazza a privát és publikus kulcsot is, az apt tároló használatához a publikus kulcs szükséges (lásd később), így ki kell exportálni, célszerűen a **www** gyökerébe. ``` - gpg --armor --export brickorama.hu > ~/www/pgp-key.public +gpg --armor --export brickorama.hu > ~/www/pgp-key.public ``` -## A tároló létrehozása +## A tároló Az apt **sources.list** fájlában az alábbi formátumban kell megadni egy tárolót. ``` deb url disztribúció [komponens1] [komponens2] [...] ``` -Egyszerű tárolóhoz lehet használni a gyökérkönyvtárat disztribúció gyanánt (**/**), de érdemes eleve létrehozni legalább egy disztribúciót egy komponenssel, a későbbi könnyű bővíthetség céljából. -Ehhez a webkiszolgálón szükség van egy alkönyvtárra, ez lesz a tároló **url**-e, ha szükséges az autentikáció, ehhez a könyvtárhoz kell beállítani. +### A formátum felépítése + +Archívum típus: + + deb: A tároló a disztribúció számára előre lefordított bináris csomagfájlokat (.deb) tartalmaz. + deb-src: A tároló a csomagok forráskódjának fájljait és a kontroll fájlt (.dsc) tartalmazza. Így lehetőség van a csomagokat a forráskódjukból újra lefordítani. + +Tároló (repository) URL: Ez tartalmazza a tároló fizikai URL alapú elérhetőségét. + +Disztribúció: Ezek tulajdonképpen a a tároló gyökerében lévő **dists** könyvtár alkönyvtárai, lehet a disztribúció kiadásának kódneve (pl. jessie, stretch, buster, sid) vagy a csomagok kiadásának osztálya (pl. oldstable, stable, testing, unstable), attól függően, hogy milyen jellegű csomagfrissítésekre van szükség (régebbi stabil változatoktól a legfrissebb teszt változatokig). + +Komponens: Ez a disztribúció alkönyvtára, az alábbiak közül tartalmazhat egy vagy több értéket: + + main: A tárolóban kizárólag a DFSG szabványnak megfelelő csomagok vannak, valamint ezeknek a csomagonak a függőségei is csak innen származhatnak. Ezek azok a csomagok, amik hivatalosan a Debian rendszer részeinek minősülnek. Ezért alapértelmezetten ez a beállítás az érvényes a forráslista fájlban. + contrib: A tárolóban szintén a DFSG szabványnak megfelelő csomagok vannak, azonban a csomagoknak a függőségei között lehetnek ezen kívülről származó csomagok (pl. non-free) is. + non-free: A tárolóban olyan csomagok vannak, amik nem a DFSG szabvány szerint kerülnek licencelésre. + +A csomagok telepítéséhez a csomagkezelő letölti a disztribúció könyvtárában lévő **Release** vagy **InRelease** fájlt. Mindkettő a **.deb** fájlok útvonalát tartalmazó **Package** fájlok helyét adja meg, az előbbi egy kísérő **Release.pgp** fájllal írja alá az információt, az utóbbi pedig tartalmazza az aláírást is. + +A **Package** csomagindex fájlok komponens könyvtárak **binary-$arch** alkönyvtárában találhatók. A forrásindex fájlok a **source** alkönyvtárban találhatók. + +A Release, InRelease és Package fájlok minden útvonalat relatívként tartalmaznak a tároló gyökeréhez képest. + +A .deb fájlok elhelyezhetők a komponens könyvtárak binary-$arch alkönyvtáraiban, de szétválaszthatók a tároló gyökerében lévő **pool** könyvtárba is. Ekkor azon belül a $disztribúció/$komponens/ könyvtárba kell teni a .deb fájlokat. + +Egyszerű tárolóhoz (flat repository) lehet használni a gyökérkönyvtárat disztribúció gyanánt (**/**), ekkor a metadatok index fájljai a tároló gyökerében, a *deb fájlok pedig annak egy alkönyvtárában vannak. + +### A tároló létrehozása + +Ehhez a webkiszolgálón szükség van egy alkönyvtárra, ez lesz a tároló **url**-e, egyben a tároló gyökere, ha szükséges az autentikáció, ehhez a könyvtárhoz kell beállítani. ``` mkdir ~/www/apt-repo ``` -A disztribúció +A disztribúció tulajdonképpen a tároló gyökerében lévő **dists** könyvtár alkönyvtárai, amelyekben a további alkönyvtárak a komponensek. A csomagokat érdems apt-ftparchive --arch armhf packages pool/rpi4/main/ > dists/rpi4/main/binary-armhf/Packages - gzip -k -f Packages +gzip -k -f Packages apt-ftparchive release . > Release gpg --default-key brickorama.hu -abs -o Relase.gpg Release @@ -67,14 +95,14 @@ wget -q -O - https://www.brickorama.hu/pgp-key.public | apt-key add - Ez után a források közé fel kell venni a tárolót. ``` -echo "deb https://www.brickorama.hu/apt-repo stable main" > /etc/apt/sources.list.d/brickorama.hu.list +echo "deb https://www.brickorama.hu/apt-repo rpi4 main" > /etc/apt/sources.list.d/brickorama.hu.list ``` Amennyiben a tárhely jelszó védett, fel kell venni egy autentikációs fájlt az apt számára. ``` echo "machine https://www.brickorama.hu/apt-repo -login [felhasználónév] -password [jelszó]" > /etc/apt/auth.conf.d/brickorama.hu.conf +login $felhasználónév +password $jelszó" > /etc/apt/auth.conf.d/brickorama.hu.conf ``` A apt tároló használatra kész!