2002.11.30, $Date: 2003/12/19 20:07:14 $
Verziótörténet | ||
---|---|---|
Verzió: 3.0 | 2003.12.19 | Átdolgozta: ccl |
Két elírás javítása Claudio Cattazzo jelzése alapján. | ||
Verzió: 2.0 | 2003.12.13 | Átdolgozta: ccl |
Frank Lichtenheld visszajelzésének figyelembe vétele. | ||
Verzió: 1.0 | 2003.11.08 | Átdolgozta: ccl |
Első kiadás. |
Egy teljesen újonnan elkészített archívumot (fájl, program, szkript, csomag stb. - a ford.) először mindig a saját rendszeredre telepítsd, ne tedd bele rögtön a hivatalos Debian disztribúcióba. Tanulmányozd a "hivatalos" Debian New Maintainers' Guide (Új Debian karbantartók kézikönyve) leírást.
A szabályos Debian csomagok egy komplett forrás-csomagot tartalmaznak, az ebben lévő debian/rules fájl automatikusan végrehajtja a megfelelő lépéseket, beleértve a bináris elkészítését is. Itt mi most csak azt mutatjuk be, hogyan tegyünk bele egy kis bináris csomagba egy egyszerű shell szkriptet, vagy egy futtatható binárist.
Feltételezem, hogy tudod használni a "tar és "man" parancsokat, valamint tudod mi a ".tar.gz" fájl és a Debian (illetve egy szerkesztő használatát ;-), de azt is feltételezem, hogy még soha nem foglalkoztál az olyan programokkal, mint az "ar", vagy a "dpkg".
A Debian Reference (Debian referencia) egy kitűnő áttekintést, valamint részletes információt nyújt a Debian minden sajátosságáról.
A Debian csomagkészítés hivatalos dokumentációja a Debian New Maintainers' Guide (Új Debian karbantartók kézikönyve).
A magyar fordítást Záhonyi Loránd István készítette (2004.06.01). A lektorálást Daczi László végezte el (2004.06.02). A dokumentum legfrissebb változata megtalálható a Magyar Linux Dokumentációs Projekt honlapján.
Idézet a 2.2.2-es Debian Reference (Debian referencia) leírásból, 2002.11.30: "A Debian csomag belső formája a deb(5) kézikönyv oldalban van leírva. Mivel a belső forma állandóan változik (a fő Debian kiadások között), mindig a dpkg-deb programot használd a .deb fájlok kezeléséhez."
A dpkg-deb kézikönyv oldalából: "dpkg-deb összecsomagol, kicsomagol, és információkat ad a Debian archívumokról. A .deb fájlokat az ar és tar programokkal is kezelheted, ha szükséges. Használd a dpkg-t a rendszereden lévő csomagok telepítéséhez és törléséhez."
Egy csomó példaként használható .deb fájlt találsz a "/var/cache/apt/archives/" könyvtárban. A "dpkg-deb -I valamilyen_csomag.deb" paranccsal megkapod a csomag által kínált különlegességeket. A "dpkg-deb -c valamilyen_csomag.deb" listázza, hogy a csomagban lévő fájlok hova kerültek a telepítés után.
Listázd ki a .deb fájl tartalmát az "ar tv valamilyen_csomag.deb" paranccsal. Használd az "x" kapcsolót a fájl kicsomagolásához.
Vizsgáljunk meg egy példacsomagot egy kicsit közelebbről. Például a "parted_1.4.24-4_i386.deb" fájl ezt a három fájlt tartalmazza:
$ ar tv parted_1.4.24-4_i386.deb rw-r--r-- 0/0 4 Mar 28 13:46 2002 debian-binary rw-r--r-- 0/0 1386 Mar 28 13:46 2002 control.tar.gz rw-r--r-- 0/0 39772 Mar 28 13:46 2002 data.tar.gz |
Most csomagoljuk ki az összeset, beleértve a tar fájlokat is. (ar xv parted_1.4.24-4_i386.deb - a ford.)
Ennek a fájlnak "2.0\n" a tartalma. Ez a .deb formátum verziószáma. 2.0 verziónál az összes többi sort figyelmen kívül hagyja a rendszer.
A "data.tar.gz" tartalmazza az összes telepítendő fájl listáját, a telepítés utáni elérési útvonalukkal együtt:
drwxr-xr-x root/root 0 2002-03-28 13:44:57 ./ drwxr-xr-x root/root 0 2002-03-28 13:44:49 ./sbin/ -rwxr-xr-x root/root 31656 2002-03-28 13:44:49 ./sbin/parted drwxr-xr-x root/root 0 2002-03-28 13:44:38 ./usr/ drwxr-xr-x root/root 0 2002-03-28 13:44:41 ./usr/share/ drwxr-xr-x root/root 0 2002-03-28 13:44:38 ./usr/share/man/ drwxr-xr-x root/root 0 2002-03-28 13:44:52 ./usr/share/man/man8/ -rw-r--r-- root/root 1608 2002-03-28 13:44:37 ./usr/share/man/man8/parted.8.gz drwxr-xr-x root/root 0 2002-03-28 13:44:41 ./usr/share/doc/ drwxr-xr-x root/root 0 2002-03-28 13:44:52 ./usr/share/doc/parted/ -rw-r--r-- root/root 1880 2002-03-07 14:20:08 ./usr/share/doc/parted/README.Debian -rw-r--r-- root/root 1347 2002-02-27 01:40:50 ./usr/share/doc/parted/copyright -rw-r--r-- root/root 6444 2002-03-28 13:37:33 ./usr/share/doc/parted/changelog.Debian.gz -rw-r--r-- root/root 15523 2002-03-28 02:36:43 ./usr/share/doc/parted/changelog.gz |
Ennek kell lennie az utolsó fájlnak a .deb archívumban.
A mi példánkban ez a fájl a következőket tartalmazza:
-rw-r--r-- 1 root root 1336 Mar 28 2002 control -rw-r--r-- 1 root root 388 Mar 28 2002 md5sums -rwxr-xr-x 1 root root 253 Mar 28 2002 postinst -rwxr-xr-x 1 root root 194 Mar 28 2002 prerm |
"md5sums" a data.tar.gz összes fájljának az md5sum kivonatát. A példánkban ez így néz ki:
1d15dcfb6bb23751f76a2b7b844d3c57 sbin/parted 4eb9cc2e192f1b997cf13ff0b921af74 usr/share/man/man8/parted.8.gz 2f356768104a09092e26a6abb012c95e usr/share/doc/parted/README.Debian a6259bd193f8f150c171c88df2158e3e usr/share/doc/parted/copyright 7f8078127a689d647586420184fc3953 usr/share/doc/parted/changelog.Debian.gz 98f217a3bf8a7407d66fd6ac8c5589b7 usr/share/doc/parted/changelog.gz |
Ne aggódj, az "md5sum", valamint a "postinst" és a "prerm" fájlok nem kötelezőek az első csomagodnál, de nem árt, ha tudod, hogy minden komplett hivatalos Debian csomag tartalmazza ezeket, a korrektség érdekében.
A "prerm" és "postinst" ügyel arra, hogy a régi dokumentációs fájlok törlődjenek, valamint készüljön egy doc könyvtárban lévő hivatkozás (link), amely a share/doc könyvtárban lévő megfelelő dokumentációs könyvtárra mutat.
És végül a legérdekesebb fájl:
$ cat control Package: parted Version: 1.4.24-4 Section: admin Priority: optional Architecture: i386 Depends: e2fsprogs (>= 1.27-2), libc6 (>= 2.2.4-4), libncurses5 (>= \ 5.2.20020112a-1), libparted1.4 (>= 1.4.13+14pre1), libreadline4 (>= \ 4.2a-4), libuuid1 Suggests: parted-doc Conflicts: fsresize Replaces: fsresize Installed-Size: 76 Maintainer: Timshel Knoll <[email protected]> Deszkription: The GNU Parted disk partition resizing program GNU Parted is a program that allows you to create, destroy, resize, move and copy hard disk partitions. This is useful for creating space for new operating systems, reorganizing disk usage, and copying data to new hard disks. . This package contains the Parted binary and manual page. . Parted currently supports DOS, Mac, Sun, BSD, GPT and PC98 disklabels/partition tables, as well as a 'loop' (raw disk) type which allows use on RAID/LVM. Filesystems supported are ext2, ext3, FAT (FAT16 and FAT32) and linux-swap. Parted can also detect HFS (Mac OS), JFS, NTFS, ReiserFS, UFS and XFS filesystems, but cannot create/remove/resize/check these filesystems yet. . The nature of this software means that any bugs could cause massive data loss. While there are no known bugs at the moment, they could exist, so please back up all important files before running it, and do so at your own risk. |
A "man 5 deb-control" parancs kiadásával további információkat tudhatsz meg a control fájlról.
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 |
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 <[email protected]> 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.
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.
Miután megszerezted az első tapasztalatokat és elkészítetted a saját bináris csomagodat, itt az idő, hogy egy kicsit komolyabban is megnézzük a dolgot. Vess egy pillantást az elkészített csomag minőségére.
Szerencsénkre a Debian projekt a "lint"-hez hasonló Debian csomag ellenőrző eszközt nyújt. Ezt az eszközt "lintian"-nak hívják. Ha még nem telepítetted a rendszeredre, akkor itt a megfelelő alkalom (apt-get install lintian).
Most használd ezt a nagyszerű eszközt a csomagod ellenőrzéséhez:
$ lintian linuxstatus_1.1-1_all.deb E: linuxstatus: binary-without-manpage linuxstatus E: linuxstatus: no-copyright-file W: linuxstatus: prerm-does-not-remove-usr-doc-link W: linuxstatus: postinst-does-not-set-usr-doc-link |
Uh, ez nem néz ki valami teljesnek. Kihagytuk a kézikönyv oldalt, a copyright fájlt, meg azokat a "prerm", meg "postinst" szkripteket.
Nem itt kellene leírnom a kézikönyv oldalak készítésének módját, egy csomó könyv van, ahol egy vagy több fejezet foglalkozik ezzel a témával, ezeken kívül pedig elolvashatod a Linux Man Page Howto (Linux kézikönyv oldal HOGYAN) leírást, mely az interneten elérhető. Szóval tekintsünk el ettől, és tegyük fel, hogy van egy megfelelő kézikönyv oldal a szkriptedhez a ./man/man1/linuxstatus.1 helyen.
Ugyanez a helyzet a "copyright" fájllal is. Elegendő példát találsz a /usr/share/doc könyvtárban a find /usr/share/doc -name "copyright" parancs segítségével.
Íme a saját példánk a "copyright" fájlra:
linuxstatus Copyright: Chr. Clemens Lee <[email protected]> 2002-12-07 The home page of linuxstatus is at: http://www.kclee.com/clemens/unix/index.html#linuxstatus The entire code base may be distributed under the terms of the GNU General Public License (GPL), which appears immediately below. Alternatively, all of the source code as any code derived from that code may instead be distributed under the GNU Lesser General Public License (LGPL), at the choice of the distributor. The complete text of the LGPL appears at the bottom of this file. See /usr/share/common-licenses/(GPL|LGPL) |
A "prerm" és "postinst" szkripteket egytől egyig másold be a példában szereplő "parted" csomagból, ugyanazzal a névvel, a saját csomagod könyvtárába. Ezeknek a fájloknak megfelelően működniük kell.
Most ismét készítsd el a debian csomagunkat, de előbb a "control" fájlban megnöveld a verziószámot 1.1-1-ről 1.2-1-re (ha írunk egy új kézikönyv oldalt, akkor növeljük a saját belső kiadási számot). Az új fájlokat is el kell helyezned a megfelelő helyen:
$ mkdir -p ./debian/usr/share/man/man1 $ mkdir -p ./debian/usr/share/doc/linuxstatus $ find ./debian -type d | xargs chmod 755 $ cp ./man/man1/linuxstatus.1 ./debian/usr/share/man/man1 $ cp ./copyright ./debian/usr/share/doc/linuxstatus $ cp ./prerm ./postinst ./debian/DEBIAN $ gzip --best ./debian/usr/share/man/man1/linuxstatus.1 $ $ dpkg-deb --build debian dpkg-deb: building package `linuxstatus' in `debian.deb'. $ mv debian.deb linuxstatus_1.2-1_all.deb |
A gzip szükséges, mert a lintian elvárja, hogy a kézikönyv oldal fájlja, amennyire csak lehet, tömörítve legyen.
No, akkor nézzük, hogy a csomagunk debian tulajdonságai javultak-e.
$ lintian linuxstatus_1.2-1_all.deb E: linuxstatus: control-file-has-bad-owner prerm clemens/clemens != root/root E: linuxstatus: control-file-has-bad-owner postinst clemens/clemens != root/root E: linuxstatus: bad-owner-for-doc-file usr/share/doc/linuxstatus/ clemens/clemens != root/root E: linuxstatus: bad-owner-for-doc-file usr/share/doc/linuxstatus/copyright clemens/clemens != root/root E: linuxstatus: debian-changelog-file-missing |
Hopsz, újabb gondok. OK, nem adjuk föl. Valójában úgy néz ki, hogy több hibaüzenetet kaptunk ugyanarra a problémára. Minden fájl a "clemens" felhasználói és csoport azonosítóval lett becsomagolva, míg valószínűleg a legtöbb felhasználó jobban örülne, ha "root/root" felhasználóként lennének telepítve. Ezt a problémát könnyedén orvosolhatod a "fakeroot" segédprogram használatával. Szóval javítsd ki, és gyorsan ellenőrizd le (a changelog kimenettel most ne foglalkozz):
$ fakeroot dpkg-deb --build debian dpkg-deb: building package `linuxstatus' in `debian.deb'. $ mv debian.deb linuxstatus_1.2-1_all.deb $ lintian linuxstatus_1.2-1_all.deb E: linuxstatus: debian-changelog-file-missing |
Nagyszerű, de még egy fájlt hozzá kell adnunk a csomaghoz.
A "doc/linuxstatus" könyvtárban lévő "changelog" mellé még egy "changelog.Debian" fájlt is kell írni. Mindkettőt gzip-pel kell tömöríteni.
Íme egy példa a "changelog" fájlra:
linuxstatus (1.2-1) * A lintian által jegyzett hibák javítása. -- Chr. Clemens Lee <[email protected]> 2002-12-13 |
itt pedig egy "changelog.Debian" példa:
A linuxistatus Debian karbantartója és a fő változat szerzője megegyezik, ezért nézd meg a Debian valtozások changelogját is. |
A changelog fájl formátumát illetően a Debian irányvonal még részletesebb.
Remélhetőleg most következik az utolsó lépés:
$ cp ./changelog ./changelog.Debian ./debian/usr/share/doc/linuxstatus $ gzip --best ./debian/usr/share/doc/linuxstatus/changelog $ gzip --best ./debian/usr/share/doc/linuxstatus/changelog.Debian $ fakeroot dpkg-deb --build ./debian dpkg-deb: building package `linuxstatus' in `debian.deb'. $ mv debian.deb linuxstatus_1.2-1_all.deb $ lintian linuxstatus_1.2-1_all.deb |
Ah, már nem panaszkodik többé a lintian :-). Most root felhasználóként telepítheted a csomagot a régire, a megszokott "dpkg -i" paranccsal.
root# dpkg -i ./linuxstatus_1.2-1_all.deb (Reading database ... 97124 files and directories currently installed.) Preparing to replace linuxstatus 1.1-1 (using linuxstatus_1.2-1_all.deb) ... Unpacking replacement linuxstatus ... Setting up linuxstatus (1.2-1) ... |
Hogy ne kavarodj össze, idézzük fel a bináris Debian csomag elkészítésének összes lépését.
A szükséges fájlok:
egy vagy több bináris futtatható fájl, vagy shell szkript
egy kézikönyv oldal minden egyes futtatható fájlhoz
"control" fájl
"copyright" fájl
"changelog" és "changelog.Debian" fájl
A helyi "debian" könyvtár előkészítése:
készítsd el a "debian/usr/bin" könyvtárat (vagy ahová a futtatható fájlokat szeretnéd telepíteni)
készítsd el a "debian/usr/share/man/man1" könyvtárat (vagy amelyik szekcióba a kézikönyv oldalt szeretnéd elhelyezni)
készítsd el a "debian/DEBIAN" könyvtárat
készítsd el a "debian/usr/share/doc/<csomag_nev>" könyvtárat
győződj meg arról, hogy a "debian" könyvtárban lévő összes alkönyvtár 0755 hozzáférési joggal rendelkezik
Másold be a fájlokat a helyi "debian" fa-struktúrába:
másold a futtatható fájlokat a "debian/usr/bin" könyvtárba (vagy ahová telepíteni szeretnéd őket)
másold a kézikönyv oldalt a "debian/usr/share/man/man1 könyvtárba
másold a "control" fájlt a "debian/DEBIAN" könyvtárba
másold a "copyright", "changelog" és "changelog.Debian" fájlokat a "debian/usr/share/doc/<package_name>" könyvtárba
tömörítsd gzip programmal a kézikönyv oldalt, "copyright", "changelog" és "changelog.Debian" fájlokat, a "--best" opcióval a helyi "debian" könyvtárstruktúrába
Készítsd el és ellenőrizd le a Debian csomagot:
használd a "dpkg-deb --build" parancsot a "fakeroot" segítségével a "debian" könyvtárra
nevezd át az eredményül kapott "debian.deb" fájlt a végső csomagnévre, benne a verziószámmal és az architektúrára vonatkozó információval
ellenőrizd a .deb fájlt a "lintian" segédprogrammal, hogy megfelel-e a Debian irányvonalnak
Sok dolog van amit ez a HOGYAN nem fed le, mint például hogyan állítsuk elő a Unix démonokat, a konfigurációs fájlokat és még sok mást.
De a legfontosabb, kihangsúlyozom megint a Debian karbantartók számára, hogy a csomagok forrásokból állnak, nem pedig binárisokból. Ezek sosem hatnak egymásra közvetlenül a belső bináris csomagokkal. Valójában csak a "dpkg-deb" és "dpkg" fejlesztők számára szükséges tudni, hogy mik ezek, egyébként felesleges.
Ha egy fejlesztő úgy határozott, hogy elmondja valakinek miként lehet Debian csomagot elkészíteni, biztosan elmagyarázza azt is, hogyan lehet a forrás-csomagot (source package) készíteni.
Másrészt nem minden fejlesztő akarja kiterjeszteni a szoftverét Debian alá (egyelőre), mégis használja az olyan csomagkezelőket, mint a "dpkg", a csomag forráskódjának kiadása nélkül. Ami engem illet, én mindaddig kiadom a szabad projektjeimet tar.gz fájlként a forráskóddal és egyebekkel együtt az összes architektúrához, míg egyre több ".deb" csomagot tervezek felkínálni a Debian felhasználóknak, akik csak telepíteni és használni akarják a szoftveremet.
Ha valaki következő lépésként Debian csomagként is közzé szeretné tenni szoftverét, úgy először a Debian New Maintainers' Guide (Új Debian karbantartók kézikönyve) valamint Debian Policy Manual (Debian irányvonal kézikönyv) leírásokat tanulmányozza először. Ha Debian forrás csomag készítésébe fogsz bele, akkor látogass el a debian-mentors (debian-tanacsadók) levelező listájára is, hogy tapasztalatokat szerezz, bekapcsolódj a párbeszédbe, melynek során tippeket kaphatsz az előforduló problémák megoldására.
Köszönet az alábbi embereknek:
Colin Watson: egy mondattal hozzájárult a HOGYANhoz, és visszajelezésével segített a szerkezet pontosításban és a címadásban,
Bill Allombert: hozzájárult egy mondattal az "Egyebek" fejezethez, valamint egy visszajelzésében megerősítette Colin egyik mondatát,
Santiago Vila: az "md" az csak egy helyi alias, és a (Unix) világ szabványosított változata az "mkdir", valamint
Tabatha Marshall: a TLDP projektből, általános segítség,
Joey Hess, Carlo Perassi, és Joe Riel: kisebb korrekciók,
Claudio Cattazzo: a saját xml dokumentumom docbook formátumra konvertálása, mely számos kisebb korrekciót és fejlesztést eredményezett [2003.10.04].
Frank Lichtenheld: a HTML oldalak generálásakor fellépő hibákra fölhívta a figyelmet, valamint felvetette a "dpkg -S <fájl>" parancs használatát, amikor egy bizonyos fájlra keresünk a csomagban [2003.12.13].
Hugh Hartmann: elkészítette a HOGYAN olasz fordítását, Claudio Cattazzo: lektorálta a fordítást [2003.12.13].
Debian New Maintainers' Guide (Új Debian Karbantartók Útmutatója): | http://www.debian.org/doc/maint-guide/ |
Debian: | http://www.debian.org/ |
The Debian Reference (Debian referencia): | http://www.debian.org/doc/manuals/reference/reference.en.html |
Debian csomagok: | http://www.debian.org/distrib/packages |
Writing Debian package descriptions (Leírás készítése Debian csomaghoz): | http://people.debian.org/~walters/descriptions.html |
Linux Man Page Howto (Linux kézikönyv oldal HOGYAN): | http://www.tldp.org/HOWTO/mini/Man-Page.html |
Debian Policy Manual (Debian irányvonal kézikönyv oldal): | http://www.debian.org/doc/debian-policy/ |
Debian Mentors (debian tanácsadás): | http://lists.debian.org/debian-mentors/ |
The Linux Documentation Project (a Linux Dokumentációs Projekt honlapja): | http://www.tldp.org/ |
Plusz az én saját kis Unix honlapom: | http://www.kclee.com/clemens/unix/ |