Debian

Príručka na vytváranie balíkov Debian

Príručka na vytváranie balíkov Debian

1. Predslov

Zodpovednosť za stroj znamená starostlivosť o hardvér aj softvérové ​​komponenty. Ako je vidieť v každodennom živote ako správca systému, je oveľa lepšie inštalovať softvér ako softvérový balík než ako hromadu zdrojových súborov. To znižuje náklady na správnu údržbu systému.

Balíky, ktoré sú k dispozícii u preferovaného distribútora, sú overené a kontrolované správcom balíkov. Softvér otestoval a ubezpečil sa, že vyhovuje ostatným softvérovým balíkom dostupným v distribúcii. Ďalej je balík podpísaný kľúčom GPG od správcu balíkov. To zaručuje integritu balíka a ukazuje vám, že balík je z dôveryhodného zdroja.

Formát balíka závisí od vašej distribúcie systému Linux. Vybraté formáty sú tieto:

deb

Balíky používané v: Debian GNU / Linux, Ubuntu, Armbian, Linux Mint, Knoppix

ot./min

Balíky používané v: RedHat, Fedora, CentOS, OpenSuse

tgz a txz

Balíky používané v: Slackware

decht.xz

Balíky používané v: Arch Linux

Tento dokument vysvetľuje, ako stručne zostaviť balík pre Debian GNU / Linux. Podrobné informácie o formáte balíkov Debian a nástrojoch na údržbu systému Linux založeného na „deb“ nájdete v knihe Debian Package Management Book [dpmb]. Na zostavenie balíkov pre Debian GNU / Linux sú potrebné tieto dokumenty:

Balík, s ktorým budeme pracovať, sa volá „helloworld“ a má číslo verzie 0.1. Na demonštračné účely jednoducho obsahuje jediný skript v jazyku Python, z ktorého vychádza známa správa „Ahoj, svet!”:

#!/ usr / bin / python print („Ahoj, svet!„) 

2. Požiadavky

2.1. GPG kľúč

V prvom kroku si pripravte kľúč GPG. Neskôr bude potrebný kľúč na podpísanie balíka. Nezabudnite, že nepodpísané balíčky sú nedôveryhodné a nemôžu byť súčasťou vesmíru Debianu.

Ak ešte nemáte kľúč GPG, vytvorte si ho. Môžete postupovať podľa troch krokov uvedených nižšie. Prvý príkaz vygeneruje nový kľúč, druhý vyexportuje váš nový kľúč do samostatného súboru a tretí pridá kľúč do vášho osobného zväzku kľúčov.

$ gpg --gen-key $ gpg -a - výstup ~ /.gnupg / YOUR_NAME.gpg --export 'VAŠE MENO' $ gpg --import ~ /.gnupg / YOUR_NAME.gpg 

Počas vytvárania sa uistite, že krstné meno _YOUR NAME_ je správne. Je bežné používať kombináciu mena a priezviska. Tento názov bude musieť byť v balíku úplne rovnaký, potom pri vytváraní „kontrolného“ súboru balíka Debian. Viac informácií o GPG nájdete v príručke GNU Privacy Handbook [gph].

2.2. Reťazec nástrojov na balenie

Na zostavenie balíka Debian so zdrojovým kódom sú vo vašom systéme potrebné nasledujúce softvérové ​​balíčky:

Ako užívateľ „root“ ich môžete nainštalovať pomocou nasledujúceho príkazu:

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

2.3. Pripravte softvér na zabalenie

Na zostavenie balíka musíme pripraviť adresár. Vytvorte adresár na prípravu prostredia, v ktorom budeme zostavovať balík:

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

Skopírujte 'decht.komprimovaný archív gz v adresári:

$ cp helloworld-0.1.decht.gz ~./ build / helloworld / 0.1 

Prejdite do adresára a rozbaľte balík:

$ cd ~./ build / helloworld / 0.1 ~ / build / helloworld / 0.1 $ tar -xzf helloworld-0.1.decht.gz 

Adresár teraz obsahuje zdrojový kód v samostatnom adresári aj komprimovaný archív:

~ / build / helloworld / 0.1 $ ls helloworld-0.1 helloworld-0.1.decht.gz 

3. Debianizácia

V tomto okamihu pridáme súbory, ktoré sú špecifické pre balík Debian. Preto má tento krok názov _Debianizácia_ softvéru. To sa deje v niekoľkých jednotlivých krokoch.

3.1 Pripravte štruktúru balenia

Prejdite do adresára, ktorý uchováva celý zdrojový kód balíka. V našom príklade balík obsahuje súbor „helloworld“.py ', iba:

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

Pridajme súbory, ktoré sú špecifické pre balík Debian. Do hry vstupuje nástroj 'dh_make'. Prepínač „-e“ používa danú adresu ako e-mailovú adresu v poli „Údržbár“ v súbore „debian / control“. Pri vytváraní balíka namiesto toho použite svoju vlastnú e-mailovú adresu. Nezabudnite použiť rovnakú e-mailovú adresu, ktorá zodpovedá vášmu kľúču GPG.

Prepínač '-f' použije daný súbor ako pôvodný zdrojový archív a preskočí kopírovanie aktuálneho programového stromu na 'program.pôv.

~ / build / helloworld / 0.1 / helloworld-0.1 $ dh_make -e [chránený e-mailom] -f… / helloworld-0.1.decht.gz 

Po výzve sa zobrazí výzva na výber typu balíka, ktorý sa má vytvoriť. Ak chcete zvoliť _jednoduchý binárny_ typ 's'.

Typ balíka: jeden binárny, nezávislý binárny, viacnásobný binárny, knižnica, modul jadra, oprava jadra? [s / i / m / l / k / n] s Názov správcu: Frank Hofmann E-mailová adresa: [chránené e-mailom] Dátum: so, 4. novembra 2017 21:16:13 +0100 Názov balíka: helloworld Verzia: 0.1 Licencia: prázdna Typ balíka: Jeden zásah  na potvrdenie: V súčasnej dobe neexistuje žiadny Makefile najvyššej úrovne. Môže to vyžadovať ďalšie ladenie. hotový. Upravte teraz súbory v debian / podadresári. Mali by ste tiež skontrolovať, či sa súbory helloworld Makefiles inštalujú do $ DESTDIR a nie do / . 

Výsledkom bude adresár s názvom 'debian':

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

Tento adresár obsahuje všetky súbory špecifické pre balík.

3.2. Upravte kontrolný súbor

Súbor 'debian / control' uchováva závislosti, ktoré sú potrebné _ na vytvorenie_ balíka. Pomocou príkazu 'dpkg-depcheck -d ./ configure 'dostanete zoznam všetkých požadovaných balíkov. V našom prípade nie je potrebný žiadny ďalší balík, pretože Python je interpretovaný jazyk.

Ďalej musíme upraviť súbor 'debian / control' a pridať hodnoty špecifické pre balík. V našom príklade to vyzerá takto:

Zdroj: helloworld Sekcia: python Priorita: voliteľná Správca: Frank Hofmann <[email protected]> Závislé na zostavení: debhelper (> = 9) Štandardná verzia: 3.9.5 Domovská stránka: http: // www.efho.de / # Vcs-Git: git: // anonscm.debian.org / collab-maint / helloworld.git # Vcs-Browser: http: // anonscm.debian.org /?p = collab-maint / helloworld.git; a = summary Balík: helloworld Architektúra: ľubovoľná Závisí: $ shlibs: Závisí, $ misc: Závisí, python Popis: Vypíše Hello World v Pythone Vypíše Hello World v Pythone 

3.3. Upravte súbor s autorskými právami

Súbor 'debian / copyright' obsahuje licenčné informácie pre softvérový balík. Je pripravený na vydanie prostredníctvom GNU Public License 2 (GPLv2). V našom príklade to vyzerá takto:

Formát: http: // www.debian.org / doc / návody na balenie / formát autorských práv / 1.0 / Názov upstream: helloworld Zdroj: http: // www.efho.de / Súbory: debian / * Autorské práva: 2017 Frank Hofmann <[email protected]> Licencia: GPL-2 + Tento balík je slobodný softvér; môžete ho ďalej distribuovať a / alebo upravovať podľa podmienok Všeobecnej verejnej licencie GNU zverejnenej nadáciou Free Software Foundation; buď verzia 2 licencie, alebo (podľa vášho uváženia) akákoľvek neskoršia verzia ... Tento balík je distribuovaný v nádeji, že bude užitočný, ale BEZ ŽIADNEJ ZÁRUKY; dokonca bez implicitnej záruky PREDAJNOSTI alebo VHODNOSTI NA KONKRÉTNY ÚČEL. Viac podrobností nájdete v GNU General Public License ... Spolu s týmto programom by ste mali dostať kópiu GNU General Public License. Ak nie, pozri  . V systémoch Debian nájdete úplné znenie GNU General Public License verzie 2 v priečinku „/ usr / share / common-license / GPL-2“. 

3.4. Upravte súbor zmien

Po informáciách o autorských právach je potrebné upraviť súbor 'debian / changelog'. V našom príklade pridáme informáciu „Počiatočné vydanie“.

helloworld (0.1-1) nestabilný; naliehavosť = nízka * Prvé vydanie - Frank Hofmann <[email protected]> So, 4. novembra 2017 21:16:13 +0100 

To je zatiaľ všetko, čo potrebujeme - konečne môžeme zostaviť balíček.


4. Zostavte balíček

Aby sme mohli zostaviť balíček, musíme sa presunúť o jeden adresár vyššie a spustiť nasledujúci príkaz:

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

Možnosť „-rfakeroot“ umožňuje programu „dpkg-buildpackage“ spúšťať príkazy ako privilegovaný používateľ pomocou príkazu „fakeroot“. To je potrebné na prípravu balíka a na vytvorenie súborov a adresárov.
Výsledkom vyššie uvedeného príkazu je dlhší zoznam výstupných správ (tu sa zobrazuje v prostredí nemeckého jazyka):

dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellversion 0.1-1 dpkg-buildpackage: Quelldistribution nestabilný dpkg-buildpackage: Quellen geändert durch Frank Hofmann <[email protected]> dpkg-buildpackage: Host-Architektur amd64 dpkg-source - before-build helloworld-0.1 fakeroot debian / rules clean dh clean dh_testdir dh_auto_clean dh_clean dpkg-source -b helloworld-0.1 dpkg-source: Informácie: Quellformat "3.0 (quilt) "wird verwendet dpkg-source: Informácie: helloworld wird unter Benutzung des existierenden ./ helloworld_0.1.pôv.decht.gz gebaut dpkg-source: Informácie: helloworld wird v helloworld_0.1-1.debian.decht.xz gebaut dpkg-source: Informácie: helloworld wird v helloworld_0.1-1.DSC gebaut debian / rules build dh zostavenie dh_testdir dh_auto_configure dh_auto_build dh_auto_test fakeroot debian / rules binary dh binárny 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: WARNUN: Feld závisí von Paket HelloWorld: Unbekannte Substitutionsvariable $ shlibs : Závisí 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-bitová RSA Schlüssel, ID D431AC07, erzeugt 2014-09-05 

4.1. Overenie platnosti balíka

Gratulujeme - podarilo sa vám zostaviť balík Debianu - áno! Teraz sa pozrime bližšie na balík. Tu vstupuje do hry „lintian“. Tento nástroj overuje váš balík, aby zistil porušenie prísnych pravidiel, ktoré musia balíčky Debian spĺňať.

Ak chcete spustiť testy, zadajte nasledujúci príkaz:

lintian helloworld_0.1-1_amd64.deb 

Tento nástroj nezistí porušenie pravidiel, ale aj pravopisné chyby a nesprávne znaky. Prepínač „-pedantický“ žiada, aby „lintian“ bol oveľa kritickejší ako obvykle. Ako vidíte ďalej, „lintian“ je trochu nevrlý a objavil tri varovania a jednu chybu.

Okrem prvého varovania môžeme „lintianovi“ ľahko urobiť radosť a upraviť obsah balíka podľa nastavených pravidiel. Varovanie „new-package-should-close-itp-bug“ znamená, že proti balíku ITP neexistuje žiadna správa o chybe (ITP znamená _intended to package_). U bežného balíka Debianu sa musí do bugtrackeru pre balík ITP poslať hlásenie o chybe, aby bolo možné informovať ostatných, že máte v úmysle začať tento softvér baliť.

4.2. Varovanie: 'readme-debian-contains-debmake-template

Súbor „README.Debian 'si ponecháva ďalšie poznámky týkajúce sa tohto balíka. 'dh_make' vytvoril tento súbor pre nás:

helloworld pre Debian ---------------------  -- Frank Hofmann <[email protected]> So, 4. novembra 2017 21:16:13 +0100 

V našom príklade nemáme ďalšie informácie, takže môžeme súbor odstrániť.

4.3. Upozornenie: „popis-začína-s-vedúcimi-medzerami“

Toto varovanie sa zvyšuje, pretože dlhší popis nášho balíka v súbore „debian / control“ začína na viac ako jednom medzere. Hneď ako odstránime jeden priestor, varovanie zmizne.

4.4. Chyba: „description-synopsis-is-duplicated“

Každý balík vyžaduje krátky aj dlhší popis v „debian / control“. Táto chyba je vyvolaná, pretože obidva popisy sú identické. Akonáhle sme rozšírili dlhší popis, chyba je preč.


5. Odkazy a referencie

- [ddr] Andreas Barth, Adam Di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: Referencia pre vývojárov Debianu
- [dnmg] Josip Rodin, Osamu Aoki: Sprievodca novým správcom Debianu
- [dpmb] Axel Beckert, Frank Hofmann: Kniha správy balíkov Debianu
- [dpm] Príručka politiky Debianu
- [dpt] Výukový program pre Debian Packaging
- [gph] Príručka o ochrane súkromia GNU
- [lushpaiPackage] Alex Lushpai: Ako vytvoriť debianový balík zo zdroja


6. Poďakovanie

Autor ďakuje Axelovi Beckertovi a Geroldovi Rupprechtovi za podporu a kritikom pri príprave tohto článku.

Pridajte gestá myši do systému Windows 10 pomocou týchto bezplatných nástrojov
V posledných rokoch sa počítače a operačné systémy veľmi vyvinuli. Boli časy, keď používatelia museli prechádzať správcami súborov pomocou príkazov. R...
Ovládajte a spravujte pohyb myši medzi viacerými monitormi v systéme Windows 10
Správca myši s duálnym displejom umožňuje ovládať a konfigurovať pohyb myši medzi viacerými monitormi spomalením jeho pohybu blízko hranice. Windows 1...
WinMouse vám umožňuje prispôsobiť a vylepšiť pohyb ukazovateľa myši na počítači so systémom Windows
Ak chcete vylepšiť predvolené funkcie kurzora myši, použite freeware WinMouse. Pridáva ďalšie funkcie, ktoré vám pomôžu vyťažiť zo svojej skromnej myš...