Deb-src pachete

Uneori se întâmplă că trebuie să remediați ceva în sursă și să reconstruiți un program. Mai mult, problema este complicată de faptul că programul face parte dintr-un proiect mare, de exemplu KDE4 sau GNOME. Ia surse separat și reconstrui programul cu "configure, make; install (checkinstall)" este aproape imposibil. Este imposibil deoarece compilatoarele probabil au nevoie de cod sursă sau, cel puțin, de antete comune pentru întregul proiect de bibliotecă. Și bibliotecile sursă vor necesita exact versiunea mediului în care este instalat în sistem. Întrebarea este, în cazul în care pentru a le obține, dacă în VCS oficiale chiar și pentru sucursala dvs. proiectul "plecat" înainte? Uzhos și un coșmar într-un singur cuvânt.







Vom efectua acțiunile pe un exemplu concret - trebuie să corectăm codul sursă Konsole din mediul de lucru KDE4. Programul Konsole este deja instalat în sistem, dar nu ne place ceva în lucrarea sa, de exemplu forma cursorului. Descărcați codul sursă, efectuați modificări, compilați și instalați programul nou asamblat în sistem. Deci, să începem.

Pasul unu - Pregătirea

Mai întâi, trebuie să vă asigurați că există linii în fișierul /etc/sources.list care conțin depozite de surse. De exemplu, în Debian Squeeze ar trebui să existe linii:

Linia care începe cu deb-src este depozitul de surse.

Pentru o mai bună înțelegere, este necesar să explicăm câteva lucruri, care, din anumite motive, sunt adesea ratate în documentație.

În primul rând. Este necesar să rețineți că pentru fiecare pachet de la deb există neapărat sursa lui în deb-src. Singura excepție este meta-pachetele, dar ele nu ne interesează. Adică, dacă vedeți un pachet cu un nume în synaptic, de exemplu, iptables, atunci ar trebui să utilizați același nume iptables în comenzile sursă.

În al doilea rând, trebuie să știți că după ce ați scris liniile care încep cu deb-src în /etc/sources.list. și după comanda ulterioară "apt-get update", nu veți vedea pachetele sursă în synaptic sau aptitude. Ei vor fi conectați, sistemul va ști despre pachetele sursă, dar nu veți vedea disponibilitatea acestora.

Pasul al doilea - obținerea și despachetarea surselor

În directorul de lucru, trebuie să creați un director care va fi utilizat pentru asamblare. Este necesar să intrați în acesta, iar comenzile ulterioare trebuie efectuate în acest director.

Din utilizatorul mediu (nu din root), dați comanda:







$ apt-get console de sursă

Ca rezultat, fișierele sursă vor fi descărcate și plasate în directorul curent. Concluzia va fi ceva de genul:

Este necesar să obțineți 4 082 KB de arhive cod sursă.

Obținut 4,082 kB timp de 44 s (91,3 kB / s)

dpkg-source: info: extragerea kdebase în kdebase-4.4.5

dpkg-source: info: despachetat kdebase_4.4.5.orig.tar.bz2

dpkg-source: info: despachetat kdebase_4.4.5-2.debian.tar.gz

dpkg-source: info: suprapus debian-T-addition.diff

Pasul al treilea - Instalarea pachetelor dependente

Apoi, trebuie să obțineți pachetele dependente de care aveți nevoie pentru a vă construi programul. Din rădăcină dăm comanda:

# apt-get build-dep console

Ca rezultat, toate pachetele vor fi descărcate și instalate, fără de care nu va funcționa construirea programului nostru.

Pasul al patrulea - compilație

Pentru compilare, este necesar să faceți un lucru neobișnuit. În directorul nostru actual, ca urmare a acțiunilor noastre, s-au format tot felul de fișiere și subdirectoare noi. Trebuie să găsim un fișier numit "reguli". Acesta este un fișier executabil. La mine a apărut este situat astfel:

După ce a fost găsit, trebuie să mergeți la directorul de mai sus cu privire la acesta și să dați următoarea comandă de la utilizatorul obișnuit:

$ fakeroot ./debian/rules binar

Ca rezultat al acestei comenzi, compilația va fi lansată mai întâi și apoi va apărea un fișier * .deb în directorul curent de lucru, în cadrul căruia va fi localizat programul nou compilat. Se poate dovedi că nu va fi generat un singur * .deb, dar mai multe care corespund altor programe care se află în același pachet sursă.

De exemplu, am generat următoarele pachete:

Printre aceste pachete se află console_4.4.5-2_i386.deb care ne interesează.

Pasul Cinci - Instalare

Pentru a instala un nou pachet în plus față de cel existent, trebuie să dați comanda de la root:

# dpkg -i konsole_4.4.5-2_i386.deb

Hehe, ai de gând să faci această comandă în Konsole? Acest lucru nu este necesar, iar instalarea va fi trimisă în mijloc, când vor înlocui fișierele Konsole. Trebuie să rulați xterm, mergeți la directorul nostru de lucru și executați această comandă de la root.

În pașii 1 și 5, am fost convinși că codul sursă este disponibil și sunt colectați fără erori. Acum poți face schimbări sursei și primești programul pe care l-am corectat.

După cum a fost scrisă la început, nu ne place structura cursorului în Konsole. Mulți agenți vechi sunt obișnuiți cu cursorul intermitent sub formă de subliniere. Această formă a cursorului este în terminalul Konsole din mediul KDE4, dar forma este reprezentată ca o linie subțire cu o înălțime de 1 pixel. Acest cursor este greu de găsit pe ecran.

În același timp, dacă examinați cu atenție cursorul în modul Text, puteți să vă asigurați că are o înălțime de cel puțin 2 pixeli și datorită acestui conținut de grăsime este bine detectat pe spațiul ecranului. În acest caz, cursorul nu este un bloc verviglaznym care ocupă toată familiaritatea.

Rețineți că în toate aceste fotografii, înălțimea cursorului este de 2 pixeli, nu de 1. Părinții fondatori știu ce fac, spre deosebire de codificatorii actuali de maimuțe.

Deci, trebuie să schimbăm grosimea cursorului. Redarea cursorului a fost găsită în fișier:

În acest fișier găsim metoda drawCursor și găsim locul în care cursorul este desenat sub forma unei subliniere. Acesta este locul:

altfel dacă (_cursorShape == UnderlineCursor)

Trebuie să trasăm două linii, așa că înlocuim acest cod cu acest lucru:







Articole similare

Trimiteți-le prietenilor: