4. Gyakorlat

Itt az idő, hogy a gyakorlatban is kipróbáld magad. Van egy egyszerű "linuxstatus" nevű shell szkriptem, melyet telepíteni akarok, hogy aztán az "/usr/bin/linuxstatus" könyvtárból tudjam használni. Tehát először a "linuxstatus" fájl mellé készíts egy könyvtárat, legyen ennek a neve "debian".


$ mkdir -p ./debian/usr/bin
$ cp linuxstatus ./debian/usr/bin

4.1. control

Kezdjük a control fájllal. A verziószámnak kell tartalmaznia egy kötőjelet és egy további Debian csomag verziószámot, például "1.1-1". Ha a programod csak hordozható például shell szkriptekből áll, akkor az "Arhitecture" mezőben az "all" értéket használd.

A "Depends" mező kitöltéséhez szükséged van azon csomagok neveire, amelyekben azok a fájlokat vagy programokat vannak, melyeket a csomagodban lévő alkalmazások, szkriptek stb. használnak. Ezen információk megszerzéséhez használhatod a "dpkg -S <fájl>" parancsot, például:


$ dkpg -S /bin/cat
coreutils: /bin/cat

A "coreutils" csomagról többet megtudhatsz, ha az "apt-cache showpkg coreutils" parancsot használod. Ez többek között kiírja a jelenleg telepített csomag verziószámát.

Egyébként két további módon is hozzájuthatsz ilyen információkhoz. A http://www.debian.org/distrib/packages honlapon Debian fájlokat kereshetsz. Töltsd ki az oldal alján lévő mezőket.

Végül, de nem utolsó sorban van egy frankó GUI alkalmazás (grafikus program - a ford.), "kpackage", mely kényelmes csomagok közti böngészési lehetőséget nyújt, és egyedi fájlok alapján is lehetséges csomagot keresni. (kipróbáltam, megette az összes memóriámat (128M mem + 256M swap), úgy kellett lelőnöm távoli gépről, szóval én inkább a karakteres csomagkezelő programok használatát javaslom - a ford.)

A "Suggests", "Conflicts", és a "Replaces" stb. mezőket ki lehet hagyni, ha nem szükségesek.

Íme az első "control" fájlunk eredménye:

Package: linuxstatus
Version: 1.1-1
Section: base
Priority: optional
Architecture: all
Depends: bash (>= 2.05a-11), textutils (>= 2.0-12), awk, procps (>= \
1:2.0.7-8), sed (>= 3.02-8), grep (>= 2.4.2-3), coreutils (>= 5.0-5)
Maintainer: Chr. Clemens Lee <clemens@kclee.com>
Deszkription: Linux system information
 This szkript provides a broad overview of different
 system aspects.

A "control" fájlt másold a "debian" könyvtárban lévő "DEBIAN" könyvtárba.


$ mkdir -p debian/DEBIAN
$ find ./debian -type d | xargs chmod 755   # a Debian Woodynál ez szükséges, ne kérdezd, hogy miért
$ cp control debian/DEBIAN

Ha nagy valószínűséggel többen fogják használni a csomagodat a jövőben, akkor segíthet a Writing Debian package descriptions (Leírás készítése Debian csomaghoz) cikk.

4.2. dpkg-deb

Már majdnem kész van. Most gépeld be:


$ dpkg-deb --build debian
dpkg-deb: building package `linuxstatus' in `debian.deb'.
$ mv debian.deb linuxstatus_1.1-1_all.deb

Úh, egyszerűbb volt, mint ahogy azt várni lehetett. Most már csak telepítened kell a csomagot a saját gépedre, és kész:


root# dpkg -i ./linuxstatus_1.1-1_all.deb

Gépeld be a "linuxstatus", vagy add ki az "ls -l /usr/bin/linuxstatus" parancsot, hogy sikerült-e. Ha nem kell már a csomagod, akkor gépeld be a "dpkg -r linuxstatus" parancsot és ellenőrizd, hogy sikerült-e az eltávolítás. Ha telepítesz egy újabb verziót, akkor nem kell eltávolítanod a régit.

Ha érdekelnek verziószámozási sémák és a névválasztási konvenciók a Debian csomagok tekintetében, akkor olvasd el ezt a bekezdást a Debian Reference (Debian referencia) leírásban.