Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Desigur, unii cititori se aflau într-o situație în care trebuie să instalați un program care nu se află în depozitul Ubuntu. O căutare rapidă în rețea vă va ajuta să găsiți pachete de pachete de tip "ready-to-install" făcute de alți utilizatori ai sistemului. Și dacă nu există pachete? Sau o altă opțiune: un program nou a apărut în programul tău favorit sau un bug enervant a fost rezolvat, dar noua versiune nu va cădea în repository în curând. Cum sa fii? Aici, instalarea din surse ne va ajuta, iar noi o vom face corect și precis, compilându-ne programul și creând din el pachetul nostru de deb, pe care apoi îl vom instala. Și, probabil, vom împărtăși cu alți utilizatori.







Deci, să începem povestea noastră. Cu mult timp în urmă, când iarba era mai verde, iar computerele ocupau complet spații uriașe și aveau însoțitori de la mai mulți oameni, programele erau scrise într-o singură limbă - limba calculatorului. Nu existau cuvinte sau litere, ci doar secvențe nesfârșite de cele și de zerouri. Și deoarece calculatoarele din vremurile antice au costat milioane de dolari și au fost făcute la comandă, atunci toată lumea avea propria lor limbă. Erau puțini programatori, iar ambarcațiunile lor erau mai degrabă ca magia neagră. În timp, calculatoarele au devenit mai mici, mai fiabile, mai rapide și mai ieftine; în consecință, și programatorii au devenit mai mari.


Pentru a vorbi unități și zerouri nu este toată lumea poate, prin urmare, limbaje de programare "la nivel înalt" au fost inventate: asamblor, C, Pascal și alții. Aceste limbi sunt mult mai asemănătoare cu cele umane, iar programarea lor a fost mult mai rapidă și mai convenabilă pentru toată lumea, astfel încât programarea în limbile de mașină a dispărut treptat. Dar aveau un dezavantaj: întrucât nu erau limbi pe care calculatorul le înțelegea direct, era necesară traducerea de la un limbaj de nivel înalt la limba unui calculator anume sau a unei familii de computere.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Apropo, de unde pot obține tarbalele cu sursele? De obicei, legăturile către acestea se află pe site-ul oficial al proiectului, pe pagina de descărcare (undeva) alături de fraza "cod sursă". În exemplul nostru, se folosește sursa gamei de joc, găsită pe site-ul său oficial. După despachetare, avem un dosar în fața noastră și în dosar există o mulțime de fișiere, care privesc în care vom vedea texte în cea mai mare parte obscur în diferite limbi de programare. Cu toate acestea, câteva fișiere merită atenția noastră, numele lor sunt scrise cu majuscule. Aceste fișiere sunt README și INSTALL. Fișierul README conține, de regulă, informații importante pe care dezvoltatorul programului dorește să le informeze mai întâi despre utilizator. Fișierul INSTALL, după cum rezultă din numele său, conține instrucțiuni de instalare și o listă de pachete necesare pentru compilarea cu succes a programului.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Dosarul src conține codul sursă real al programului C ++, restul conține texturi, sunete, scripturi de instalare scrise în limbi speciale și altele. Să începem compilarea. Pentru a converti textul original al programului în computerul poate înțelege codul nu avem nevoie să înțelegem activitatea compilator sau pentru a afla ce este nevoie de fiecare dintre fișierele, deoarece cele mai multe proiecte software liber (ACT) a folosit marca de utilitate proiectat pentru a automatiza astfel de operațiuni, iar în cazul în care dosarul există un makefile, du-te la acest dosar și rulați face pentru a compila. Cu toate acestea, Makefile trebuie, de asemenea, să fie configurat. Deseori, în directorul sursă, există și un script de configurare sau un prefetch pentru acesta, configure.in. În acest din urmă caz, în loc de script, trebuie să executați utilitarul de autoconf. După finalizarea cu succes a configurării (sau autoconf) și a făcut, programul este instalat folosind comanda sudo make install. Pare putin confuz, dar in realitate totul este simplu. Deschideți emulatorul terminalului ("Aplicații → Standard → Terminal") și tastați comenzile corespunzătoare, completând fiecare una prin apăsarea tastei Enter și așteptarea finalizării cu succes a celei anterioare:


