Pacchetti binari vs. sorgente: quale utilizzare?

Indipendentemente dal gestore di pacchetti che usi, ci sono due modi per installare programmi su Linux. O usi un pacchetto predefinito o compili il programma da solo. In questi giorni, il primo di solito vince per impostazione predefinita, ma ci sono momenti in cui potresti voler prendere in considerazione la compilazione dal codice sorgente.
Cosa sono i pacchetti binari?
L'installazione di programmi su Linux è in genere molto diversa dal modo tradizionale di installare software su Windows. Invece di scaricare un programma di installazione dal sito Web di un fornitore, i file provengono da un repository di programmi che è in genere adattato alla tua distribuzione Linux. Si accede a questo repository utilizzando un gestore di pacchetti Linux o un app store di Linux.
I file che compongono i programmi in questi repository sono disponibili in un formato di archivio. Questo raggruppa tutto in un unico file per un facile accesso e distribuzione. Debian, ad esempio, usa il formato DEB per archiviare e distribuire i programmi. Questi bundle sono chiamati pacchetti binari .
È necessario un programma speciale per estrarre questi file e installarli sul computer, in genere il gestore pacchetti o l'app store. Questi strumenti svolgono anche altre utili funzioni, come tenere traccia dei file installati e gestire gli aggiornamenti del software.
Da dove vengono i pacchetti?
Tutto il software è costituito da righe di testo note come codice sorgente, scritte in linguaggi di programmazione specifici, come C o C ++. Generalmente non puoi semplicemente raggruppare questo codice sorgente in un archivio e chiamarlo pacchetto. Queste righe devono essere tradotte in una lingua comprensibile ed eseguibile dal computer.
Questo processo si chiama compilazione, il risultato finale crea binari che il tuo computer può eseguire. La differenza tra pacchetti e software è che i file binari del software sono memorizzati insieme all'interno di un pacchetto, insieme ad altre cose come i file di configurazione .
Cosa sta installando "From Source"?
Installare un programma "dalla fonte" significa installare un programma senza usare un gestore di pacchetti. Compilate il codice sorgente e copiate i file binari sul computer.
Il più delle volte, è possibile scaricare il codice sorgente di un progetto da servizi di hosting come GitHub, GitLab o Bitbucket. Programmi più grandi potrebbero persino ospitare codice sorgente su un sito Web personale. Il codice viene generalmente compresso in un formato di archivio (noto anche come pacchetto sorgente ).
Una serie speciale di strumenti aiuta ad automatizzare il processo di costruzione. Sui desktop Linux, questo spesso si presenta sotto forma di un programma a riga di comando chiamato make . Il codice sorgente scritto in diverse lingue richiede compilatori e comandi specifici per modificarli in file binari. Il programma make automatizza questo processo.
Per questa automazione al lavoro, programmi forniscono make con un makefile che gli dice cosa fare e compilare. In questi giorni, di solito viene generato automaticamente da software speciali come CMake. È qui che entri. Da qui, puoi specificare esattamente quali funzionalità vuoi compilare nel tuo software.
Costruire l'esempio "Dalla fonte"
Ad esempio, il comando seguente genera un file di configurazione per Calligra Office Suite utilizzando CMake. Il file creato dice al programma make di compilare solo il componente Writer di Calligra.
cmake -DPRODUCTSET=WORDS -DCMAKE_INSTALL_PREFIX=$HOME/kde/inst5 $HOME/kde/src/calligra
Fatto ciò, tutto ciò che una persona deve fare è eseguire lo strumento make per compilare e copiare i risultati sul proprio computer. Questo viene fatto nel modo seguente:
make make install
Sebbene questo sia lo schema generale per la compilazione di programmi, esistono molti altri modi per installare i pacchetti sorgente. Gentoo Linux, ad esempio, ha un modo integrato di gestirlo, rendendo il processo molto più rapido e semplice. Ma la creazione di pacchetti binari richiede alcuni passaggi in più rispetto ai comandi precedenti.
Vantaggi dell'utilizzo di pacchetti binari
Se stai usando Linux, qualcuno probabilmente ha pre-compilato il software che hai installato. Questo è diventato molto più comune dell'uso dei pacchetti sorgente. Ma perché?
Le versioni binarie sono più facili da gestire
I pacchetti binari contengono molto più che semplici file di installazione compilati. Memorizzano inoltre informazioni che consentono al gestore dei pacchetti di tenere facilmente traccia di tutti i programmi. Ad esempio, i file DEB (il formato del pacchetto per i derivati Debian e Debian) contengono anche informazioni importanti come quale altro software il programma deve eseguire e la sua versione attuale.
Ciò rende i pacchetti molto più facili da installare, poiché non è necessario preoccuparsi di quali altri file sono necessari per eseguire correttamente un programma. Il gestore pacchetti può leggere tali informazioni dal pacchetto stesso e scaricare automaticamente tutte le dipendenze necessarie.
Durante l'installazione di programmi dai sorgenti, a meno che non si compila il codice in un pacchetto binario a sé stante, sarà responsabile della gestione di tale software. Dovrai tenere a mente quali altri programmi ti servono per farlo funzionare e installarli tu stesso.
Le versioni binarie hanno una stabilità migliorata
Le persone che gestiscono i repository per il gestore pacchetti tendono a testare i file binari per i problemi e fanno del loro meglio per correggere quelli che appaiono. Questo può portare a una migliore stabilità dei programmi, qualcosa che una persona che ha installato dal sorgente potrebbe perdere.
I pacchetti Plus di solito devono aderire a una rigida serie di regole per garantire che funzioneranno sul tuo sistema. Sia Debian che Ubuntu hanno un manuale delle politiche, ad esempio, così come molte altre distribuzioni Linux.
Alcuni programmi si basano anche su versioni diverse della stessa dipendenza software da eseguire. I repository di pacchetti fanno del loro meglio per risolvere questi conflitti, quindi non devi preoccuparti di questo.
Vantaggi della compilazione di pacchetti sorgente
L'installazione di programmi dal sorgente non è qualcosa che tutti devono fare, in quanto è generalmente più facile mantenere il tuo PC se rimani con i pacchetti binari. Anche così, ci sono ancora alcuni vantaggi nell'utilizzare questo modo leggermente più complicato di installare programmi.
Il codice sorgente offre il software più recente
Uno svantaggio di rendere i programmi più affidabili è che ci vuole tempo per migliorare e risolvere. Di conseguenza, ciò può comportare l'utilizzo di versioni precedenti del software. Per le persone che vogliono il massimo e il più recente, potrebbero persino preferire un po 'di instabilità in cambio di esso.
Mentre ci sono sistemi operativi Linux che soddisfano questa necessità senza compilare programmi, presentano alcuni inconvenienti. Ad esempio, un software che non rilascia frequentemente versioni di pacchetti set è più difficile da aggiornare in un repository, rispetto all'installazione dal sorgente.
Questo perché i pacchetti binari sono generalmente realizzati da versioni ufficiali di programmi. Pertanto, le modifiche tra queste versioni di solito non vengono prese in considerazione. Compilando il proprio software dalla fonte, è possibile beneficiare immediatamente di queste modifiche.
È anche possibile che il tuo sistema operativo Linux non abbia il software che desideri pre-creato per te. In tal caso, installarlo dal sorgente è l'unica opzione.
Puoi scegliere
Un altro vantaggio dell'utilizzo dei pacchetti di origine è che si ottiene un maggiore controllo sui programmi installati. Quando si installa da un repository binario, si è limitati ai modi in cui è possibile personalizzare i pacchetti.
Ad esempio, guarda FFmpeg, il convertitore audio e video basato sulla riga di comando. Per impostazione predefinita, viene fornito con un numero enorme di funzionalità, alcune delle quali non si potrebbe nemmeno toccare. Ad esempio, il supporto audio JACK è disponibile in FFmpeg, anche se questo software viene solitamente utilizzato solo in ambienti di produzione.
Compilare FFmpeg ti consente di rimuovere da esso ciò che non desideri, lasciandolo più leggero e adattato alle tue esigenze. E lo stesso vale per altri programmi dei pesi massimi.
Quando le risorse sono scarse, la rimozione di funzionalità può essere un ottimo modo per alleggerire il carico. Non sorprende che Chrome OS, presente su molti computer di fascia bassa, sia basato su Gentoo Linux. Gentoo, essendo basato sulla fonte, compila molto del suo software, rendendo potenzialmente più leggeri questi sistemi.
Perché non installare con entrambi?
Anche se probabilmente non vorrai compilare pacchetti su base giornaliera, è qualcosa di utile da tenere a mente. Detto questo, con i nuovi formati di pacchetti universali disponibili da siti come Snap Store e Flathub , è meno probabile che tu debba compilare dal sorgente per ottenere il software più recente.
Leggi l'articolo completo: Pacchetti binari e sorgente: quale utilizzare?