Come installare software utilizzando Git su Linux
Pubblicato: 2022-01-29Ti è stato detto di "clonare il repository e costruirlo" e non sai cosa fare dopo? Ti mostreremo come ottenere quel programma su GitHub in esecuzione su Linux, anche se sei un principiante.
Le istruzioni che compongono un programma per computer vengono scritte, modificate e salvate in file di testo. Un programma chiamato compilatore elabora quindi questi file. Questo produce la versione eseguibile del programma. I file di testo delle istruzioni sono chiamati codice sorgente. La versione del programma che può essere effettivamente eseguita su un computer è chiamata binaria o eseguibile.
Questa è una versione semplificata degli eventi, ma dipinge un'immagine corretta, anche se generalizzata. In pratica, troverai tutti i tipi di variazioni su quel modello. A volte, altri programmi generano i file di testo. Altre volte, il codice sorgente viene eseguito all'interno di un interprete e non ha bisogno di essere compilato e così via.
Tuttavia, l'unica verità universale in tutti i progetti software è questa: i file del codice sorgente sono i gioielli della corona e devono essere gestiti con la stessa attenzione.
Programmi di controllo della versione
Tutti i file di codice sorgente all'interno di un progetto sono chiamati codebase. I progetti di grandi dimensioni hanno spesso molti sviluppatori che lavorano sulla base di codice. Ogni modifica del codice deve essere tracciata e identificabile. Se necessario, le modifiche devono essere reversibili. Se diversi sviluppatori apportano modifiche allo stesso file di codice sorgente, le loro modifiche devono essere unite.
Non sorprende, quindi, che esistano programmi software chiamati sistemi di controllo della versione per rendere più semplice la gestione delle modifiche alla codebase. I sistemi di controllo della versione conservano tutte le versioni precedenti di ogni file nella codebase e ogni modifica viene registrata, commentata e tracciata.
Una piccola cosa chiamata Git
Linus Torvalds, il creatore del kernel Linux, ha sviluppato un programma di controllo della versione chiamato Git per amministrare la base di codice del kernel Linux. Ora è il software di controllo della versione più adottato al mondo. Ci sono milioni di persone che lo usano, letteralmente.
Con Git, la base di codice di un progetto viene archiviata in repository . Oltre ai repository locali che si trovano sui computer degli sviluppatori e, forse, su un server centrale della rete, è buona norma disporre di un repository fuori sede o remoto.
Ed è qui che entra in gioco GitHub.
GitHub
GitHub è stato creato come risultato del successo di git
. I fondatori hanno visto la necessità emergente di repository git
remoti ospitati in modo sicuro. Hanno lanciato un'attività fornendo una piattaforma cloud per consentire ai team di sviluppo di ospitare repository remoti. Ad aprile 2019, GitHub ospita oltre 100 milioni di repository.
Se un'applicazione è un progetto open source, è molto probabile che venga ospitata su GitHub. Sono disponibili altre piattaforme di repository, come BitBucket e GitLab, ma GitHub ha la parte del leone nei repository open source.
Anatomia di un repository
Un repository GitHub è composto da cartelle contenenti file come gli importantissimi file del codice sorgente. Di solito, ci sono molti altri tipi di file nel repository. Potrebbero essere presenti file di documentazione, pagine man, file di licenza software, istruzioni di compilazione e file di script della shell. Non ci sono regole su ciò che un repository dovrebbe o deve contenere, ma ci sono delle convenzioni.
Se conosci una cucina, puoi navigare in qualsiasi cucina. È lo stesso con i repository. Una volta comprese le convenzioni, sai dove andare per trovare ciò di cui hai bisogno.
Quindi, come si ottiene una copia del repository sul computer e come si costruisce il programma in un eseguibile binario?
Il file Leggimi
È tradizione includere un file readme in un repository. Potrebbe essere chiamato readme, Readme o README. Potrebbe avere un'estensione di ".md" o nessuna estensione.
Diamo un'occhiata al repository GitHub per l'editor Atom. Viene visualizzato un lungo elenco di cartelle e file. Scorri verso il basso e vedrai il contenuto del file README.md.
GitHub inserisce automaticamente il contenuto del file readme nella prima pagina del repository. Se il file readme ha un'estensione ".md", conterrà il linguaggio di markup Markdown. Ciò consente agli sviluppatori di utilizzare elementi di stile, come caratteri, punti elenco e immagini.
In genere, un file readme ha sezioni che indicano di cosa tratta il progetto, qual è il tipo di licenza, chi gestisce il progetto, come partecipare e come creare ed eseguire l'applicazione.
Se non elenca le istruzioni di costruzione effettive, ti dirà dove trovare queste informazioni. Altre informazioni utili per creare l'applicazione, come gli strumenti di compilazione richiesti e altre dipendenze, potrebbero essere elencate qui o un collegamento potrebbe indirizzarti a tali informazioni.
Il deposito delle scatole
La nostra missione è clonare il repository delle scatole e quindi creare l'applicazione delle boxes
.
Il repository segue lo stesso layout di Atom. C'è un elenco di cartelle e file e sotto c'è il contenuto del file readme. Segue il layout standard per un repository, ma è un progetto più piccolo, quindi ci sono meno cartelle e file.
Anche il file readme è più breve. Ha una sezione chiamata "Sviluppo". In quella sezione c'è un collegamento intitolato "costruzione dalla fonte". Se seguiamo quel link, dovremmo trovare le informazioni di cui abbiamo bisogno.
Di solito c'è qualche investigazione leggera necessaria per navigare nel repository e trovare le informazioni desiderate, ma non è difficile. Leggi attentamente tutto sulla pagina del repository. A volte, le informazioni sono presenti ma potrebbero non essere visualizzate in modo visibile.
Le dipendenze
La pagina "Building from Source" ha una sezione chiamata "Building su Linux" ed è proprio quello di cui abbiamo bisogno. Dice che dobbiamo avere un compilatore C, Bison e Flex installati.
Le istruzioni di compilazione dicono di emettere il comando make
, quindi avremo anche bisogno di make
.
Gli strumenti necessari per creare questa applicazione sono un compilatore C, Bison, Flex, make
e Git (per clonare il repository sul tuo computer).
Questo articolo è stato studiato su computer che eseguono le distribuzioni Ubuntu, Fedora e Manjaro Linux. Nessuno della distribuzione aveva tutti questi strumenti installati: era necessario installare qualcosa su ciascuno di essi.
Installazione del set di strumenti
Ubuntu doveva avere Git, Flex, Bison e make
installati. Ecco i comandi:
sudo apt-get install git
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install make
Fedora doveva avere Flex, Bison e make
installati. Ecco i comandi:
sudo dnf install flex
sudo dnf installa bisonte
sudo dnf install make
Manjaro doveva avere installato il compilatore GCC, Flex e Bison. Ecco i comandi:
sudo pacman -Syu gcc
sudo pacman -Syu flex
sudo pacman -Syu bisonte
Clonazione del repository
Ogni repository GitHub ha un indirizzo Web specifico utilizzato con Git per clonare il repository sul tuo computer. Nella pagina principale del repository di scatole, c'è un pulsante verde con l'etichetta "Clona o scarica".
Fare clic sul pulsante per visualizzare l'indirizzo web. Questo è l'indirizzo che dobbiamo passare al comando git
quando cloniamo il repository.
Passare alla directory in cui vogliamo clonare il repository, quindi utilizzare questo comando. Se la finestra del tuo terminale lo supporta, puoi copiare e incollare l'indirizzo web nel comando. Premi Ctrl+Maiusc+V per incollare in una finestra del terminale GNOME.
Git clona il repository remoto e ne crea uno locale sul tuo computer. Ci dice che sta clonando in una directory chiamata "box".
La directory boxes viene creata all'interno della directory da cui è stato emesso il comando git
. Se passiamo alla directory box e guardiamo il contenuto, vediamo lo stesso elenco di file e cartelle che abbiamo visto nella pagina GitHub.
Grande! Abbiamo clonato con successo il codice sorgente e altri file sul nostro computer. Ora dobbiamo creare l'applicazione.
Costruire l'applicazione
Per costruire l'applicazione, dobbiamo seguire le istruzioni sul repository GitHub. A volte, eseguiremo un particolare file di shell e altri eseguiremo make
. Le istruzioni di compilazione che stiamo seguendo ci hanno detto di eseguire make
.
L'utilità make
legge ed esegue una serie di istruzioni da un makefile. Queste istruzioni spiegano a make
come compilare il programma e collegarlo insieme. make
passa le istruzioni al compilatore e ad altri strumenti di compilazione.
Il comando che ci viene detto di usare chiamerà make
due volte. La prima chiamata a make
compila l'applicazione e la seconda esegue una suite di test.
Il comando che le istruzioni di build ci hanno detto di usare è:
fare && fare test
Molte righe di output scorrono rapidamente nella finestra del terminale. In un minuto o giù di lì, verrai riportato al prompt dei comandi.
Distribuzione delle caselle Applicazione
L'applicazione è stata compilata e abbiamo un binario eseguibile. Ora dobbiamo copiare il file binario nella directory /usr/bin/. Ciò consente alla shell di trovarlo quando proviamo a usarlo.
Per alcune applicazioni, questo potrebbe essere tutto ciò che devi fare. In altri casi, potrebbe essere necessario copiare file aggiuntivi, come pagine man e file di configurazione, in posizioni nel filesystem. Quest'ultimo è ciò che dobbiamo fare con la nostra nuova applicazione perché era nelle istruzioni di compilazione.
Usa sudo
per eseguire questi comandi. Il primo comando copia una pagina man nella directory man1:
sudo cp doc/boxes.1 /usr/share/man/man1
Quindi, copia il file di configurazione globale in una directory in /usr/share/:
sudo cp box-config /usr/share/boxes
Infine, copia il binario in /usr/bin:
sudo cp src/boxes /usr/bin
Testare le scatole Applicazione
Vediamo se funziona tutto! Prova ad aprire la pagina man per il comando boxes
.
scatole uomo
È incoraggiante! Viene visualizzata una pagina man che ti dice come usare il comando boxes
.
Premere “Q” per uscire dal sistema man e provare ad usare il comando boxes
.
echo How-To Geek | scatole
E otteniamo la risposta:
Questo potrebbe sembrare leggermente deludente considerando tutto lo sforzo che hai fatto, ma lo scopo di questo esercizio era guidarti attraverso il ritiro di un repository da GitHub e la creazione dell'applicazione.
Il comando boxes
ti consente di avvolgere il testo che è stato reindirizzato ad esso in un'ampia varietà di cornici. Alcuni di essi potrebbero essere utilizzati come commenti nei file di codice sorgente. Il formato sopra funzionerebbe come commento in un file di codice sorgente C, ad esempio. Altri sono puramente decorativi. L'opzione -d
(design) consente di scegliere lo stile della cornice.
echo How-To Geek | scatole -d vorticoso
echo How-To Geek | scatole -d c-cmt2
C'è una lunga lista di design da cui puoi scegliere. Per vederli tutti, usa questo comando:
caselle -l | meno
Costruzione completa
I passaggi per creare dal sorgente sono generalmente semplici:
- Esamina le istruzioni di compilazione sul repository.
- Verifica di aver installato gli strumenti richiesti e installa quelli mancanti.
- Clona il repository sul tuo computer.
- Segui le istruzioni di compilazione, che spesso sono semplici come digitare
make
. - Copia i file nelle posizioni richieste.
Se ci sono passaggi nelle istruzioni di compilazione che non sono chiari, verifica se il progetto ha un forum o una community a cui puoi inviare una domanda. Se l'applicazione ha un sito Web, potrebbe avere una pagina "Contattaci". Lo sviluppatore che gestisce il progetto delle scatole ha la sua e-mail nella pagina "Informazioni" del sito Web delle scatole. È un gesto generoso da parte sua, tipico della più ampia comunità open source.
Comandi Linux | ||
File | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · 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 · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · converti · rclone · shred · srm | |
Processi | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg | |
Rete | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
CORRELATI: I migliori laptop Linux per sviluppatori e appassionati