Traduzioni: English - Italiano - Svenska
Presentazione
Definizione di un pacchetto sorgente
i pacchetti dei sorgenti forniscono tutti i file necessari per la compilazione o altrimenti, creare la parte desiderata di software. Nella loro forma più semplice consistono in tre file:
l'archivio upstream con estensione .tar.gz,
un file descrittivo con estensione '.dsc; contiene il nome del pacchetto, sia nel suo stesso nome file sia nel suo contenuto (dopo la parola chiave Source:).
- un tarball, con tutte le modifiche fatte ai sorgenti a monte più tutti i file creati per il pacchetto Debian.
ha un'estensione .debian.tar.gz (formato sorgente: 3.0)
o .diff.gz (formato sorgente: 1.0)
Perché guardare un pacchetto sorgente?
Se si desidera studiare la pacchettizzazione, oppure uno specifico pacchetto.
Se si desidera sapere quale opzioni di compilazione sono state abilitate per un pacchetto specifico (Configurazione dei pacchetti Debian).
Perché perdere tempo con il pacchetto sorgente se c'è un pacchetto binario?
Alcuni sistemi di compilazione (ad esempio cmake) e script ad-hoc forniscono un modo comodo di produrre Pacchetti binari (cioè file .deb per Debian, .rpm per RedHat, ecc.) con un metodo uniforme. Benché questo tipo di approccio sembri a prima vista molto bello, non solo non è sufficiente per poter veramente caricare un pacchetto in Debian, dove un pacchetto sorgente è richiesto, ma è un approccio potenzialmente inferiore.
Una distribuzione solo binaria
non fornisce nemmeno un metodo unificato per ottenere i sorgenti del software corrispondente (come avviene ora con "apt-get source package");
rende difficile (se non del tutto impossibile) per un utente/contributore la ricompilazione del pacchetto .deb a causa di una mancanza di standardizzazione nelle procedure di compilazione e nella descrizione delle dipendenze di compilazione; questo aspetto è spesso mitigato dagli autori originali con descrizioni dettagliate nel file README, ma le istruzioni variano da pacchetto a pacchetto. Non c'è garanzia che siano complete, perciò nel complesso la ricompilazione non è semplice ed è fragile. Perciò non c'è da sorprendersi che le politiche Debian richiedano pacchetti sorgenti con procedure di compilazione standardizzate: Debian deve poter ricompilare software indifferente all'architettura per tutte (>12) le piattaforme supportate;
- compone manualmente le dipendenze "Depends:" per un .deb generato e spesso queste non sono corrette per tutte le suite/rilasci Debian, complicando così le procedure di installazione. Una soluzione veloce e non elegante è spesso quella di compilare versioni statiche perdendo quindi i benefici della modularità in Debian e rendendo il software meno robusto e sicuro.
Come scaricare un pacchetto di sorgenti
I sorgenti normalmente non vengono installati; lo si può fare solo se si conosce il nome del pacchetto.
Come scoprire il nome di un pacchetto sorgente
Su http://www.debian.org/distrib/packages, c'è un motore di ricerca che porta a: http://packages.debian.org/src:<nome> .
Un pacchetto di sorgenti potrebbe generare molti .deb. Per sapere il nome del pacchetto sorgente, si veda il campo Source: nell'output di
apt-cache show nome_pacchetto
A volte il campo SOURCE: non è presente, allora si può controllare usando:
apt-cache showsrc nome_pacchetto
con apt-get source
Un modo per ottenere pacchetti sorgente è usare
apt-get source <nome_pacchetto>
È necessaria una voce deb-src in /etc/apt/sources.list:
deb-src http://http.us.debian.org/debian unstable main
Un pacchetto di sorgenti viene scaricato nella directory corrente ma non viene installato (non apparirà nella lista dei pacchetti installati), quindi non è necessario essere root per usare apt-get source.
Da debian.org
Si può scaricare a mano, da http://www.debian.org/distrib/packages.
Una volta nella pagina del pacchetto, si sceglie una distribuzione e si ottiene un collegamento per i tre file che compongono il pacchetto sorgente.
Lavorare con un pacchetto sorgente
Come compilare il pacchetto Debian
Per compilare il .deb sono necessari i privilegi di root o fakeroot.
Per creare il pacchetto automaticamente dopo il download si può usare
apt-get --build source nome_pacchetto
Installare e usare apt-build (di solito si usa apt-get source -b ...) se si vogliono creare pacchetti ottimizzati dai sorgenti.
Come estrarre i file sorgente
Supponendo che i file del pacchetto sorgente siano presenti nella stessa directory, per decomprimere un pacchetto sorgente, in genere è possibile utilizzare:
dpkg-source -x .../percorso/di/nome_pacchetto.dsc
Tutti i file vengono spaccettati in una versione chiamata pacchetto-versione.