Te-ai confruntat vreodată cu instrucțiunea „clonează repo-ul și construiește-l” și te-ai simțit pierdut? Nu-ți face griji! Vom explica pas cu pas cum poți face ca un program de pe GitHub să ruleze pe sistemul tău Linux, chiar dacă ești la început de drum.
Un program de calculator este alcătuit din instrucțiuni scrise în fișiere text. Aceste fișiere sunt procesate de un program special numit compilator, care creează o versiune executabilă a programului. Fișierele text care conțin instrucțiunile sunt numite cod sursă, iar versiunea programului care poate rula pe calculator se numește binar sau executabil.
Aceasta este o descriere simplificată, dar ea reflectă corect procesul în general. În realitate, pot exista diverse variații ale acestui model. Uneori, fișierele text sunt generate de alte programe, iar alteori codul sursă este interpretat de un program numit interpret și nu necesită compilare.
Însă un aspect rămâne constant în toate proiectele software: fișierele cu codul sursă sunt de o valoare inestimabilă și trebuie tratate cu cea mai mare atenție.
Sisteme de Control al Versiunilor
Totalitatea fișierelor de cod sursă dintr-un proiect este numită bază de cod. În proiectele de dimensiuni mari, adesea lucrează mai mulți dezvoltatori în paralel. De aceea, fiecare modificare adusă codului trebuie urmărită și identificată, iar dacă e necesar, modificările trebuie să poată fi anulate. În plus, dacă mai mulți dezvoltatori modifică același fișier de cod sursă, modificările lor trebuie să poată fi combinate.
Pentru a gestiona mai ușor modificările bazei de cod, au fost create sisteme de control al versiunilor. Acestea rețin toate versiunile anterioare ale fiecărui fișier din baza de cod, iar fiecare modificare este înregistrată, comentată și urmărită.
Git: Un Instrument Esențial
Linus Torvalds, creatorul nucleului Linux, a dezvoltat un sistem de control al versiunilor numit Git pentru a administra codul sursă al nucleului Linux. Astăzi, Git este cel mai folosit sistem de control al versiunilor din lume, fiind utilizat de milioane de oameni.
Cu Git, baza de cod a unui proiect este stocată în depozite, numite și repo-uri. Pe lângă depozitele locale, care se află pe calculatoarele dezvoltatorilor sau pe un server central, este recomandat să existe și un depozit la distanță, într-o locație separată.
Acesta este rolul pe care îl joacă GitHub.
Rolul GitHub
GitHub a apărut ca o consecință a popularității Git. Fondatorii săi au observat nevoia de a avea depozite Git sigure, găzduite la distanță, și au creat o platformă cloud care oferă echipelor de dezvoltare posibilitatea de a-și stoca depozitele la distanță. În prezent, GitHub găzduiește peste 100 de milioane de depozite.
Dacă un proiect este open-source, este foarte probabil să fie găzduit pe GitHub. Există și alte platforme pentru depozite, cum ar fi BitBucket și GitLab, dar GitHub are majoritatea depozitelor open-source.
Structura unui Depozit
Un depozit GitHub este alcătuit din foldere care conțin fișiere, inclusiv fișierele de cod sursă, care sunt esențiale. Pe lângă acestea, mai pot exista fișiere de documentație, manuale, licențe software, instrucțiuni de construire și scripturi shell. Deși nu există reguli stricte privind conținutul unui depozit, există anumite convenții pe care majoritatea dezvoltatorilor le respectă.
La fel cum te descurci într-o bucătărie odată ce îi cunoști organizarea, la fel vei naviga cu ușurință și într-un depozit, odată ce te familiarizezi cu convențiile sale. Vei ști unde să cauți informațiile de care ai nevoie.
Dar cum obții o copie a depozitului pe calculatorul tău și cum transformi codul într-un executabil?
Fișierul Readme
Este o practică obișnuită să incluzi un fișier readme în depozit. Acesta poate fi numit readme, Readme sau README și poate avea extensia „.md” sau poate să nu aibă extensie.
Să ne uităm la depozitul GitHub al editorului Atom. Vei observa o listă lungă de foldere și fișiere. Dacă derulezi în jos, vei vedea conținutul fișierului README.md.
GitHub afișează automat conținutul fișierului readme pe pagina principală a depozitului. Dacă fișierul readme are extensia „.md”, acesta este scris în limbajul Markdown, care permite dezvoltatorilor să folosească diverse elemente de stil, cum ar fi fonturi, marcatori și imagini.
Un fișier Readme conține de obicei informații despre proiect, licența sub care este distribuit, cine se ocupă de întreținerea sa, cum poți contribui și cum se construiește și se rulează aplicația.
Dacă instrucțiunile de construire nu sunt explicit enumerate în fișierul Readme, acesta îți va indica unde poți găsi aceste informații. De asemenea, fișierul poate include detalii despre instrumentele de construire necesare și alte dependențe sau poate conține un link către aceste detalii.
Clonarea Depozitului
Scopul nostru este să clonăm depozitul cutiilor și apoi să construim aplicația „boxes”.
Depozitul are aceeași structură ca cel al editorului Atom. Există o listă de foldere și fișiere, iar mai jos se află fișierul readme. Depozitul respectă formatul standard, dar fiind un proiect mai mic, conține mai puține foldere și fișiere.
Fișierul readme este și el mai scurt și are o secțiune numită „Dezvoltare”. În această secțiune există un link către o pagină cu instrucțiuni de construire din surse. Urmând acest link, ar trebui să găsim informațiile necesare.

Pentru a găsi informațiile dorite, este posibil să fie nevoie de puțină investigație, dar nu este dificil. Citește cu atenție toate detaliile de pe pagina depozitului. Uneori, informațiile sunt prezente, dar nu sunt afișate într-un mod vizibil.
Dependențele
Pagina cu instrucțiunile de construire din surse are o secțiune dedicată construirii pe Linux, ceea ce este exact ceea ce ne interesează. Aici este specificat faptul că trebuie să avem instalat un compilator C, Bison și Flex.

Instrucțiunile de construire specifică executarea comenzii „make”, deci vom avea nevoie și de „make”.
Așadar, instrumentele necesare pentru a construi aplicația sunt: un compilator C, Bison, Flex, make și Git (pentru a clona depozitul).
Am testat acest proces pe distribuțiile Ubuntu, Fedora și Manjaro Linux. Niciuna dintre ele nu avea toate instrumentele preinstalate, deci a fost necesară instalarea anumitor componente.
Instalarea Instrumentelor
Pe Ubuntu, a fost necesară instalarea Git, Flex, Bison și make. Iată comenzile:
sudo apt-get install git

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install make

Pe Fedora, a fost necesară instalarea Flex, Bison și make. Iată comenzile:
sudo dnf install flex
sudo dnf install bison
sudo dnf install make

Pe Manjaro, a fost necesară instalarea compilatorului GCC, Flex și Bison. Iată comenzile:
sudo pacman -Syu gcc

sudo pacman -Syu flex

sudo pacman -Syu bison

Clonarea Depozitului
Fiecare depozit GitHub are o adresă web specifică, utilizată de Git pentru a clona depozitul pe calculatorul tău. Pe pagina principală a depozitului „boxes”, există un buton verde numit „Clonează sau descarcă”.

Fă click pe buton pentru a vedea adresa web. Aceasta este adresa pe care trebuie să o folosim când clonăm depozitul cu comanda „git”.
Schimbă directorul în cel în care dorești să clonați depozitul și execută comanda cu adresa web. În cazul în care terminalul tău acceptă, poți copia și lipi adresa web în comandă. În terminalele GNOME, poți lipi cu Ctrl+Shift+V.
Git va clona depozitul de la distanță și va crea o copie locală pe calculatorul tău. Se va menționa că depozitul este clonat într-un director numit „boxes”.

Directorul „boxes” este creat în directorul din care ai executat comanda „git”. Dacă navigăm în directorul „boxes” și îi vizualizăm conținutul, vom vedea aceeași listă de fișiere și foldere ca pe pagina GitHub.
<img loading="lazy" decoding="async" src="https://tipstrick.ro/wp-content/uploads/2021/12/163945626
