Debian

Debiani pakettide loomise juhised

Debiani pakettide loomise juhised

1. Eessõna

Masina eest vastutamine tähendab nii riistvara kui ka tarkvara komponentide eest hoolitsemist. Nagu igapäevaelus süsteemiadministraatorina näha, on palju parem installida tarkvara tarkvarapaketina, mitte hulga lähtefailidena. See vähendab süsteemi nõuetekohase hooldamise kulusid.

Eelistatud edasimüüjalt paketid valideerib ja nende üle teostab järelevalvet pakettide hooldaja. Ta testis tarkvara ja kinnitab, et see sobib teiste levitamises saadaolevate tarkvarapakettidega. Lisaks allkirjastatakse pakett GPG-võtmega paketi hooldajalt. See tagab paketi terviklikkuse ja näitab, et pakett pärineb usaldusväärsest allikast.

Paketi formaat sõltub teie Linuxi levitamisest. Valitud vormingud on järgmised:

deb

Paketid, mida kasutatakse: Debian GNU / Linux, Ubuntu, Armbian, Linux Mint, Knoppix

p / min

Paketid, mida kasutatakse: RedHat, Fedora, CentOS, OpenSuse

tgz ja txz

Paketid, mida kasutatakse: Slackware

tõrv.xz

Paketid, mida kasutatakse: Arch Linux

Selles dokumendis selgitatakse, kuidas lühidalt Debian GNU / Linuxi jaoks paketti ehitada. Üksikasjalikumat teavet Debiani paketivormingu ja deb-põhise Linuxi süsteemi hooldamise tööriistade kohta võite vaadata Debiani paketihalduse raamatust [dpmb]. Debiani GNU / Linuxi jaoks pakettide loomiseks on need dokumendid hädavajalikud:

Pakett, millega me koostööd teeme, kannab nime "helloworld" ja selle versiooninumber on 0.1. Demonstratsioonieesmärkidel sisaldab see lihtsalt ühte Pythoni skripti, mis väljastab kuulsa sõnumi „Tere, maailm!”:

#!/ usr / bin / python print ("Tere, maailm!") 

2. Nõuded

2.1. GPG-võti

1. sammuna laske oma GPG-võti saada. Hiljem on paketi allkirjastamiseks vaja võtit. Pidage meeles, et allkirjastamata paketid on ebausaldusväärsed ega saa olla osa Debiani universumist.

Kui teil pole GPG-võtit, looge see veel. Võite järgida kolme järgmist sammu. Esimene käsk genereerib uue võtme, teine ​​eksportib teie uue võtme eraldi faili ja kolmas lisab võtme teie isiklikule võtmehoidjale.

$ gpg --gen-key $ gpg -a - väljund ~ /.gnupg / SINU_NAME.gpg - eksportige "OMA NIMI" $ gpg --import ~ /.gnupg / SINU_NAME.gpg 

Loomisel veenduge, et antud nimi _YURUR NAME_ on õige. Tavaliselt kasutatakse eesnime ja perekonnanime kombinatsiooni. See nimi peab olema pakendis täpselt sama, kui loote Debiani paketi 'control' faili. GPG kohta lisateabe saamiseks vaadake GNU privaatsuse käsiraamatut [gph].

2.2. Pakendivahendite kett

Lähtekoodiga Debiani paketi loomiseks on teie süsteemis vaja järgmisi tarkvarapakette:

Kasutaja juurena saate need installida järgmise käsu abil:

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

2.3. Valmistage pakendatav tarkvara ette

Paketi loomiseks peame koostama kataloogi. Paketi koostamise keskkonna ettevalmistamiseks looge kataloog:

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

Kopeerige tõrv.gz 'tihendatud arhiiv kataloogis:

$ cp helloworld-0.1.tõrv.gz ~./ build / helloworld / 0.1 

Muutke kataloog ja eraldage pakett:

$ cd ~./ build / helloworld / 0.1 ~ / ehitada / kaasmaailm / 0.1 $ tar -xzf maailm-0.1.tõrv.gz 

Nüüd sisaldab kataloog nii lähtekoodi eraldi kataloogis kui ka tihendatud arhiivi:

~ / build / helloworld / 0.1 $ ls kaasmaailm-0.1 kaasmaailm-0.1.tõrv.gz 

3. Debianization

Siinkohal lisame Debiani paketile omased failid. Seetõttu nimetatakse seda sammu tarkvara _debianization_. Seda tehakse mitmes etapis.

3.1 Valmistage ette pakendi struktuur

Muutke kataloogi, mis hoiab kogu paketi lähtekoodi. Meie näites sisaldab pakett faili „helloworld.ainult py:

~ $ cd build / helloworld / 0.1 / maailm-0.1 ~ / build / helloworld / 0.1 / maailm-0.1 dollari suurmaailm.py 

Lisame Debiani paketile omased failid. Mängu tuleb tööriist 'dh_make'. Lüliti '-e' kasutab antud aadressi e-posti aadressina faili 'debian / control' väljal 'Hooldaja'. Paketi koostamisel kasutage selle asemel oma e-posti aadressi. Pidage meeles, et kasutage sama e-posti aadressi, mis vastab teie GPG-võtmele.

Lüliti '-f' kasutab antud faili algallika arhiivina ja jätab praeguse programmipuu kopeerimise programmis vahele.orig '.

~ / build / helloworld / 0.1 / maailm-0.1 $ dh_make -e [meiliga kaitstud] -f ... / helloworld-0.1.tõrv.gz 

Viipal palutakse teil valida loodava paketi tüüp. _ Ühekordsete binaarsete_ tüüpide valimiseks.

Paketi tüüp: üks binaarne, indep binaarne, mitmekordne binaarne, teek, kerneli moodul, kerneli plaaster? [s / i / m / l / k / n] s Hooldaja nimi: Frank Hofmann E-posti aadress: [e-posti aadressiga kaitstud] Kuupäev: laup, 4. november 2017 21:16:13 +0100 Paketi nimi: helloworld Versioon: 0.1 Litsents: tühi Pakendi tüüp: Single Hit  kinnitamiseks: praegu pole ühtegi tipptasemel Makefile'i. See võib vajada täiendavat häälestamist. Valmis. Redigeerige nüüd faile debianis / alamkataloogis. Samuti peaksite kontrollima, kas kaasmaailm Makefiles installib rakendusse $ DESTDIR ja mitte / . 

Selle tulemuseks on kataloog nimega 'debian':

~ / build / helloworld / 0.1 / maailm-0.1 $ l debiaani kaasmaailm.py 

See kataloog sisaldab kõiki paketipõhiseid faile.

3.2. Reguleerige kontrollfail

Fail 'debian / control' hoiab sõltuvusi, mida on vaja paketi loomiseks. Kasutades käsku 'dpkg-depcheck -d ./ configure 'saate nimekirja kõigi vajalike pakettidega. Meie puhul pole täiendavat paketti vaja, sest Python on tõlgendatud keel.

Järgmisena peame redigeerima faili "debian / control" ja lisama paketipõhised väärtused. Meie näide näeb välja järgmine:

Allikas: helloworld Jaotis: python Prioriteet: valikuline Hooldaja: Frank Hofmann <[email protected]> Koostu-sõltub: debhelper (> = 9) Standardid-versioon: 3.9.5 Koduleht: http: // www.efho.de / # Vcs-Git: git: // anonscm.debian.org / cooper-maint / kaasmaailm.git # Vcs-brauser: http: // anonscm.debian.org /?p = koostöö-hooldus / kaasmaailm.git; a = kokkuvõte Pakett: helloworld Arhitektuur: ükskõik Sõltub: $ shlibs: Sõltub, $ misc: Sõltub, python Kirjeldus: Prindib tere maailma Pythonis Prindib tere maailma Pythonis 

