|
|
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 |