Come installare il software utilizzando Git su Linux

Ti è 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ò effettivamente essere eseguita su un computer è chiamata binario o eseguibile.

È 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 dentro 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 lo sono I gioielli della corona, e hanno bisogno di essere curati altrettanto attentamente.

Programmi di controllo della versione

Tutti i file del codice sorgente all’interno di un progetto sono chiamati codebase. I progetti di grandi dimensioni spesso hanno molti sviluppatori che lavorano sulla base di codice. Ogni modifica al 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 di versione per semplificare la gestione delle modifiche alla base di codice. I sistemi di controllo della versione contengono tutte le versioni precedenti di ogni file nel codice base e ogni modifica viene registrata, commentata e monitorata.

Una piccola cosa chiamata Git

Linus Torvalds, il creatore del kernel Linux, ha sviluppato un programma di controllo della versione chiamato Idiota per amministrare la base di codice del kernel Linux. Ora è il software di controllo delle versioni più utilizzato al mondo. Ci sono milioni di persone che lo usano, letteralmente.

Con Git, la base di codice di un progetto viene archiviata nei repository. Oltre ai repository locali che si trovano sui computer degli sviluppatori e, forse, su un server centrale della rete, è una buona pratica avere un repository off-site 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 avviato 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 dei repository open source.

Anatomia di un repository

Un repository GitHub è composto da cartelle contenenti file come i file del codice sorgente più importanti. 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 riguardo a cosa dovrebbe o deve contenere un repository, ma ci sono delle convenzioni.

Se sai come muoverti in 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 crea il programma in un eseguibile binario?

Il file readme

È tradizionale includere un file readme in un repository. Potrebbe essere chiamato readme, Readme o README. Potrebbe avere un’estensione “.md” o nessuna estensione.

Diamo un’occhiata a GitHub repository 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 mette automaticamente il contenuto del file readme nella prima pagina del repository. Se il file readme ha un’estensione “.md”, conterrà Markup di markdown linguaggio. Ciò consente agli sviluppatori di utilizzare elementi di stile, come caratteri, elenchi puntati e immagini.

In genere, un file readme ha sezioni che ti dicono di cosa tratta il progetto, qual è la licenza del tipo, chi gestisce il progetto, come partecipare e come creare ed eseguire l’applicazione.

Se non elenca le istruzioni di build effettive, ti dirà dove trovare queste informazioni. Altre informazioni utili per la creazione dell’applicazione, come gli strumenti di compilazione richiesti e altre dipendenze, potrebbero essere elencate qui o un collegamento potrebbe portare a tali informazioni.

Le scatole Repository

La nostra missione è clonare il repository di scatolee quindi crea l’applicazione Box.

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 è presente un collegamento intitolato “costruzione dalla fonte”. Se seguiamo quel link, dovremmo trovare le informazioni abbiamo bisogno.

Link alle istruzioni di costruzione per l'applicazione Box.

Di solito c’è un po ‘di investigazione leggera necessaria per navigare nel repository e trovare le informazioni che desideri, 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 on Linux”, ed è proprio ciò di cui abbiamo bisogno. Dice che dobbiamo avere un file Compilatore C., Bisonte, e Flettere installato.

Set di strumenti necessari per la creazione dell'applicazione delle scatole

Le istruzioni di compilazione dicono di emettere il comando make, quindi avremo bisogno anche 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: doveva essere installato 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 install bison

sudo dnf install make

Manjaro doveva avere il compilatore GCC, Flex e Bison installati. Ecco i comandi:

sudo pacman -Syu gcc

sudo pacman -Syu flex

sudo pacman -Syu bison

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 Box, c’è un pulsante verde con l’etichetta “Clona o scarica”.

Il

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 si desidera clonare il repository e 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”.

Repository clonato in una finestra di terminale.

La directory delle caselle viene creata all’interno della directory da cui è stato emesso il comando git. Se passiamo alla directory delle caselle e guardiamo il contenuto, vediamo lo stesso elenco di file e cartelle che abbiamo visto nella pagina GitHub.

Il contenuto del repository di scatole in una finestra di terminale.

Grande! Abbiamo clonato con successo il codice sorgente e altri file sul nostro computer. Ora dobbiamo creare l’applicazione.

Creazione dell’applicazione

Per creare l’applicazione, dobbiamo seguire le istruzioni sul repository GitHub. A volte, eseguiremo un particolare file di shell, e altri eseguiremo make. Le istruzioni di build che stiamo seguendo ci hanno detto di eseguire make.

L’utility make legge ed esegue una serie di istruzioni da un makefile. Queste istruzioni indicano 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 per make crea l’applicazione e la seconda esegue una suite di test.

Il comando che le istruzioni di compilazione ci hanno detto di usare è:

make && make test

Molte righe di output scorrono rapidamente nella finestra del terminale. In un minuto circa, verrai riportato al prompt dei comandi.

Distribuzione delle caselle Applicazione

L’applicazione è stata costruita e abbiamo un file binario eseguibile. Dobbiamo ora copiare il 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.

Comandi di copia file da GitHub.

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

Successivamente, copia il file di configurazione globale in una directory in / usr / share /:

sudo cp boxes-config /usr/share/boxes

Infine, copia il binario in / usr / bin:

sudo cp src/boxes /usr/bin

Collaudo delle scatole Applicazione

Vediamo se funziona tutto! Prova ad aprire la pagina man per il comando box.

man boxes

È incoraggiante! Vedrai una pagina man che ti dice come usare il comando box.

Premere “Q” per uscire dal sistema man e provare a utilizzare il comando box.

echo winadmin.it | boxes

E otteniamo la risposta:

box output in una finestra di terminale.

Questo potrebbe sembrare un po ‘deludente considerando tutto l’impegno che hai fatto, ma il punto di questo esercizio è stato quello di guidarti attraverso il ritiro di un repository da GitHub e la creazione dell’applicazione.

Il comando riquadri ti consente di avvolgere il testo che viene convogliato ad esso in un’ampia varietà di cornici. Alcuni di essi potrebbero essere utilizzati come commenti nei file del 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) ti permette di scegliere lo stile della cornice.

echo winadmin.it | boxes -d whirly
echo winadmin.it | boxes -d c-cmt2

C’è una lunga lista di design tra cui puoi scegliere. Per vederli tutti, usa questo comando:

boxes -l | less

Build Complete

I passaggi per compilare dal codice sorgente sono generalmente semplici:

Rivedi le istruzioni per la creazione nel repository.
Verificare di aver installato gli strumenti necessari e installare quelli mancanti.
Clona il repository sul tuo computer.
Segui le istruzioni di costruzione, che spesso sono semplici come digitare make.
Copia i file nelle posizioni richieste.

Se ci sono passaggi nelle istruzioni di costruzione che non sono chiari, controlla se il progetto ha un forum o una comunità a cui puoi inviare una domanda. Se l’applicazione dispone di un sito Web, potrebbe avere una pagina “Contattaci”. Lo sviluppatore che gestisce il progetto Box ha la sua e-mail nella pagina “Informazioni” di il sito web di scatole. È un gesto generoso da parte sua e tipico della più ampia comunità open source.