Debian

Debian csomagkészítés útmutató

Debian csomagkészítés útmutató

1. Előszó

A gép felelőssége azt jelenti, hogy gondoskodni kell a hardverről és a szoftver alkatrészeiről. A mindennapi életben rendszergazdaként sokkal jobb, ha a szoftvereket szoftvercsomagként telepíti, nem pedig egy csomó forrásfájlt. Ez csökkenti a rendszer megfelelő karbantartásának költségeit.

Az előnyben részesített forgalmazótól elérhető csomagokat egy csomagfenntartó ellenőrzi és felügyeli. Kipróbálta a szoftvert, és biztosítja, hogy az illeszkedjen a disztribúcióban elérhető többi szoftvercsomaghoz. Ezenkívül a csomag GPG-kulccsal van aláírva a csomag karbantartójától. Ez garantálja a csomag integritását és megmutatja, hogy a csomag megbízható forrásból származik.

A csomag formátuma a Linux disztribúciótól függ. A kiválasztott formátumok a következők:

deb

Használt csomagok: Debian GNU / Linux, Ubuntu, Armbian, Linux Mint, Knoppix

fordulat

Használt csomagok: RedHat, Fedora, CentOS, OpenSuse

tgz és txz

A következő csomagokban használják: Slackware

kátrány.xz

Az itt használt csomagok: Arch Linux

Ez a dokumentum elmagyarázza, hogyan lehet röviden egy csomagot készíteni a Debian GNU / Linux számára. Részletes információkért a Debian csomagformátumról és a „deb” alapú Linux rendszer fenntartásának eszközeiről áttekintheti a Debian csomagkezelő könyvet [dpmb]. Csomagok készítéséhez a Debian GNU / Linux rendszerhez ezek a dokumentumok elengedhetetlenek:

A csomag, amellyel együtt fogunk dolgozni, a „helloworld” névre hallgat, és a verziószáma 0.1. Bemutató célokra egyszerűen egyetlen Python szkriptet tartalmaz, amely a híres üzenetet adja ki: „Hello, világ!”:

#!/ usr / bin / python print ("Helló, világ!!") 

2. Követelmények

2.1. GPG kulcs

1. lépésként álljon rendelkezésre a GPG-kulcs. Később a csomag aláírásához szükség lesz a kulcsra. Ne feledje, hogy az aláíratlan csomagok nem megbízhatóak, és nem lehetnek részei a Debian univerzumának.

Abban az esetben, ha még nincs GPG kulcsa, hozzon létre egyet. Az alábbi három lépést követheti. Az első parancs új kulcsot generál, a második külön fájlba exportálja az új kulcsot, a harmadik pedig hozzáadja a kulcsot az Ön személyes kulcstartójához.

$ gpg --gen-key $ gpg -a --output ~ /.gnupg / YOUR_NAME.gpg --exportálja a nevedet $ gpg --import ~ /.gnupg / YOUR_NAME.gpg 

A létrehozás során győződjön meg arról, hogy a _YOUR NAME_név helyes-e. Gyakori a keresztnév és a vezetéknév kombinációjának használata. Ennek a névnek pontosan meg kell egyeznie a csomagban, majd a Debian csomag 'control' fájljának létrehozásakor. A GPG-vel kapcsolatos további információkért tekintse meg a GNU adatvédelmi kézikönyvét [gph].

2.2. A csomagolóeszköz lánc

Forráskóddal rendelkező Debian csomag készítéséhez a következő szoftvercsomagokra van szükség a rendszeren:

Gyökérként ezeket a következő paranccsal telepítheti:

# apt-get install build-essential autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder 

2.3. Készítse elő a csomagolni kívánt szoftvert

El kell készítenünk egy könyvtárat a csomag felépítéséhez. Hozzon létre egy könyvtárat a csomag felépítéséhez szükséges környezet előkészítéséhez:

$ mkdir -p ~./ build / helloworld / 0.1 

Másolja a 'tar-t.gz 'tömörített archívum a könyvtárban:

$ cp helloworld-0.1.kátrány.gz ~./ build / helloworld / 0.1 

Váltás a könyvtárba, és bontsa ki a csomagot:

