Cum se instalează software folosind Git pe Linux
Publicat: 2022-01-29Vi s-a spus să „clonați repo-ul și să îl construiți” și nu știți ce să faceți în continuare? Vă vom arăta cum să obțineți acel program pe GitHub care rulează pe Linux, chiar dacă sunteți începător.
Instrucțiunile care compun un program de calculator sunt scrise, editate și salvate în fișiere text. Un program numit compilator procesează apoi aceste fișiere. Aceasta produce versiunea executabilă a programului. Fișierele text ale instrucțiunilor se numesc cod sursă. Versiunea programului care poate rula efectiv pe un computer se numește binar sau executabil.
Aceasta este o versiune simplificată a evenimentelor, dar prezintă o imagine corectă, dacă este generalizată. În practică, veți găsi tot felul de variante ale modelului respectiv. Uneori, alte programe generează fișierele text. Alteori, codul sursă rulează în interiorul unui interpret și nu trebuie să fie compilat și așa mai departe.
Cu toate acestea, singurul adevăr universal în toate proiectele software este acesta: fișierele codului sursă sunt bijuteriile coroanei și trebuie îngrijite la fel de atent.
Programe de control al versiunilor
Toate fișierele de cod sursă dintr-un proiect se numesc bază de cod. Proiectele mari au adesea mulți dezvoltatori care lucrează la baza de cod. Fiecare modificare a codului trebuie să fie urmărită și identificabilă. Dacă este necesar, modificările trebuie să fie reversibile. Dacă diferiți dezvoltatori efectuează modificări aceluiași fișier de cod sursă, editările lor trebuie îmbinate.
Nu este de mirare, așadar, că există programe software numite sisteme de control al versiunilor pentru a ușura gestionarea modificărilor la baza de cod. Sistemele de control al versiunilor dețin toate versiunile anterioare ale fiecărui fișier din baza de cod și fiecare modificare este înregistrată, comentată și urmărită.
Un mic lucru numit Git
Linus Torvalds, creatorul nucleului Linux, a dezvoltat un program de control al versiunilor numit Git pentru a administra baza de cod al nucleului Linux. Acum este cel mai utilizat software de control al versiunilor din lume. Există milioane de oameni care îl folosesc – la propriu.
Cu Git, baza de cod a unui proiect este stocată în depozite . În plus față de depozitele locale care se află pe computerele dezvoltatorului și, poate, pe un server central din rețea, este o practică bună să aveți un depozit în afara site-ului sau la distanță.
Și aici intervine GitHub.
GitHub
GitHub a fost creat ca urmare a succesului lui git
. Fondatorii au văzut nevoia emergentă de depozite git
la distanță găzduite în siguranță. Ei au lansat o afacere care oferă o platformă cloud pentru a permite echipelor de dezvoltare să găzduiască depozite de la distanță. În aprilie 2019, GitHub găzduiește peste 100 de milioane de depozite.
Dacă o aplicație este un proiect open-source, șansele sunt foarte mari ca aceasta să fie găzduită pe GitHub. Există și alte platforme de depozitare disponibile, cum ar fi BitBucket și GitLab, dar GitHub are cea mai mare parte a depozitelor open source.
Anatomia unui depozit
Un depozit GitHub este format din foldere care conțin fișiere, cum ar fi fișierele de cod sursă foarte importante. De obicei, există multe alte tipuri de fișiere în depozit. Pot exista fișiere de documentație, pagini de manual, fișiere de licență software, instrucțiuni de construire și fișiere de script shell. Nu există reguli cu privire la ceea ce ar trebui sau trebuie să conțină un depozit, dar există convenții.
Dacă vă cunoașteți o singură bucătărie, puteți naviga în orice bucătărie. La fel este și cu depozitele. Odată ce înțelegi convențiile, știi unde să mergi pentru a găsi ceea ce ai nevoie.
Deci, cum obțineți o copie a depozitului pe computer și cum construiți programul într-un executabil binar?
Fișierul readme
Este tradițional să includeți un fișier readme într-un depozit. Poate fi numit readme, Readme sau README. S-ar putea să aibă o extensie „.md” sau să nu aibă deloc extensie.
Să aruncăm o privire la depozitul GitHub pentru editorul Atom. Vedeți o listă lungă de foldere și fișiere. Derulați în jos și vedeți conținutul fișierului README.md.
GitHub pune automat conținutul fișierului readme pe prima pagină a depozitului. Dacă fișierul Readme are extensia „.md”, acesta va conține limbajul de marcare Markdown. Acest lucru le permite dezvoltatorilor să folosească elemente de stil, cum ar fi fonturi, marcatori și imagini.
De obicei, un fișier Readme are secțiuni care vă spun despre ce este proiectul, ce tip de licență este, cine întreține proiectul, cum să vă implicați și cum să construiți și să rulați aplicația.
Dacă nu listează instrucțiunile reale de construire, vă va spune unde să găsiți aceste informații. Alte informații utile pentru construirea aplicației, cum ar fi instrumentele de construire necesare și alte dependențe, ar putea fi enumerate aici sau un link vă poate duce la acele informații.
Depozitul de casete
Misiunea noastră este să clonăm depozitul de casete și apoi să construim aplicația boxes
.
Depozitul urmează același aspect pe care l-a făcut cel Atom. Există o listă de foldere și fișiere, iar mai jos este conținutul fișierului readme. Urmează aspectul standard pentru un depozit, dar este un proiect mai mic, așa că există mai puține foldere și fișiere.
Fișierul readme este de asemenea mai scurt. Are o secțiune numită „Dezvoltare”. În acea secțiune este un link intitulat „building from source”. Dacă urmăm acel link, ar trebui să găsim informațiile de care avem nevoie.
De obicei, sunt necesare investigații ușoare pentru a naviga în depozit și a găsi informațiile pe care le doriți, dar nu este dificil. Citiți cu atenție totul pe pagina de depozit. Uneori, informațiile sunt acolo, dar este posibil să nu fie afișate vizibil.
Dependentele
Pagina „Building from Source” are o secțiune numită „Building on Linux” și tocmai de asta avem nevoie. Spune că trebuie să avem un compilator C, Bison și Flex instalate.
Instrucțiunile de compilare spun să lansăm comanda make
, așa că vom avea nevoie și de make
.
Instrumentele necesare pentru a construi această aplicație sunt un compilator C, Bison, Flex, make
și Git (pentru a clona depozitul pe computer).
Acest articol a fost cercetat pe computere care rulează distribuțiile Ubuntu, Fedora și Manjaro Linux. Nicio distribuție nu avea instalate toate aceste instrumente – trebuia instalat ceva pe fiecare dintre ele.
Instalarea setului de scule
Ubuntu trebuia să aibă instalate 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
Fedora trebuia să aibă instalate Flex, Bison și make
. Iată comenzile:
sudo dnf install flex
sudo dnf install bison
sudo dnf install make
Manjaro trebuia să aibă instalate compilatorul GCC, Flex și Bison. Iată comenzile:
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman -Syu bizon
Clonarea depozitului
Fiecare depozit GitHub are o anumită adresă web folosită cu Git pentru a clona depozitul pe computer. Pe pagina principală a depozitului de casete, există un buton verde etichetat „Clonează sau descărca”.
Faceți clic pe butonul pentru a vedea adresa web. Aceasta este adresa pe care trebuie să o transmitem comenzii git
când clonăm depozitul.
Schimbați în directorul în care dorim să fie clonat depozitul și apoi folosiți această comandă. Dacă fereastra terminalului o acceptă, puteți copia și lipi adresa web în comandă. Apăsați Ctrl+Shift+V pentru a lipi într-o fereastră de terminal GNOME.
Git clonează depozitul de la distanță și creează unul local pe computer. Ne spune că se clonează într-un director numit „cutii”.
Directorul boxes este creat în directorul din care ați lansat comanda git
. Dacă trecem la directorul casete și ne uităm la conținut, vedem aceeași listă de fișiere și foldere pe care am văzut-o pe pagina GitHub.
Grozav! Am clonat cu succes codul sursă și alte fișiere pe computerul nostru. Acum, trebuie să construim aplicația.
Construirea aplicației
Pentru a construi aplicația, trebuie să urmăm instrucțiunile din depozitul GitHub. Uneori, vom rula un anumit fișier shell, iar altele vom rula make
. Instrucțiunile de compilare pe care le urmăm ne-au spus să rulăm make
.
Utilitarul make
citește și execută un set de instrucțiuni dintr-un fișier make. Aceste instrucțiuni indică lui make
cum să compilați programul și să-l conecteze. make
transmite instrucțiunile compilatorului și altor instrumente de compilare.
Comanda pe care ni se spune să o folosim va apela make
de două ori. Primul apel pentru a make
construiește aplicația, iar al doilea rulează o suită de teste.
Comanda pe care instrucțiunile de construire ne-au spus să folosim este:
face && face test
Multe linii de ieșire parcurg rapid în fereastra terminalului. În aproximativ un minut, veți reveni la promptul de comandă.
Implementarea aplicației casete
Aplicația a fost construită și avem un binar executabil. Acum trebuie să copiem binarul în directorul /usr/bin/. Acest lucru permite shell-ului să-l găsească atunci când încercăm să-l folosim.
Pentru unele aplicații, asta ar putea fi tot ce trebuie să faci. În alte cazuri, poate fi necesar să copiați fișiere suplimentare, cum ar fi paginile de manual și fișierele de configurare, în locații din sistemul de fișiere. Acesta din urmă este ceea ce avem de făcut cu noua noastră aplicație, deoarece era în instrucțiunile de construire.
Utilizați sudo
pentru a rula aceste comenzi. Prima comandă copiază o pagină de manual în directorul man1:
sudo cp doc/boxes.1 /usr/share/man/man1
Apoi, copiați fișierul de configurare global într-un director din /usr/share/:
sudo cp boxes-config /usr/share/boxes
În cele din urmă, copiați binarul în /usr/bin:
sudo cp src/boxes /usr/bin
Testarea casetelor Aplicație
Să vedem dacă merge totul! Încercați să deschideți pagina de manual pentru comanda boxes
.
cutii de oameni
Asta e încurajator! Vedeți o pagină de manual care vă spune cum să utilizați comanda boxes
.
Apăsați „Q” pentru a părăsi sistemul man și încercați să utilizați comanda boxes
.
echo How-To Geek | cutii
Și primim răspunsul:
Acest lucru ar putea părea ușor dezamăgitor, având în vedere tot efortul la care ați făcut, dar scopul acestui exercițiu a fost să vă ghideze prin retragerea unui depozit din GitHub și construirea aplicației.
Comanda boxes
vă permite să împachetați textul care este transmis către acesta într-o mare varietate de cadre. Unele dintre ele ar putea fi folosite ca comentarii în fișierele de cod sursă. Formatul de mai sus ar funcționa ca un comentariu într-un fișier de cod sursă C, de exemplu. Altele sunt pur decorative. Opțiunea -d
(design) vă permite să alegeți stilul cadrului.
echo How-To Geek | cutii -d vârtej
echo How-To Geek | casetele -d c-cmt2
Există o listă lungă de modele din care puteți alege. Pentru a le vedea pe toate, utilizați această comandă:
cutii -l | Mai puțin
Construire completă
Pașii pentru a construi de la sursă sunt de obicei simpli:
- Consultați instrucțiunile de construire din depozit.
- Verificați dacă aveți instalate instrumentele necesare și instalați-le pe cele care lipsesc.
- Clonează depozitul pe computer.
- Urmați instrucțiunile de construire, care sunt adesea la fel de simple ca și tastarea
make
. - Copiați fișierul (fișierele) în locațiile necesare.
Dacă există pași în instrucțiunile de construire care nu sunt clari, vedeți dacă proiectul are un forum sau o comunitate la care puteți trimite o întrebare. Dacă aplicația are un site web, este posibil să aibă o pagină „Contactați-ne”. Dezvoltatorul care întreține proiectul cutii își are adresa de e-mail pe pagina „Despre” a site-ului cutii. Acesta este un gest generos din partea lui și tipic comunității open source mai largi.
Comenzi Linux | ||
Fișiere | tar · pv · cat · tac · chmod · grep · diff · sed · ar · om · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · tip · redenumire · zip · dezarhivare · montare · demontare · instalare · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm | |
Procese | alias · ecran · sus · frumos · renice · progres · strace · systemd · tmux · chsh · istoric · la · lot · gratuit · care · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · da · kill · sleep · sudo · su · time · groupadd · usermod · grupuri · lshw · shutdown · repornire · stop · poweroff · passwd · lscpu · crontab · data · bg · fg | |
Rețele | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
LEGATE: Cele mai bune laptopuri Linux pentru dezvoltatori și entuziaști