3 581
contributi
Nessun oggetto della modifica |
(spostata sezione da guida "Applicare_una_patch_ad_un_pacchetto_Debian" relativa ad apt-build) |
||
(11 versioni intermedie di 5 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{Versioni compatibili|Squeeze|Wheezy|Jessie}} | |||
==Introduzione== | ==Introduzione== | ||
Riga 43: | Riga 44: | ||
Qui possiamo passare delle opzioni aggiuntive a gcc.Eccone alcune: | Qui possiamo passare delle opzioni aggiuntive a gcc.Eccone alcune: | ||
-jX X indica il numero di compilazioni parallele consentite | ;<code>-jX</code>: X indica il numero di compilazioni parallele consentite | ||
-pipe Riduce l'accesso al disco (velocizzando l'operazione) utilizzando il pipe (|) invece dei file temporanei | ;<code>-pipe</code>: Riduce l'accesso al disco (velocizzando l'operazione) utilizzando il pipe (|) invece dei file temporanei | ||
'''What is your architecture?''' | '''What is your architecture?''' | ||
Ora ci verrà mostrata una lista di famiglie di processori, relative alla 'marca' del nostro processore (nel mio caso tutte AMD): scegliamo quella adeguata prendendo spunto da questa lista: [ | Ora ci verrà mostrata una lista di famiglie di processori, relative alla 'marca' del nostro processore (nel mio caso tutte AMD): scegliamo quella adeguata prendendo spunto da questa lista: [https://gcc.gnu.org/onlinedocs/gcc/x86-Options.html#x86-Options lista] (nel mio caso, su un Compaq Presario 2100, athlon-xp). | ||
Riga 63: | Riga 64: | ||
deb http://ftp.it.debian.org/debian/ sid main | deb http://ftp.it.debian.org/debian/ sid main | ||
</pre> | </pre> | ||
diventerà | diventerà: | ||
<pre> | <pre> | ||
deb http://ftp.it.debian.org/debian/ sid main | deb http://ftp.it.debian.org/debian/ sid main | ||
Riga 71: | Riga 72: | ||
'''NB:''' le due righe possono coesistere tranquillamente. | '''NB:''' le due righe possono coesistere tranquillamente. | ||
Ora siamo pronti ad iniziare! | Ora siamo pronti ad iniziare! | ||
==Opzioni== | ==Opzioni== | ||
Riga 78: | Riga 78: | ||
La sintassi di apt-build è vicinissima a quella di apt-get, infatti troviamo, come comandi, i seguenti: | La sintassi di apt-build è vicinissima a quella di apt-get, infatti troviamo, come comandi, i seguenti: | ||
; update : | ; <code>update</code>: aggiorna la lista dei pacchetti (come <code>apt-get update</code>); | ||
; upgrade : | ; <code>upgrade</code>: esegue un aggiornamento del sistema, scaricando i pacchetti e compilandoli; | ||
; install : | ; <code>install</code>: scarica e compila il pacchetto indicato; | ||
; source : | ; <code>source</code>: scarica e decomprime il pacchetto nella directory di compilazione (di solito <code>/var/cache/apt-build/build</code>); | ||
; remove : | ; <code>remove</code>: come <code>apt-get remove</code>; | ||
; clean-sources : esegue un debian/rules clean, che rimuove solamente i prodotti della compilazione; | ; <code>clean-sources</code>: esegue un debian/rules clean, che rimuove solamente i prodotti della compilazione; | ||
; clean-build : rimuove il contenuto della directory <code>/var/cache/apt-build/build/</code> che contiene i sorgenti dei pacchetti ricompilati; | ; <code>clean-build</code>: rimuove il contenuto della directory <code>/var/cache/apt-build/build/</code> che contiene i sorgenti dei pacchetti ricompilati; | ||
; clean-repository : rimuove il contenuto della directory <code>/var/cache/apt-build/repository/</code> che contiene i pacchetti ricompilati tramite apt-build; | ; <code>clean-repository</code>: rimuove il contenuto della directory <code>/var/cache/apt-build/repository/</code> che contiene i pacchetti ricompilati tramite apt-build; | ||
; world : | ; <code>world</code>: ricompila tutti i pacchetti correntemente installati; | ||
; info : | ; <code>info</code>: visualizza le informazioni relative al pacchetto compilato. | ||
Le opzioni, invece, sono le seguenti: | Le opzioni, invece, sono le seguenti: | ||
; --reinstall : | ; <code>--reinstall</code>: ricompila e reinstalla il pacchetto già installato, ci tornerà comodo; | ||
; --rebuild : | ; <code>--rebuild</code>: ricompila il pacchetto indicato; | ||
; --remove-builddep : | ; <code>--remove-builddep</code>: rimuove le dipendenze di compilazione (librerie -dev) installate da apt-build per la compilazione; | ||
; --nowrapper : | ; <code>--nowrapper</code>: non usa il wrapper: compilazione senza le opzioni di ottimizzazione; | ||
; --purge : | ; <code>--purge </code>: durante la rimozione, verranno cancellati anche i file di configurazione presenti in <code>/etc</code>; | ||
; --noupdate : | ; <code>--noupdate</code>: non esegue <code>apt-get update</code> prima dell'installazione dei pacchetti; | ||
; --build-command cmd : | ; <code>--build-command cmd </code>: usa cmd per compilare il pacchetto; | ||
; --patch file : | ; <code>--patch file </code>: applica la patch prima di compilare il pacchetto; | ||
; --patch-strip n : | ; <code>--patch-strip n</code>: indica lo striplevel per il file di patch (equivale al parametro <code>-pX</code> del comando patch); | ||
; --yes -y : | ; <code>--yes -y </code>: risponde 'Yes' a tutte le domande poste da apt (usare con prudenza); | ||
; --version -v : | ; <code>--version -v </code>: mostra la versione di apt-build; | ||
; --source : | ; <code>--source </code>: non scarica i sorgenti (indica che i sorgenti sono già stati scaricati); | ||
; --build-only : | ; <code>--build-only</code> : non installa le dipendenze del pacchetto (usare con attenzione); | ||
; --build-dir dir : | ; <code>--build-dir dir </code>: specifica la directory in cui eseguire la compilazione; | ||
; --repository-dir dir : | ; <code>--repository-dir dir</code> : specifica la directory dove mettere i file compilati; | ||
; --target-release : | ; <code>--target-release </code>: indica da quale release (Stable, Testing, Unstable, Experimental) scaricare i sorgenti; | ||
; --sources-list : | ; <code>--sources-list </code>: specifica un <code>sources.list</code> alternativo. | ||
Riga 136: | Riga 136: | ||
che permette la ricompilazione di tutti i pacchetti correntemente installati sul computer! | che permette la ricompilazione di tutti i pacchetti correntemente installati sul computer! | ||
Allo stesso modo è possibile aggiornare il sistema direttamente, tramite un semplice | Allo stesso modo è possibile aggiornare il sistema direttamente, tramite un semplice: | ||
<pre> | <pre> | ||
# apt-build upgrade | # apt-build upgrade | ||
Riga 144: | Riga 144: | ||
Una precisazione è d'obbligo: non tutti i repository offrono i pacchetti contenenti i sorgenti, e per questo ci si può trovare di fronte ad alcuni errori. | Una precisazione è d'obbligo: non tutti i repository offrono i pacchetti contenenti i sorgenti, e per questo ci si può trovare di fronte ad alcuni errori. | ||
Qui sta a voi risolverli, o installando il pacchetto binario o cercando un altro mirror. | Qui sta a voi risolverli, o installando il pacchetto binario o cercando un altro mirror. | ||
=== Applicare una patch === | |||
Come abbiamo già visto '''apt-build''' ci mette a disposizione una opzione, <code>--patch</code>, che consente di applicare delle patch al pacchetto da installare.<br/> | |||
Vediamo, ora, come fare. | |||
Scarichiamo la patch: | |||
<pre> | |||
$ wget http://indirizzo/per/la/patch.patch | |||
</pre> | |||
e diamo il semplice comando: | |||
<pre> | |||
# apt-build -p 0 --patch patch.patch install 'pacchetto' | |||
</pre> | |||
ora mettiamoci comodi, armati di tazzona di caffè (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre: | |||
* vengono scaricate i pacchetti *-dev per la compilazione; | |||
* viene aggiornato l'elenco dei pacchetti dei vari [[repository]] (usare l'opzione <code>--noupdate</code> per evitarlo); | |||
* vengono scaricati i sorgenti del pacchetto; | |||
* viene applicata la patch; | |||
* inizia la compilazione del pacchetto: | |||
* viene/vengono installato/i il/i pacchetto/i generato/i. | |||
Bene, ora il pacchetto è installato nel vostro sistema con la patch desiderata! | |||
==Conclusioni== | ==Conclusioni== | ||
Lo strumento è veramente potente, anche se non esente da bug. | Lo strumento è veramente potente, anche se non esente da bug. | ||
Riga 157: | Riga 178: | ||
'''Q: Ho spostato la directory della cache di apt-build, ma ora apt mi dà degli errori.'''<br/> | '''Q: Ho spostato la directory della cache di apt-build, ma ora apt mi dà degli errori.'''<br/> | ||
'''A:''' Beh...sarebbe stato utile, dopo lo spostamento, eseguire un | '''A:''' Beh...sarebbe stato utile, dopo lo spostamento, eseguire un: | ||
<pre> | <pre> | ||
# dpkg-reconfigure apt-build | # dpkg-reconfigure apt-build | ||
Riga 170: | Riga 191: | ||
'''Q: Mi sono accorto di non aver configurato correttamente apt-build, come posso fare a modificare la configurazione??'''<br/> | '''Q: Mi sono accorto di non aver configurato correttamente apt-build, come posso fare a modificare la configurazione??'''<br/> | ||
'''A:''' Certamente con il comando | '''A:''' Certamente con il comando: | ||
<pre> | <pre> | ||
# dpkg-reconfigure apt-build | # dpkg-reconfigure apt-build | ||
Riga 187: | Riga 208: | ||
* [http://debian-i586.sourceforge.net/]: interessante progetto di ricompilazione di Debian. Ora sembrerebbe un po'...`smorto`...magari si potrebbe dargli una mano... | * [http://debian-i586.sourceforge.net/]: interessante progetto di ricompilazione di Debian. Ora sembrerebbe un po'...`smorto`...magari si potrebbe dargli una mano... | ||
{{Autori | |||
|Autore=[[User:MaXeR|MaXeR]] | |||
}} | |||
[[Categoria:Apt]] | [[Categoria:Apt]] | ||
[[Categoria: | [[Categoria:Creare e modificare pacchetti]] |
contributi