$ cd ~./ build / helloworld / 0.1 ~ / build / helloworld / 0.1 $ tar -xzf helloworld-0.1.kátrány.gz 

A könyvtár mind a forráskódot külön könyvtárban, mind a tömörített archívumot tartalmazza:

~ / build / helloworld / 0.1 $ ls helloworld-0.1 helloworld-0.1.kátrány.gz 

3. Debianizálás

Ekkor hozzáadjuk azokat a fájlokat, amelyek specifikusak egy Debian csomagra. Ezért nevezik ezt a lépést a szoftver _leépítésének_. Ez több lépésben történik.

3.1 Készítse elő a csomag szerkezetét

Váltson át arra a könyvtárra, amely megőrzi a csomag teljes forráskódját. Példánkban a csomag a 'helloworld fájlt tartalmazza.py ', csak:

~ $ cd build / helloworld / 0.1 / helloworld-0.1 ~ / build / helloworld / 0.1 / helloworld-0.1 $ ls helloworld.py 

Adjuk hozzá a Debian csomagra jellemző fájlokat. A „dh_make” eszköz megjelenik. A '-e' kapcsoló a megadott címet használja e-mail címként a 'debian / control' fájl 'Karbantartó' mezőjében. A csomag felépítéséhez használja a saját e-mail címét. Ne feledje, hogy ugyanazt az e-mail címet használja, amely megfelel a GPG kulcsának.

A '-f' kapcsoló az adott fájlt használja eredeti forrásarchívumként, és átugorja az aktuális programfa másolását a 'programba.orig '.

~ / build / helloworld / 0.1 / helloworld-0.1 $ dh_make -e [e-mail védett] -f… / helloworld-0.1.kátrány.gz 

A rendszer kéri, hogy válassza ki a létrehozandó csomag típusát. _Egyetlen bináris_ típus kiválasztása.

A csomag típusa: egyetlen bináris, indep bináris, több bináris, könyvtár, kernelmodul, kernel javítás? [s / i / m / l / k / n] s Karbantartó neve: Frank Hofmann E-mail cím: [e-mail védett] Dátum: 2017. november 4., szombat, 21:16:13 +0100 Csomag neve: helloworld Verzió: 0.1 licenc: üres Csomagtípus: Single Hit  megerősítésképpen: Jelenleg nincs felső szintű Makefile. Ez további hangolást igényelhet. Kész. Kérjük, most szerkessze a fájlokat a debian / alkönyvtárban. Azt is ellenőriznie kell, hogy a Makefiles helloworld telepítve van-e a $ DESTDIR fájlba, és nem a / . 

Ez egy 'debian' nevű könyvtárat eredményez:

~ / build / helloworld / 0.1 / helloworld-0.1 dollár debian helloworld.py 

Ez a könyvtár tartalmazza az összes csomag-specifikus fájlt.

3.2. Állítsa be a vezérlőfájlt

A 'debian / control' fájl megőrzi azokat a függőségeket, amelyekre a csomag felépítéséhez van szükség. A 'dpkg-depcheck -d parancs használatával ./ configure 'listát kap az összes szükséges csomaggal. Esetünkben nincs szükség további csomagra, mert a Python egy értelmezett nyelv.

Ezután szerkesztenünk kell a 'debian / control' fájlt, és hozzá kell adnunk a csomaghoz tartozó értékeket. Példánkban a következőképpen néz ki:

Forrás: helloworld Szekció: python Prioritás: opcionális Fenntartó: Frank Hofmann <[email protected]> Build-Depends: debhelper (> = 9) Standards-Version: 3.9.5 Honlap: http: // www.efho.de / # Vcs-Git: git: // anonscm.debian.org / cooper-maint / helloworld.git # Vcs-Browser: http: // anonscm.debian.org /?p = cooper-maint / helloworld.git; a = összefoglaló Csomag: helloworld Felépítés: bármilyen Függ: $ shlibs: Depends, $ misc: Depends, python Leírás: Hello World-t nyomtat Python-ban Hello World-t nyomtat Python-ban 

3.3. Állítsa be a szerzői jogi fájlt

A „debian / copyright” fájl tartalmazza a szoftvercsomag licencinformációit. A kiadásra a GNU Public License 2 (GPLv2) segítségével készült. Példánkban a következőképpen néz ki:

