Debian

„Debian“ paketo kūrimo instrukcijos

„Debian“ paketo kūrimo instrukcijos

1. Įvadas

Būti atsakingu už mašiną reiškia rūpintis aparatine įranga ir programinės įrangos komponentais. Kaip matyti kaip sistemos administratoriaus kasdienį gyvenimą, daug geriau įdiegti programinę įrangą kaip programinės įrangos paketą, o ne daugybę šaltinio failų. Tai sumažina tinkamos sistemos priežiūros išlaidas.

Paketus, kuriuos galite įsigyti iš jūsų pageidaujamo platintojo, patvirtina ir prižiūri paketų prižiūrėtojas. Jis išbandė programinę įrangą ir tikina, kad ji tinka kitiems platinimo programinės įrangos paketams. Be to, paketas yra pasirašytas GPG raktu iš paketo tvarkytojo. Tai garantuoja paketo vientisumą ir parodo, kad paketas yra iš patikimo šaltinio.

Paketo formatas priklauso nuo jūsų „Linux“ platinimo. Pasirinkti šie formatai:

deb

Naudojamos pakuotės: Debian GNU / Linux, Ubuntu, Armbian, Linux Mint, Knoppix

aps./min

Naudojamos pakuotės: RedHat, Fedora, CentOS, OpenSuse

tgz ir txz

Naudojamos pakuotės: „Slackware“

degutas.xz

Paketai, naudojami: „Arch Linux“

Šiame dokumente paaiškinta, kaip trumpai sukurti „Debian GNU / Linux“ paketą. Norėdami gauti išsamią informaciją apie „Debian“ paketo formatą ir „deb“ pagrindu sukurtos „Linux“ sistemos palaikymo įrankius, galite pasidomėti „Debian“ paketų valdymo knyga [dpmb]. Norėdami sukurti paketus „Debian GNU / Linux“, šie dokumentai yra būtini:

Paketas, su kuriuo dirbsime, pavadintas „helloworld“ ir jo versijos numeris 0.1. Demonstravimo tikslais jame paprasčiausiai yra vienas „Python“ scenarijus, kuris išleidžia garsiąją žinutę „Sveikas, pasauli!“:

#!/ usr / bin / python print ("Sveiki, pasauli!") 

2. Reikalavimai

2.1. GPG raktas

Kaip 1 veiksmą turėkite savo GPG raktą. Vėliau raktas bus reikalingas paketui pasirašyti. Atminkite, kad nepasirašyti paketai yra nepatikimi ir negali būti „Debian“ visatos dalimi.

Jei dar neturite GPG rakto, dar sukurkite jį. Galite atlikti tris toliau nurodytus veiksmus. Pirmoji komanda sukuria naują raktą, antroji eksportuoja jūsų naują raktą į atskirą failą, o trečioji prideda raktą į jūsų asmeninį raktų pakabą.

$ gpg --gen-key $ gpg -a --output ~ /.gnupg / JŪSŲ_NAME.gpg - eksportuokite „JŪSŲ PAVADINIMAS“ $ gpg --import ~ /.gnupg / JŪSŲ_NAME.gpg 

Kurdami įsitikinkite, kad nurodytas vardas _JŪSŲ VARDAS_ yra teisingas. Įprasta naudoti vardo ir pavardės derinį. Šis pavadinimas pakete turės būti visiškai toks pat, tada kuriant „Debian“ paketo „control“ failą. Norėdami gauti daugiau informacijos apie GPG, žiūrėkite GNU privatumo vadovą [gph].

2.2. Pakavimo įrankių grandinė

Norėdami sukurti „Debian“ paketą su šaltinio kodu, jūsų sistemoje reikalingi šie programinės įrangos paketai:

Kaip vartotojo „root“ galite juos įdiegti naudodami šią komandą:

# apt-get install būtinas autoconf automake autotools-dev dh-make debhelper devscripts fakeroot xutils lintian pbuilder 

2.3. Paruoškite programinę įrangą, kurią norite supakuoti

Turime paruošti katalogą paketui sukurti. Sukurkite katalogą, kad paruoštumėte aplinką, kurioje sukursime paketą:

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

