Acesta este al cincilea articol dintr-o serie pentru a explica elementele de bază ale dezvoltării Ubuntu într-un mod care nu necesită cantități uriașe de fundal și trece prin concepte, instrumente, procese și infrastructură pas cu pas. Dacă vă place articolul sau aveți întrebări sau ați găsit erori, vă rugăm să lăsați un comentariu.
Mulțumesc mult Ghid de ambalare Ubuntuechipă pentru munca lor în acest sens!
Ați găsit o nouă piesă software interesantă, are nevoie de expunere la lumea largă prin introducerea acestuia în Ubuntu sau într-un PPA, așa că ați decis să îl împachetați.
Prima etapă a ambalării este să obținem gudronul eliberat din amonte (numim autorii aplicațiilor „în amonte”) și să verificăm dacă acesta se compilează și rulează.
Acest ghid vă va duce prin ambalare o aplicație simplă numită KQRCode care a fost postat pe KDE-apps.org. Descarca versiunea 0.4 din Sourceforge și puneți-l într-un nou director.
Acum decomprimă-l:
$ tar xf kqrcode-0.4.tar.gz. $ cd kqrcode-0.4
Această aplicație utilizează sistemul de construire CMake, așa că dorim să rulăm cmake pentru a ne pregăti pentru compilare:
$ mkdir build. $ cd build. $ cmake ..
CMake va verifica dependențele necesare, în acest caz ne spune că avem nevoie de biblioteci Qt și KDE. De asemenea, avem nevoie de GCC, pachetele pot instala construirea-esențială care aduce acest lucru și se presupune că este instalat pentru toate pachetele. Dacă nu aveți fișierele de dezvoltare pentru aceste biblioteci instalate, acesta va eșua, le puteți instala și rula din nou CMake:
$ sudo apt-get install build-essential libqt4-dev kdelibs5-dev. $ cmake ..
Acum puteți compila sursa:
$ make
Rularea acestui lucru dă câteva erori cu privire la antetele lipsă. Aceasta înseamnă că lipsesc alte biblioteci care nu au fost verificate de CMake. Faceți o notă pentru a informa în amonte despre această problemă. packages.ubuntu.com poate fi folosit pentru a găsi din ce pachete provin aceste antete, pentru a instala aceste pachete și pentru a continua compilarea:
$ sudo apt-get install libqrencode-dev libzbar-dev libzbarqt-dev. $ make
Dacă compilarea se finalizează cu succes, puteți instala și rula programul:
$ sudo make install. $ kqrcode
bzr-builddeb include un plugin pentru a crea un pachet nou dintr-un șablon, pluginul este un înveliș în jurul dh_make comanda:
$ sudo apt-get install dh-make. $ bzr dh-make kqrcode 0.4 kqrcode-0.4.tar.gz
Când întreabă ce tip de pachet s pentru un singur binar.
Aceasta va importa codul într-o ramură și va adăuga fișierul debian / director de ambalare. Aruncați o privire asupra conținutului. Majoritatea fișierelor pe care le adaugă sunt necesare numai pentru pachetele de specialitate (cum ar fi modulele Emacs), astfel încât să puteți începe prin eliminarea exemplelor de fișiere opționale:
$ cd kqrcode / debian. $ rm * ex * EX
Acum ar trebui să personalizați fiecare fișier.
În debian / changelog schimbați numărul versiunii la o versiune Ubuntu: 0.4-0ubuntu1 (versiunea în amonte 0.4, versiunea Debian 0, Ubuntu versiunea 1). De asemenea, schimbați instabil la actuala versiune de dezvoltare Ubuntu, cum ar fi oniric.
O mare parte din lucrările de construire a pachetelor sunt realizate de o serie de scripturi numite debhelper. Comportamentul exact al debhelper se modifică cu noile versiuni majore, instruiește fișierul compat debhelper ca versiune să acționeze. În general, veți dori să setați acest lucru la cea mai recentă versiune care este 8.
Control conține toate metadatele pachetului. Primul paragraf descrie pachetul sursă. Al doilea și următorul paragraf descriu pachetele binare care trebuie construite. Va trebui să adăugăm pachetele necesare pentru a compila aplicația Build-Depinde: deci setați-l la:
Build-Depends: debhelper (> = 7.0.50 ~), cmake, libqt4-dev, kdelibs5-dev, libqrencode-dev, libzbar-dev, libzbarqt-dev
De asemenea, va trebui să completați o descriere a programului în Descriere: camp.
drepturi de autor trebuie completat pentru a urma licența sursei din amonte. Conform fișierului kqrcode / COPYING acesta este GNU GPL 3 sau o versiune ulterioară.
documente conține toate fișierele de documentare din amonte pe care credeți că ar trebui incluse în pachetul final.
README.source și README.Debian sunt necesare numai în cazul în care pachetul dvs. are caracteristici non-standard, nu avem așa că le puteți șterge.
sursă / format poate fi lăsat ca atare, acesta descrie formatul versiunii pachetului sursă și ar trebui să fie 3.0 (cuvertură).
reguli este cel mai complex fișier. Acesta este un Makefile care compilează codul și îl transformă într-un pachet binar. Din fericire, cea mai mare parte a muncii este realizată automat în aceste zile de către debhelper 7 deci universalul % Makefile target doar execută dh script care va rula tot ce este necesar.
În cele din urmă, trimiteți codul la filiala dvs. de ambalare:
$ bzr commit
Acesta este al patrulea articol dintr-o serie care explică noțiunile de bază ale dezvoltării Ubuntu într-un mod care nu necesită cantități imense de fundal și trece prin concepte, instrumente, procese și infrastructură pas cu pas Etapa. Dacă vă place articolul sau aveți întrebări sau ați găsit erori, vă rugăm să lăsați un comentariu.
Mulțumesc mult echipei Ghidului de ambalare Ubuntu pentru munca depusă în acest sens!
Acum trebuie să verificăm dacă ambalajul nostru compilează cu succes pachetul și construiește pachetul binar .deb:
$ bzr builddeb
Aceasta ar trebui să compileze pachetul și să plaseze rezultatul în ../build-area. Puteți vizualiza conținutul pachetului cu:
$ lesspipe kqrcode_0.4-0ubuntu1_amd64.deb
Instalați pachetul și verificați dacă funcționează:
$ sudo dpkg --instalați kqrcode_0.4-0ubuntu1_amd64.deb
Chiar dacă construiește pachetul binar .deb, ambalajul dvs. poate avea erori. Multe erori pot fi detectate automat de instrumentul nostru lintian care poate fi rulat atât pe fișierul de metadate .dsc sursă, cât și pe pachetul binar .deb:
$ lintian kqrcode_0.4-0ubuntu1.dsc. $ lintian kqrcode_0.4-0ubuntu1_amd64.deb
O descriere a fiecăreia dintre problemele raportate poate fi găsită pe site-ul lintian.
După ce ați reparat ambalajul, puteți reconstrui fără a fi nevoie să construiți de la zero folosind:
$ debuild -nc
FIXME există un echivalent UDD? Gândac https://bugs.launchpad.net/bzr-builddeb/+bug/816376
După ce ați verificat dacă pachetul se dezvoltă local, ar trebui să vă asigurați că se bazează pe un sistem curat folosind pbuilder:
$ bzr builddeb -S. $ cd ../build-area. $ pbuilder-dist oneiric build kqrcode_0.4-0ubuntu1.dsc
Când sunteți mulțumit de pachetul dvs., veți dori ca alții să îl revizuiască. Puteți încărca sucursala în Launchpad pentru examinare:
$ bzr push lp: ~/+junk/kqrcode-package
De asemenea, puteți încărca pachetul sursă în REVU pentru examinare:
$ bzr builddeb -S. $ cd.. $ dput revu kqrcode_0.4-0ubuntu1.dsc
Va trebui să vă conectați la REVU înainte de a putea încărca pe acesta. Pachetul trebuie, de asemenea, să fie semnat corect de cheia GPG pe care o aveți în Launchpad. Vezi Pagina wiki REVU pentru detalii complete.
Încărcarea acestuia într-un PPA (Personal Package Archive) vă va asigura că se construiește și vă va oferi o modalitate ușoară pentru dvs. și pentru ceilalți de a testa pachetele binare. Va trebui să configurați un PPA în Launchad, apoi să încărcați cu dput:
$ dput ppa:kqrcode_0.4-0ubuntu1.dsc
Vedea încărcare pentru mai multe informatii.
Puteți solicita recenzii în # ubuntu-motu Canal IRC sau pe Lista de corespondență MOTU. S-ar putea, de asemenea, să existe o echipă mai specifică pe care să o puteți cere, cum ar fi echipa Kubuntu pentru pachetele KDE.
Totul Ubuntu, zilnic. Din 2009.