Formátum: http: // www.debian.org / doc / packaging-manuals / copyright-format / 1.0 / Upstream-Name: helloworld Forrás: http: // www.efho.de / Fájlok: debian / * Szerzői jog: 2017 Frank Hofmann <[email protected]> Licenc: GPL-2 + Ez a csomag ingyenes szoftver; terjesztheti és / vagy módosíthatja a Free Software Foundation által közzétett GNU General Public License feltételei szerint; vagy a licenc 2. verziója, vagy (tetszés szerint) bármelyik későbbi verzió ... Ezt a csomagot abban a reményben terjesztjük, hogy hasznos lesz, de GARANCIA NÉLKÜL; anélkül, hogy feltételezhetően garancia lenne az eladhatóságra vagy a megfelelő célra való alkalmasságra. További részletekért lásd a GNU General Public License-t ... Ezzel a programmal együtt meg kellett volna kapnia a GNU General Public License másolatát. Ha nem, lásd  . A Debian rendszereken a GNU General Public License 2. verziójának teljes szövege megtalálható a "/ usr / share / common-licences / GPL-2" fájlban. 

3.4. Állítsa be a changelog fájlt

A szerzői jogi információk után a „debian / changelog” fájlt ki kell igazítani. Példánkban hozzáadjuk az „Initial release” információt.

helloworld (0.1-1) instabil; sürgősség = alacsony * Első kiadás - Frank Hofmann <[email protected]> 2017. november 4., szombat, 21:16:13 +0100 

Ennyire van szükségünk eddig - most végre elkészíthetjük a csomagot.


4. Készítsd el a csomagot

A csomag felépítéséhez egy könyvtárral feljebb kell lépnünk, és a következő parancsot kell futtatnunk:

~ / build / helloworld / 0.1 / helloworld-0.1 $ dpkg-buildpackage -rfakeroot

A '-rfakeroot' opció lehetővé teszi a 'dpkg-buildpackage' számára, hogy privilizált felhasználóként futtasson parancsokat a 'fakeroot' parancs segítségével. Ez szükséges a csomag előkészítéséhez, valamint fájlok és könyvtárak létrehozásához.
A fenti parancs a kimeneti üzenetek hosszabb listáját eredményezi (itt német nyelvű környezetben látható):

dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellversion 0.1-1 dpkg-buildpackage: Quelldistribution instabil dpkg-buildpackage: Quellen geändert durch Frank Hofmann <[email protected]> dpkg-buildpackage: Host-Architektur amd64 dpkg-source --before-build helloworld-0.1 fakeroot debian / szabályok tiszta dh tiszta dh_testdir dh_auto_clean dh_clean dpkg-source -b helloworld-0.1 dpkg-source: Információ: Quellformat "3.0 (paplan) "wird verwendet dpkg-source: Információ: helloworld wird unter Benutzung des egzistierenden ./ helloworld_0.1.orig.kátrány.gz gebaut dpkg-source: Információ: helloworld wird in helloworld_0.1-1.debian.kátrány.xz gebaut dpkg-source: Információ: helloworld wird in helloworld_0.1-1.dsc gebaut debian / rules építmények dh építmények dh_testdir dh_auto_configure dh_auto_build dh_auto_test fakeroot debian / rules binary dh bináris dh_testroot dh_prep dh_auto_install dh_installdocs dh_installchangelogs dh_perl dh_link dh_compress dh_fixperms dh_strip dh_makeshlibs dh_shlibdeps dh_installdeb dh_gencontrol dpkg-gencontrol: Warnung: Feld Attól von Paket helloworld: unbekannte Substitutionsvariable $ shlibs : Attól függ, dh_md5sums dh_builddeb dpkg-deb: Paket "helloworld" wird in "... / helloworld_0.1-1_amd64.deb "gebaut. dpkg-genchanges <… /helloworld_0.1-1_amd64.changes dpkg-genchanges: kompletter Quellcode beim Hochladen hinzufügen dpkg-source --after-build helloworld-0.1 dpkg-buildpackage: Alles hochzuladen (Originalquellen enthalten) signfile helloworld_0.1-1.dsc Sie benötigen eine Passphrase, um den geheimen Schlüssel zu entsperren. Benutzer: "Frank Hofmann (Hofmann EDV) <[email protected]> "4096 bites RSA Schlüssel, ID D431AC07, erzeugt 2014-09-05 