Nukopijuokite „degutą“.gz 'suspaustas archyvas kataloge:

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

Įeikite į katalogą ir ištraukite paketą:

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

Dabar kataloge yra tiek šaltinio kodas atskirame kataloge, tiek suglaudintas archyvas:

~ / build / helloworld / 0.1 $ ls pasaulis-0.1 kolegos-0.1.degutas.gz 

3. Debianizacija

Šiuo metu mes pridėsime failus, kurie būdingi „Debian“ paketui. Štai kodėl šis žingsnis pavadintas programinės įrangos _dianizacija_. Tai daroma keliais atskirais žingsniais.

3.1 Paruoškite pakuotės struktūrą

Pakeiskite į katalogą, kuriame saugomas visas paketo šaltinio kodas. Mūsų pavyzdyje pakete yra failas „helloworld.tik py:

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

Pridėkime failus, kurie būdingi „Debian“ paketui. Įsijungia įrankis „dh_make“. Jungiklis „-e“ nurodytą adresą naudoja kaip el. Pašto adresą „debian / control“ failo lauke „Maintainer“. Kuriant paketą naudokite savo el. Pašto adresą. Nepamirškite naudoti to paties el. Pašto adreso, kuris atitinka jūsų GPG raktą.

Jungiklis „-f“ naudoja nurodytą failą kaip pirminį šaltinio archyvą ir praleidžia dabartinio programos medžio kopijavimą į „programą“.orig '.

~ / build / helloworld / 0.1 / kolegos-0.1 $ dh_make -e [el. Pašto saugoma] -f… / helloworld-0.1.degutas.gz 

Paraginote jūsų prašoma pasirinkti paketo, kurį reikėtų sukurti, tipą. Norėdami pasirinkti _vieno dvejetainio_ tipo 's'.

Paketo tipas: vienas dvejetainis, indepinis dvejetainis, daugybinis dvejetainis, biblioteka, branduolio modulis, branduolio pataisa? [s / i / m / l / k / n] s Prižiūrėtojo vardas: Frank Hofmann El. pašto adresas: [apsaugotas el. paštu] Data: Šeštadienis, 2017 m. lapkričio 4 d. 21:16:13 +0100 Paketo pavadinimas: helloworld Versija: 0.1 Licencija: tuščia Pakuotės rūšis: „Single Hit“  patvirtinti: Šiuo metu nėra aukščiausio lygio „Makefile“. Tam gali prireikti papildomo derinimo. padaryta. Prašau dabar redaguoti failus debian / pakatalogyje. Taip pat turėtumėte patikrinti, ar kolegos „Makefiles“ įdiegiami į „$ DESTDIR“, o ne į / . 

Rezultatas yra katalogas, vadinamas „debian“:

~ / build / helloworld / 0.1 / kolegos-0.1 $ ls debianas bendražygis.py 

Šiame kataloge yra visi konkrečiam paketui skirti failai.

3.2. Sureguliuokite valdymo failą

Failas „debian / control“ saugo priklausomybes, kurių reikia _ paketui sukurti. Naudojant komandą 'dpkg-depcheck -d ./ configure 'gausite sąrašą su visais reikalingais paketais. Mūsų atveju daugiau paketo nereikia, nes „Python“ yra aiškinama kalba.

Tada turime redaguoti failą „debian / control“ ir pridėti paketui skirtas vertes. Mūsų pavyzdys atrodo taip:

Šaltinis: kolegų pasaulis Skyrius: pitonas Prioritetas: neprivaloma Prižiūrėtojas: Frankas Hofmannas <[email protected]> „Build-Depends“: „debhelper“ (> = 9) standartai - versija: 3.9.5 Pagrindinis puslapis: http: // www.efho.de / # Vcs-Git: git: // anonscm.debianas.org / cooper-maint / helloworld.git # Vcs-Naršyklė: http: // anonscm.debianas.org /?p = bendradarbiavimo palaikymas / kolegų pasaulis.git; a = summary Paketas: helloworld Architektūra: bet koks Priklauso: $ shlibs: Depends, $ misc: Depends, python Aprašymas: „Hello World“ spausdina „Python“ spausdina „Hello World“ „Python“ 

3.3. Koreguokite autorių teisių failą

Faile „debian / copyright“ pateikiama programinės įrangos paketo licencijos informacija. Jis parengtas išleisti per GNU viešąją licenciją 2 (GPLv2). Mūsų pavyzdys atrodo taip:

Formatas: http: // www.debianas.org / doc / pakavimo vadovai / autorių teisių formatas / 1.0 / Upstream-Name: helloworld Šaltinis: http: // www.efho.de / Failai: debian / * Autorių teisės: 2017 m. Frankas Hofmannas <[email protected]> Licencija: GPL-2 + Šis paketas yra nemokama programinė įranga; galite jį perskirstyti ir (arba) modifikuoti pagal GNU bendrosios viešosios licencijos sąlygas, kurias paskelbė Laisvos programinės įrangos fondas; arba 2 licencijos versija, arba (jūsų nuožiūra) bet kuri vėlesnė versija ... Šis paketas platinamas tikintis, kad jis bus naudingas, tačiau BE JOKIOS GARANTIJOS; net nenumatant garantijos, kad prekybai tinkama ar tinkama konkrečiam tikslui. Daugiau informacijos rasite GNU viešojoje viešojoje licencijoje ... Kartu su šia programa turėtumėte gauti GNU bendrosios viešosios licencijos kopiją. Jei ne, žiūrėkite  . „Debian“ sistemose visą GNU bendrosios viešosios licencijos 2 versijos tekstą galite rasti "/ usr / share / common-licences / GPL-2". 

3.4. Sureguliuokite keitimo žurnalo failą

Po informacijos apie autorių teises failas „debian / changelog“ turi būti koreguojamas. Mūsų pavyzdyje pridedame informaciją „Pirminis leidimas“.

kolegos pasaulis (0.1-1) nestabilus; skubumas = mažai * Pirminis paleidimas - Frankas Hofmannas <[email protected]> Šeštadienis, 2017 m. Lapkričio 4 d. 21:16:13 +0100 

Tai viskas, ko mums reikia iki šiol - dabar galiausiai galime sukurti paketą.


4. Sukurkite paketą

Norėdami sukurti paketą, turime pereiti į viršų vieną katalogą ir paleisti šią komandą:

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

Parinktis „-rfakeroot“ leidžia „dpkg-buildpackage“ vykdyti komandas kaip privilegijuotą vartotoją komandos „fakeroot“ pagalba. Tai būtina norint paruošti paketą ir sukurti failus bei katalogus.
Aukščiau pateiktoje komandoje pateikiamas ilgesnis išvesties pranešimų sąrašas (rodomas čia vokiečių kalba):

„dpkg-buildpackage“: „Quellpaket helloworld“ dpkg-buildpackage: „Quellpaket helloworld dpkg-buildpackage“: „Quellversion 0“.1-1 dpkg-buildpackage: nestabilus „Quelldistribution“ dpkg-buildpackage: Quellen geändert durch Frank Hofmann <[email protected]> „dpkg-buildpackage“: „Host-Architektur“ amd64 „dpkg-source“ - prieš sukuriant „helloworld-0“.1 fakeroot debian / taisyklės švarus dh švarus dh_testdir dh_auto_clean dh_clean dpkg-source -b helloworld-0.1 dpkg-source: Informacija: Quellformat "3.0 (antklodė) "wird verwendet dpkg-source: Informacija: helloworld wird unter Benutzung des egzistierenden ./ helloworld_0.1.orig.degutas.gz gebaut dpkg-source: Informacija: helloworld wird in helloworld_0.1–1.debianas.degutas.xz gebaut dpkg-source: Informacija: helloworld wird in helloworld_0.1–1.DSC gebaut debian / taisyklės statyti DH statyti dh_testdir dh_auto_configure dh_auto_build dh_auto_test fakeroot debian / rules binary DH dvejetainiai 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 priklauso von Paket HelloWorld: unbekannte Substitutionsvariable $ shlibs : Priklauso 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-Bit RSA Schlüssel, ID D431AC07, erzeugt 2014-09-05 

4.1. Patvirtinamas paketas