cd / full / path / to / folder
./ configure
face
sudo face instalare

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Probabil știți deja elementul de meniu "Instalare / Dezinstalare ...". Acesta rulează un program de instalare grafic simplu, dar pentru scopurile noastre nu funcționează. Avem nevoie de un instrument mai puternic - sinaptic.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Când începeți sinaptic, selectați "Setări → Depozite" și în fereastra care apare, verificați dacă este bifată elementul "Software gratuit susținut de comunitate (universul)". Dacă nu, rețineți. Închideți fereastra și faceți clic pe butonul "Actualizare" pentru a obține cea mai recentă listă de pachete disponibile. După actualizare, apăsăm butonul "Găsiți", în fereastra apărută din meniul drop-down alegem "Descriere și nume" pentru a căuta nu numai nume de pachete, ci și descrieri; conducem în șirul de căutare cuvintele cheie pentru pachetul dorit și apăsăm pe Enter.







Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Când pachetul este găsit, marcați-l pentru instalare și faceți clic pe "Aplicați". Este de remarcat faptul că pentru a compila programe în plus față de pachetele reale ale formularului, de exemplu, libcchanic, aveți nevoie de pachetele corespunzătoare ale formularului lib-kid-dev.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Ei bine, cea mai obișnuită eroare de compilare apare atunci când utilizatorul nu a instalat instrumentele de bază necesare compilării oricăror. Ubuntu nu le are în mod implicit, deci trebuie să le instalați. Din fericire, toate sunt grupate ca dependențe ale unui singur pachet - construiți-esențiale. Este suficient să o marchezi, iar Synaptic va sugera instalarea tuturor celorlalte. Cu toate acestea, unele instrumente care sunt relativ rare în compilare nu pot fi instalate. Dacă primiți următorul mesaj când compilați:

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Instalați pachetul lipsă (imaginea arată prezența comenzii makeinfo din pachetul texinfo). Dacă problema pe care se confruntă nu poate fi rezolvată pur și simplu prin stabilirea pachetelor lipsă, du-te la cel mai apropiat forum de suport și împreună cu o descriere a situației este necesară pentru a posta pe conținutul capătul terminal și la primul mesaj de eroare (căutați «eroare») inclusiv.


Ei bine, acum că ați învățat să faceți față celor mai simple defecte din compilație, este timpul să învățați cum să vă creați pachetele de debit! „De ce? - întrebi. "La urma urmei, programul este deja instalat și funcționează." Ei bine, în primul rând, este stabilit, sincer, ciudat, probabil undeva în pustietatea / usr / local /, și nu așa cum ar toate programele de utilizator decente - în / usr /. Acest lucru nu este un motiv de îngrijorare, dar există posibilitatea unor conflicte între diferite versiuni ale unei biblioteci instalate în / usr / lib / (sau / lib /) și / usr / local / lib /. În al doilea rând, pentru a putea dezinstala programul, va trebui să păstrați un dosar în care l-ați compilat. În Makefile sa (sau Makefiles, se întâmplă că mai multe dintre ele în diferite foldere) conține instrucțiuni pentru a dezinstala programul, și de a face acest lucru, trebuie să mergeți la folderul și a alerga:


sudo face dezinstalarea


Bine, dacă este instalat un singur program tarball. Și dacă există mai multe? Ce se întâmplă dacă o versiune mai nouă și mai stabilă apare în depozit în timp? La urma urmei, programul instalat prin metoda pe care am descris-o nu este înregistrat în sistemul de gestionare a pachetelor Ubuntu, și anume, sinaptic, "simplu instalatorul" și managerul de actualizare despre prezența sa nici măcar nu suspectează. Numai dacă programul a fost instalat în / usr /, atunci când încercați să instalați o versiune din depozit, este posibil să primiți erori, iar după eliminare va trebui să lăsați fișiere suplimentare.
Din aceste și alte motive, vom învăța cum să colectăm pachetele deb.