4.1. A csomag ellenőrzése

Gratulálunk - sikerült felépítenie egy Debian csomagot - igen! Most nézzük meg közelebbről a csomagot. Itt „lintian” játszik szerepet. Ez az eszköz ellenőrzi a csomagot, hogy megállapítsa a Debian-csomagok által betartandó szigorú szabályok megsértését.

A tesztek futtatásához írja be a következő parancsot:

lintian helloworld_0.1-1_amd64.deb 

Az eszköz nem talál szabálysértéseket, hanem helyesírási hibákat és helytelen karaktereket is. A „-pedantic” kapcsoló arra kéri a „lintian” -t, hogy a szokásosnál sokkal kritikusabb legyen. Amint az alább látható, a „lintian” kissé morcos, három figyelmeztetést és egy hibát fedezett fel.

Az első figyelmeztetés kivételével könnyen boldoggá tehetjük a „lintiant”, és a beállított szabálynak megfelelően beállíthatjuk a csomag tartalmát. Az „new-package-should-close-itp-bug” figyelmeztetés azt jelenti, hogy nincs hibajelentés az ITP csomag ellen (az ITP azt jelenti, hogy _csomagolni szándékozik_). Egy szokásos Debian csomaghoz hibajelentést kell küldeni az ITP csomag hibakeresőjének, hogy értesítse másokat arról, hogy el akarja kezdeni a szoftver csomagolását.

4.2. Figyelmeztetés: 'readme-debian-tartalmaz-debmake-sablon

A „README.A Debian 'célja a csomaggal kapcsolatos további megjegyzések megtartása. A 'dh_make' hozta létre ezt a fájlt nekünk:

helloworld a Debian számára ---------------------  -- Frank Hofmann <[email protected]> 2017. november 4., szombat, 21:16:13 +0100 

Példánkban nincs további információ, így törölhetjük a fájlt.

4.3. Figyelmeztetés: „leírás-kezdődik-vezet-szóközökkel”

Ez a figyelmeztetés azért merül fel, mert a csomagunk hosszabb leírása a „debian / control” fájlban egynél több szóközzel kezdődik. Amint egyetlen helyet eltávolítunk, a figyelmeztetés eltűnik.

4.4. Hiba: 'description-synopsis-is-duplicated'

Minden csomaghoz rövid és hosszabb leírás is szükséges a 'debian / control'. Ez a hiba azért merül fel, mert mindkét leírás azonos. Amint kibővítettük a hosszabb leírást, a hiba eltűnt.


5. Linkek és hivatkozások

- [ddr] Andreas Barth, Adam Di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: A Debian fejlesztői referenciája
- [dnmg] Josip Rodin, Osamu Aoki: A Debian új karbantartói útmutatója
- [dpmb] Axel Beckert, Frank Hofmann: A Debian csomagkezelési könyv
- [dpm] A Debian Policy Manual
- [dpt] A Debian csomagolási útmutató
- [gph] A GNU adatvédelmi kézikönyve
- [lushpaiPackage] Alex Lushpai: Hogyan készítsünk Debian csomagot forrásból


6. Köszönetnyilvánítás

A szerző köszönetet mond Axel Beckertnek és Gerold Rupprechtnek a támogatásukért és a kritikusoknak a cikk elkészítése közben.

Az egérkattintások emulálása az egérrel a Clickless Mouse használatával a Windows 10 rendszerben
Ha az egeret vagy a billentyűzetet nem megfelelő testtartásban, túlzott használat mellett használhatja, számos egészségügyi problémát okozhat, beleért...
Ezekkel az ingyenes eszközökkel adja hozzá az egérmozdulatokat a Windows 10 rendszerhez
Az elmúlt években a számítógépek és az operációs rendszerek nagymértékben fejlődtek. Volt idő, amikor a felhasználóknak parancsokkal kellett navigálni...
Az egér mozgásának vezérlése és kezelése több monitor között a Windows 10 rendszerben
Dual Display Mouse Manager lehetővé teszi az egér mozgásának vezérlését és konfigurálását több monitor között, lassítva annak mozgását a határ közeléb...