3.3. Kohandage autoriõiguste faili

Fail 'debian / copyright' sisaldab tarkvarapaketi litsentsiteavet. See on ette nähtud vabastamiseks GNU avaliku litsentsi 2 (GPLv2) kaudu. Meie näide näeb välja järgmine:

Vorming: http: // www.debian.org / doc / packaging-manuals / copyright-format / 1.0 / Upstream-Name: helloworld Allikas: http: // www.efho.de / Failid: debian / * Autoriõigus: 2017 Frank Hofmann <[email protected]> Litsents: GPL-2 + See pakett on tasuta tarkvara; saate seda edasi levitada ja / või muuta vastavalt Free Software Foundationi avaldatud GNU üldise avaliku litsentsi tingimustele; kas litsentsi 2. versioon või (teie valikul) mis tahes hilisem versioon ... Seda paketti levitatakse lootuses, et see on kasulik, kuid ILMA KÕIKIDE GARANTIIDETA; ilma kaudse garantiita, et müüakse või müüakse konkreetset eesmärki. Lisateavet leiate GNU üldisest avalikust litsentsist ... Te peaksite koos selle programmiga saama koopia GNU üldisest avalikust litsentsist. Kui ei, siis vaadake  . Debiani süsteemides on GNU üldise avaliku litsentsi versiooni 2 terviktekst leiate kataloogist "/ usr / share / common-licences / GPL-2". 

3.4. Kohandage muudatuste loendi faili

Pärast autoriõiguste teavet tuleb faili „debian / changelog” kohandada. Lisame oma näites teabe „Esmane vabastamine”.

kaasmaailm (0.1-1) ebastabiilne; kiireloomulisus = madal * Esmane vabastamine - Frank Hofmann <[email protected]> Laupäev, 4. november 2017 21:16:13 +0100 

See on kõik, mida me siiani vajame - nüüd saame selle paketi lõpuks üles ehitada.


4. Ehitage pakett

Paketi loomiseks peame liikuma ühe kataloogi võrra üles ja käivitama järgmise käsu:

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

Valik '-rfakeroot' võimaldab 'dpkg-buildpackage'il käske' fakeroot 'abil käitada privilegeeritud kasutajana. See on vajalik paketi ettevalmistamiseks ning failide ja kataloogide loomiseks.
Eespool toodud käsu tulemuseks on pikem väljundsõnumite loend (siin on saksa keeles):

dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellpaket helloworld dpkg-buildpackage: Quellversion 0.1-1 dpkg-buildpackage: Quelldistribution ebastabiilne dpkg-buildpackage: Quellen geändert durch Frank Hofmann <[email protected]> dpkg-buildpackage: Host-Architektur amd64 dpkg-source --before-build helloworld-0.1 fakeroot debian / reeglid puhas dh puhas dh_testdir dh_auto_clean dh_clean dpkg-source -b helloworld-0.1 dpkg-source: teave: Quellformat "3.0 (tekk) "wird verwendet dpkg-source: Teave: helloworld wird unter Benutzung des egzistierenden ./ kaasmaailm_0.1.orig.tõrv.gz gebaut dpkg-source: Teave: helloworld wird in helloworld_0.1-1.debian.tõrv.xz gebaut dpkg-source: Teave: helloworld wird in helloworld_0.1-1.DSC gebaut Debian / eeskirju build dh build dh_testdir dh_auto_configure dh_auto_build dh_auto_test fakeroot Debian / reeglid binaarne dh binaarne 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 Oleneb von Paket helloworld: unbekannte Substitutionsvariable $ shlibs : Sõltub 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-bitine RSA Schlüssel, ID D431AC07, erzeugt 2014-09-05 

4.1. Pakendi valideerimine