Sveikiname - jums pavyko sukurti „Debian“ paketą - taip! Dabar pažvelkime į pakuotę atidžiau. Čia žaidžia „lintian“. Šis įrankis patvirtina jūsų paketą, kad būtų nustatyta griežtų taisyklių, kurias turi vykdyti „Debian“ paketai, pažeidimų.

Norėdami paleisti bandymus, įveskite šią komandą:

lintian helloworld_0.1-1_amd64.deb 

Įrankis neranda taisyklių pažeidimų, bet taip pat rašybos klaidų ir neteisingų simbolių. Jungiklis „-pedantic“ prašo „lintian“ būti daug kritiškesniu nei įprasta. Kaip matote žemiau, „lintian“ yra šiek tiek niūrus ir aptiko tris įspėjimus ir vieną klaidą.

Išskyrus pirmąjį įspėjimą, „lintian“ galime lengvai pradžiuginti ir pakuotės turinį pakoreguoti pagal nustatytą taisyklę. Įspėjimas „new-package-should-close-itp-bug“ reiškia, kad nėra ITP paketo pranešimo apie klaidą (ITP reiškia _sumatyta paketui_). Paprastam „Debian“ paketui reikia išsiųsti klaidos ataskaitą paketo ITP klaidų stebėtojui, kad jis praneštų kitiems, jog ketinate pradėti pakuoti šią programinę įrangą.

4.2. Įspėjimas: „readme-debian-tartalmaz-debmake-template

Failas „SKAITYTI.„Debian“ skirtas laikyti papildomus užrašus apie šį paketą. 'dh_make' sukūrė šį failą mums:

Debiano kolegos pasaulis ---------------------  -- Frankas Hofmannas <[email protected]> Šeštadienis, 2017 m. Lapkričio 4 d. 21:16:13 +0100 

Mūsų pavyzdyje neturime papildomos informacijos, todėl galime ištrinti failą.

4.3. Įspėjimas: „aprašas-prasideda-pirmaujant-tarpais“

Šis įspėjimas yra iškeltas, nes ilgesnis paketo aprašymas faile „debian / control“ prasideda daugiau nei viena tarpu. Įspėjimas dings, kai tik pašalinsime vieną tarpą.

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

Kiekvienam paketui reikia trumpo ir ilgesnio aprašymo „debian / control“. Ši klaida iškelta, nes abu aprašymai yra identiški. Kai tik išplėsime ilgesnį aprašymą, klaida dings.


5. Nuorodos ir nuorodos

- [ddr] Andreasas Barthas, Adamas Di Carlo, Raphaëlis Hertzogas, Lucasas Nussbaumas, Christianas Schwarzas, Ianas Jacksonas: „Debian“ kūrėjo nuoroda
- [dnmg] Josipas Rodinas, Osamu Aoki: „Debian“ naujosios techninės priežiūros vadovas
- [dpmb] Axelis Beckertas, Frankas Hofmannas: „Debian“ paketų valdymo knyga
- [dpm] „Debian“ politikos vadovas
- [dpt] „Debian“ pakavimo pamoka
- [gph] GNU privatumo vadovas
- [lushpaiPackage] Alex Lushpai: Kaip sukurti „Debian“ paketą iš šaltinio


6. Padėkos

Autorius norėtų padėkoti Axelui Beckertui ir Geroldui Rupprechtui už paramą ir kritikams rengiant šį straipsnį.

„Microsoft Sculpt Touch“ belaidžio pelės apžvalga
Neseniai skaičiau apie „Microsoft Sculpt Touch“ belaidę pelę ir nusprendė ją nusipirkti. Kurį laiką naudojęs, nusprendžiau pasidalinti savo patirtimi....
„AppyMouse“ ekrano „Trackpad“ ir pelės žymeklis, skirtas „Windows“ tabletėms
Planšetinių kompiuterių vartotojai dažnai praleidžia pelės žymeklį, ypač kai įprasta naudoti nešiojamus kompiuterius. Jutiklinio ekrano išmanieji tele...
Vidutinis pelės mygtukas neveikia sistemoje „Windows 10“
The vidurinis pelės mygtukas padeda naršyti ilgus tinklalapius ir ekranus, kuriuose yra daug duomenų. Jei tai sustos, gerai, jūs naudosite klaviatūrą ...