Debmirror: creiamo un mirror Debian: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
mNessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
==Introduzione==
Per poter firmare i nostri package necessitiamo di sue strumenti per poter firmare i nostri package necessitiamo di due strumenti '''gpg''' e '''dpkg-sig'''.


In questo howto vedremo come sia possibile applicare una patch ad un pacchetto
Il primo dovrebbe essere gi� installato di default con la nostra debian, per il secondo:
ufficiale Debian.
Prima di proseguire, per�, vedremo quando non � possibile farlo:
* il pacchetto non � stato distribuito anche in forma di sorgenti (capita per
qualche repository non ufficiale e per alcuni pecchetti uff. (una volta mi era
successo...).


<pre>
# apt-get install dpkg-sig
</pre>


==Preparazione del sistema==
fatto questo generiamo una nuova coppia di chiavi , da usare solo per firmare i packages


Per prima cosa bisogna assicurarsi di avere, in '''/etc/apt/sources.list''',
le sorgenti per scaricare i pacchetti di tipo deb-src:
<pre>
<pre>
#--CUT HERE--#
$gpg --gen-key
#per stable
</pre>
deb-src http://ftp2.it.debian.org/debian/ stable main non-free contrib
deb-src http://non-us.debian.org/debian-non-US stable/non-US main contrib
non-free


#per testing
rispondiamo 1 alla prima domanda ovvero DSA e ElGamal
deb-src http://ftp2.it.debian.org/debian/ testing main non-free contrib
deb-src http://non-us.debian.org/debian-non-US testing/non-US main contrib
non-free


#per unstable
diamo invio
deb-src http://ftp2.it.debian.org/debian/ sid main non-free contrib
 
deb-src http://non-us.debian.org/debian-non-US sid/non-US main contrib non-free
come dimensione lasciamo pure 1024
#--CUT HERE--#
 
</pre>
diamo invio
ora aggiorniamo il contenuto del database dei pacchetti:
 
<pre>
mettiamo 0 come scadenza
# apt-get update
 
</pre>
diamo invio


rispondiamo s


==Procediamo==
diamo invio


===Metodo 1: `apt-get source && dpkg-buildpackage`===
ora ci verr� chiesto Nome e Cognome


Per scaricare i sorgenti, seguiamo questa procedura:
Per avere tutto in ordine, creiamo una cartella di lavoro
<pre>
<pre>
$ mkdir nomepacchetto && cd nomepacchetto
Nome e Cognome: denis pecci
</pre>
</pre>


Ora possiamo scaricare i sorgenti:
inseriamo i nostri dati e diamo invio
 
ora ci viene chiesto l'indirizzo email
 
<pre>
<pre>
$ apt-get source nomepacchetto
Indirizzo di Email: debian@nextdeb.net
</pre>
</pre>


cos� facendo, scaricheremo 3 file, che verranno decompressi in una cartella
inseriamolo e diamo invio
(nomepacchetto-ver.sio.ne)
 
ed ora inseriamno il commento per la coppia di chiavi


Ora possiamo entrare in questa cartella, scaricare la patch e applicarla:
<pre>
<pre>
$ cd nomepacchetto-ver.sio.ne
Commento: NextDeb Team Packager
$ wget http://indirizzo/per/la/patch.patch
</pre>
</pre>


supponendo che la patch non sia compressa...
diamo invio
<pre>
 
$ patch -p1 < patch.patch
ed ora premiamo o e invio
</pre>
 
ora ci verr� richiesta la password per le chiavi , inseriamola e invio


se � compressa:
ecco fatto ora abbiamo la nostra coppia di chiavi per firmare i packages
<pre>
$ zcat patch.patch | patch -p1
</pre>


Una volta applicata la patch, se non riceviamo errori, siamo pronti a
esportiamole sul nostro keyserver preferito.
compilare il pacchetto.
Per fare questo utilizzeremo un altro tool Debian: dpkg-buildpackage
<pre>
# dpkg-buildpackage
</pre>


Il comando prover� a compilare il pacchetto, ed in caso di errori ci chieder�
per firmare i nostri packages procediamo in questo modo
di sistemare le dipendenze (se l'errore � dovuto alla mancanza di alcune
librerie) elencando tutti i pacchetti necessari, installabili con un normale
<pre>
# apt-get buid-dep 'nomepacchetto_da_installare'
</pre>


una volta giunta a termine la compilazione, troveremo (nella cartella
nomepacchetto da noi creata) una serie di file .deb!
ora possiamo installarli:
<pre>
<pre>
# dpkg -i nomepacchetto_ver.sio.ne.deb
# dpkg-sig --sign nostronick nomepackages.deb
</pre>
</pre>


Bene, se non riceviamo errori...il pacchetto � installato.
{| border="1" cellpadding="5" cellspacing="0" align="center"
|+'''Esempio'''
|-
| style="background:#efefef;" |
<tt>
root@nextdeb:/home/nextdeb/uploaded/cwcdr# dpkg-sig --sign debian cwcdr_2.0.1-4_all.deb
Processing cwcdr_2.0.1-4_all.deb...


Ti serve una passphrase per sbloccare la chiave segreta
dell'utente: "denis pecci (NextDeb Team Packager) <debian@nextdeb.net>"
chiave DSA di 1024 bit, ID 73E02514, creata il 2004-11-26


===Metodo 2: `apt-build`===
Signed deb cwcdr_2.0.1-4_all.deb
</tt>
|}


Prima di iniziare, � d'obbligo una introduzione su apt-build.
Ecco fatto ora abbiamo firmato in maniera inecquivocabile il nostro packages
Questo tool � abbastanza giovane, e consente di compilare i pacchetti Debian
per controllare la firma abbiamo due metodi o usando dpkg-sig oppure pgp
ottimizzandoli per la propria macchina. Durante l'installazione vengono poste
vediamoli entrambi
delle domande (tipo di processore, livello di ottimizzazione), e rispondendo
nel modo opportuno, sar� possibile compilare i pacchetti ottimizzandoli per la
propria macchina, cosa che, nel METODO 1 non avviene.


Apt-build ci mette a disposizione una opzione, '''--patch''', che consente di applicare delle patch al pacchetto da installare.
Vediamo, ora, come fare.
Scarichiamo la patch:
<pre>
<pre>
$ wget http://indirizzo/per/la/patch.patch
# gpg --verify nome package
</pre>
</pre>


ora diamo il semplice comando:
{| border="1" cellpadding="5" cellspacing="0" align="center"
|+'''Esempio'''
|-
| style="background:#efefef;" |
<tt>
root@nextdeb:/home/nextdeb/uploaded/cwcdr# gpg --verify cwcdr_2.0.1-4_all.deb gpg: Firma fatta ven 26 nov 2004 11:23:33 CET usando DSA con ID 73E02514
gpg: Firma valida da "denis pecci (NextDeb Team Packager) <debian@nextdeb.net>"
gpg: controllo il trustdb
gpg: controllo al livello 0 firmato=0 ot(-/q/n/m/f/u)=0/0/0/0/0/2
</tt>
|}
 
mentre con dpkg-sig
 
<pre>
<pre>
# apt-build -p 0 --patch patch.patch install 'pacchetto'
# dpkg-sig -v -l nome package
</pre>
</pre>


ora mettiamoci comodi, armati di tazzona di caff� (rigorosamente marchiata con un bel Tux) e controlliamo a video mentre:
{| border="1" cellpadding="5" cellspacing="0" align="center"
* vengono scaricate i pacchetti *-dev per la compilazione;
|+'''Esempio'''
* viene aggiornato l'elenco dei pacchetti dei vari repository (usare l'opzione '''--noupdate''' per evitarlo);
|-
* vengono scaricati i sorgenti del pacchetto;
| style="background:#efefef;" |
* viene applicata la patch;
<tt>
* inizia la compilazione del pacchetto:
root@nextdeb:/home/nextdeb/uploaded/cwcdr# dpkg-sig -v -l cwcdr_2.0.1-4_all.deb Processing wcdr_2.0.1-4_all.deb...
* viene/vengono installato/i il/i pacchetto/i generato/i.
debian
</tt>
|}
 
come potete vedere quest'ultima maniera mostra solo il nick del firmante del package.


Bene, ora il pacchetto � installato nel vostro sistema!
per dubbi chiarimenti insulti ecc ecc sono qu�


ne il sottoscritto ne debianizzati.org si assumono responsabilit sull uso che farete di questa guida


---- [[User:MaXeR|MaXeR]]


[[Categoria:Apt-Dev]]
Autore: debian