Un file sorgente contiene il codice originale come scritto dallo sviluppatore in qualunque lingua scelga (C, C ++, Python ecc.) Ed è generico. Non è specifico per qualsiasi distribuzione e in molti casi per qualsiasi sistema operativo.
Un pacchetto (ad esempio RPM o DEB) è l'eseguibile binario (o script interpretato, ecc.) Pre-preparato per la vostra particolare distribuzione. Il compito di preparare l'origine per la compilazione (aggiunta di eventuali patch necessarie ecc.), La compilazione effettiva, la creazione di file di configurazione specifici della distro, la creazione di script pre e post installazione ecc. Sono tutti a carico del manutentore del pacchetto.
In altre parole, tutto il lavoro dell'asino è stato fatto per te in un pacchetto, mentre dovrai scegliere tu stesso se scegli di installarlo dal sorgente.
È molto più facile usare un pacchetto in quasi tutti i casi come:
- Sono molto più facili da installare
- Sono appositamente progettati per funzionare con la tua distribuzione
- A volte vengono corretti dal manutentore del pacchetto per correggere bug specifici della distro
- Il gestore pacchetti li disinstallerà
- Il gestore pacchetti gestirà tutte le dipendenze per te
- Il gestore dei pacchetti si occuperà degli aggiornamenti
- Non è necessario installare strumenti di sviluppo sul proprio sistema (compilatori, make etc)
Tuttavia, a volte la versione in pacchetto è una versione precedente o, peggio ancora, non esiste una versione in pacchetto; nel qual caso l'unica opzione è quella di compilare te stesso. In tal caso, è necessario considerare quanto segue:
- Dovrai installare tutti gli strumenti di sviluppo sul tuo sistema
- Sarai responsabile del controllo di un aggiornamento e della ricompilazione
- Dovrai assicurarti che tutte le dipendenze siano installate, compresi i
dev
pacchetti: ce ne potrebbero essere molti.
- Potrebbe essere necessario eseguire il debug dei problemi se non funziona come previsto nella distribuzione
Se sei disposto a impegnarti di più, la compilazione dalla fonte può darti i vantaggi di:
- Accesso all'ultima versione disponibile
- L'opzione per ottimizzare il processo di compilazione per prestazioni / stabilità
- Godimento!
Si noti che mentre alcuni pacchetti predefiniti di distro forniscono eseguibili binari che sono pronti per l'installazione ed esecuzione (RPM e DEB sono esempi), altri distro forniscono pacchetti che automatizzano semplicemente il processo di compilazione.
Gentoo's ne ebuilds
è un esempio: il pacchetto è sostanzialmente istruzioni per il gestore pacchetti che descrivono come compilare e installare l'eseguibile. Questo ha molti dei vantaggi dei gestori di pacchetti tradizionali (aggiornamenti automatici, disinstallazione, ecc.) Pur consentendo all'utente di ottimizzare il processo di compilazione secondo i propri gusti.
Arch Linux ha un sistema di packaging in cui i pacchetti mainstream sono binari mentre molti pacchetti extra sono compilati sul sistema usando PKGBUILD
file.