Palju õnne - teil õnnestus Debiani pakett koostada - jah! Vaatame nüüd paketti lähemalt. Siin tuleb mängu 'lintian'. See tööriist kontrollib teie paketti, et leida rikkumisi rangete reeglite vastu, mida Debiani paketid peavad täitma.

Testide käivitamiseks sisestage järgmine käsk:

lintian kaasmaailm_0.1-1_amd64.deb 

Tööriist ei leia reeglite rikkumisi, vaid ka õigekirjavigu ja valesid märke. Lüliti "-pedantic" palub "lintianil" olla tavapärasest palju kriitilisem. Nagu allpool näete, on „lintian“ veidi pahur ja avastanud kolm hoiatust ja ühe vea.

Välja arvatud esimene hoiatus, võime „lintiani” lihtsalt õnnelikuks teha ja paki sisu vastavalt kehtestatud reeglile kohandada. Hoiatus „new-package-should-close-itp-bug” tähendab, et ITP-paketi vastu pole veateadet (ITP tähendab _ on mõeldud paketti_). Tavalise Debiani paketi jaoks tuleb veaaruanne saata ITP paketi vigade jälgijale, et teavitada teisi, et kavatsete seda tarkvara pakkima hakata.

4.2. Hoiatus: 'readme-debian-tartalmaz-debmake-mall

Fail 'README.Debian 'on mõeldud selle paketi kohta lisamärkuste tegemiseks. 'dh_make' lõi meile selle faili:

Debiani kaasmaailm ---------------------  -- Frank Hofmann <[email protected]> Laupäev, 4. november 2017 21:16:13 +0100 

Meie näites pole meil lisateavet, seega võime faili kustutada.

4.3. Hoiatus: „kirjeldus-algab-ees-tühikutega”

See hoiatus on tõstatatud, kuna meie paketi pikem kirjeldus failis 'debian / control' algab rohkem kui ühe tühikuga. Niipea kui ühe tühiku eemaldame, kaob hoiatus.

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

Iga pakett nõuab nii lühemat kui ka pikemat kirjeldust 'debian / control'. See viga on tõstatatud, kuna mõlemad kirjeldused on identsed. Niipea kui pikemat kirjeldust pikendasime, on viga kadunud.


5. Lingid ja viited

- [ddr] Andreas Barth, Adam Di Carlo, Raphaël Hertzog, Lucas Nussbaum, Christian Schwarz, Ian Jackson: Debiani arendaja viide
- [dnmg] Josip Rodin, Osamu Aoki: Debiani uue hooldaja juhend
- [dpmb] Axel Beckert, Frank Hofmann: Debiani pakettide haldamise raamat
- [dpm] Debiani poliitika käsiraamat
- [dpt] Debiani pakendijuhend
- [gph] GNU privaatsuse käsiraamat
- [lushpaiPackage] Alex Lushpai: Kuidas luua Debiani paketti allikast


6. Tänusõnad

Autor tänab Axel Beckertit ja Gerold Rupprechti toetuse ja kriitikute eest selle artikli ettevalmistamise ajal.

Rakenduse AppyMouse ekraanipaneel ja hiirekursor Windowsi tahvelarvutitele
Tahvelarvutite kasutajad tunnevad hiirekursorit sageli puudust, eriti kui neil on kombeks sülearvuteid kasutada. Puutetundliku ekraaniga nutitelefonid...
Hiire keskmine nupp ei tööta Windows 10-s
The hiire keskmine nupp aitab teil sirvida pikki rohke andmega veebisaite ja ekraane. Kui see peatub, siis lõpuks kasutate kerimiseks klaviatuuri, mis...
Kuidas muuta hiire vasakut ja paremat nuppu Windows 10 PC-s
On üsna tavaline, et kõik arvutihiirte seadmed on ergonoomiliselt mõeldud parempoolsete kasutajate jaoks. Kuid on olemas hiire seadmeid, mis on spetsi...