Sistemul de gestionare a pachetelor din Ubuntu este preluat de la una dintre cele mai renumite distribuții de bază - Debian. Acest sistem este foarte flexibil, fiabil și scalabil, dar simplitatea creării pachetelor nu este faimoasă. Unii dezvoltatori pot prefera să creeze pachete cu mâinile, dar vom folosi două utilitare care automatizează considerabil acest proces, beneficiul și pachetul pe care îl facem mai ales pentru noi înșine. Primul utilitar este dh_make (pachetul dh-make, instalați de asemenea pachetele debhelper și devscripts). Acesta va crea pentru noi toate fișierele de control și descrierile necesare pentru pachetul deb. Al doilea pachet - dpkg-buildpackage - compilează programul cu setări speciale și îl va împacheta împreună cu fișierele de control din pachetul deb.
Deci, avem un dosar cu codul sursă proaspăt dezarhivat pentru jocurile de tip trackball. Să trecem la acest dosar, ca și mai înainte, și să vedem dacă există un dosar "debian" în el.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Se pare că nu se respectă un dosar cu acest nume. Și aceasta înseamnă că trebuie mai întâi să o creați și să o populați cu utilitarul dh_make. Trebuie să o apelați cu opțiunea -f, care specifică calea spre arhivă, din care a apărut conținutul dosarului. În acest caz, acesta este dh_make -f. /trackballs-1.1.2.tar.gz. Două puncte indică un dosar cu un nivel mai mare decât cel curent, iar folderul curent este trackballs-1.1.2. Deasupra acestuia, respectiv desktop-ul, și pe desktop - arhiva dorită. Apropo, dh_make are cerințe speciale pentru numele dosarului în care este lansat. Numele ar trebui să fie de forma program-version, de exemplu, wunderwolf-0.15b sau h3bur3yk4-42.5, și nu ar trebui să existe majuscule în numele, adică Wunderwaafle-0.15b nu va trage, va fi necesar să îl redenumiți. Acest lucru se datorează faptului că dh_make extrage numele și versiunea programului din numele folderului și îl adaugă în fișierele de descriere. Deci, rulați dh_make:

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Mai întâi de toate, programul este interesat de modul de rupere a tarball-ului în pachete. Alegeți un pachet - e (Ingle), în cazul obișnuit bibliotecii singură aplicație - l (ibrary) în cazul programului cu numele modulului de kernel și libchaynik - k (modulul ernel), în cazul unui modul de kernel. Când se face alegerea, dh_make afișează câteva date despre pachet și despre creatorul acestuia. Aceste date vor fi scrise în fișierul de control din dosarul debian.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Apoi puteți edita acest fișier. fișiere emacsen -. * ex, init.d.ex și manpage * în dosarul debian pot fi șterse în cazul în care programul nu furnizează precompilată module, respectiv emacs, nu rulează ca un serviciu de sistem și se transportă un ghid în paginile man.

Compilarea distribuției din surse sau cum se compilează pachetul deb - mahonul - site-ul pentru real

Când totul este gata, puteți rula compilarea și asamblarea pachetului:
dpkg-buildpackage -rfakeroot
Acesta este modul în care finalizarea cu succes a dpkg-buildpackage pentru trackball-uri arată.

Printre fișierele create dpkg-buildpackage există trackballs_1.1.2-1_i386.deb. Faceți clic pe el de două ori sau deschideți-l cu gdebi.

În concluzie, remarcăm că tarbalele nu sunt singura modalitate de a distribui codul sursă. Recent, așa-numitele "sisteme de control al versiunilor" devin din ce în ce mai populare, permițând programatorilor să interacționeze mai atent și să facă schimb de cod software prin rețea. Pentru utilizatori, aceasta înseamnă să trebuiască să înveți mai multe modalități de a descărca sursa. Adesea, comenzile de acces sunt publicate în secțiunea de descărcare, cum ar fi pe site-ul Web Inkscape.


Înainte de întâlnire, Denis Shmakov a fost cu tine.







Articole similare

Trimiteți-le prietenilor: