Apt-build: ottimizzazione dei pacchetti: differenze tra le versioni

spostata sezione da guida "Applicare_una_patch_ad_un_pacchetto_Debian" relativa ad apt-build
Nessun oggetto della modifica
(spostata sezione da guida "Applicare_una_patch_ad_un_pacchetto_Debian" relativa ad apt-build)
 
(10 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: [http://gcc.gnu.org/onlinedocs/gcc/i386-and-x86_002d64-Options.html lista] (nel mio caso, su un Compaq Presario 2100, athlon-xp).
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:


; <code>update</code>: Aggiorna la lista dei pacchetti (come apt-get update);
; <code>update</code>: aggiorna la lista dei pacchetti (come <code>apt-get update</code>);
; <code>upgrade</code>: Esegue un aggiornamento del sistema, scaricando i pacchetti e compilandoli;
; <code>upgrade</code>: esegue un aggiornamento del sistema, scaricando i pacchetti e compilandoli;
; <code>install</code>: Scarica e compila il pacchetto indicato;
; <code>install</code>: scarica e compila il pacchetto indicato;
; <code>source</code>: Scarica e decomprime il pacchetto nella directory di compilazione (di solito <code>/var/cache/apt-build/build<code>);
; <code>source</code>: scarica e decomprime il pacchetto nella directory di compilazione (di solito <code>/var/cache/apt-build/build</code>);
; <code>remove</code>: Come apt-get remove;
; <code>remove</code>: come <code>apt-get remove</code>;
; <code>clean-sources</code>: 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;
; <code>clean-build</code>: 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;  
; <code>clean-repository</code>: 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;
; <code>world</code>: Ricompila tutti i pacchetti correntemente installati;
; <code>world</code>: ricompila tutti i pacchetti correntemente installati;
; <code>info</code>: Visualizza le informazioni relative al pacchetto compilato.
; <code>info</code>: visualizza le informazioni relative al pacchetto compilato.




Le opzioni, invece, sono le seguenti:
Le opzioni, invece, sono le seguenti:
; <code>--reinstall</code>: Ricompila e reinstalla il pacchetto già installato, ci tornerà comodo...
; <code>--reinstall</code>: ricompila e reinstalla il pacchetto già installato, ci tornerà comodo;
; <code>--rebuild</code>: Ricompila il pacchetto indicato;
; <code>--rebuild</code>: ricompila il pacchetto indicato;
; <code>--remove-builddep</code>: Rimuove le dipendenze di compilazione (librerie -dev) installate da apt-build per la compilazione;
; <code>--remove-builddep</code>: rimuove le dipendenze di compilazione (librerie -dev) installate da apt-build per la compilazione;
; <code>--nowrapper</code>: Non usa il wrapper: compilazione senza le opzioni di ottimizzazione;
; <code>--nowrapper</code>: non usa il wrapper: compilazione senza le opzioni di ottimizzazione;
; <code>--purge </code>: Durante la rimozione, verranno cancellati anche i file di configurazione presenti in <code>/etc</code>;
; <code>--purge </code>: durante la rimozione, verranno cancellati anche i file di configurazione presenti in <code>/etc</code>;
; <code>--noupdate</code>: Non esegue 'apt-get update' prima dell'installazione dei pacchetti
; <code>--noupdate</code>: non esegue <code>apt-get update</code> prima dell'installazione dei pacchetti;
; <code>--build-command cmd </code>: Usa cmd per compilare il pacchetto;
; <code>--build-command cmd </code>: usa cmd per compilare il pacchetto;
; <code>--patch file </code>: Applica la patch prima di compilare il pacchetto;
; <code>--patch file </code>: applica la patch prima di compilare il pacchetto;
; <code>--patch-strip n</code>: Indica lo striplevel per il file di patch (equivale al parametro -pX del comando patch;
; <code>--patch-strip n</code>: indica lo striplevel per il file di patch (equivale al parametro <code>-pX</code> del comando patch);
; <code>--yes -y </code>: Risponde 'Yes' a tutte le domande poste da apt (usare con prudenza);
; <code>--yes -y </code>: risponde 'Yes' a tutte le domande poste da apt (usare con prudenza);
; <code>--version -v </code>: Mostra la versione di apt-build;
; <code>--version -v </code>: mostra la versione di apt-build;
; <code>--source </code>: Non scarica i sorgenti (indica che i sorgenti sono già stati scaricati;
; <code>--source </code>: non scarica i sorgenti (indica che i sorgenti sono già stati scaricati);
; <code>--build-only</code> : Non installare le dipendenze del pacchetto (usare con attenzione);
; <code>--build-only</code> : non installa le dipendenze del pacchetto (usare con attenzione);
; <code>--build-dir dir </code>: Specifica la directory in cui eseguire la compilazione;
; <code>--build-dir dir </code>: specifica la directory in cui eseguire la compilazione;
; <code>--repository-dir dir</code> : Specifica la directory dove mettere i file compilati;
; <code>--repository-dir dir</code> : specifica la directory dove mettere i file compilati;
; <code>--target-release </code>: Indica da quale release (Stable, Testing, Unstable, Experimental) scaricare i sorgenti;
; <code>--target-release </code>: indica da quale release (Stable, Testing, Unstable, Experimental) scaricare i sorgenti;
; <code>--sources-list </code>: Specifica un <code>sources.list</code> alternativo.
; <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
---- [[User:MaXeR|MaXeR]]
|Autore=[[User:MaXeR|MaXeR]]
}}


[[Categoria:Apt]]
[[Categoria:Apt]]
[[Categoria:Apt-Dev]]
[[Categoria:Creare e modificare pacchetti]]
3 581

contributi