|
|
Riga 1: |
Riga 1: |
| Spesso abbiamo la necessit� di installare la nuova versione di un pacchetto di cui proprio non possiamo fare a meno, che per� non � disponibile per il rilascio di Debian che abbiamo installato.
| | Per poter firmare i nostri packages necessitiamo di due strumenti: '''gpg''' e '''dpkg-sig'''. |
|
| |
|
| Il caso pi� frequente � probabilmente quello di un' installazione di Testing (Etch) con la necessit� di installare anche pacchetti presenti solo in Unstable o in Experimental, oppure di voler usare un repository con pacchetti particolari, ma compilati per una release di Debian diversa dalla nostra. | | Il primo dovrebbe essere già installato di default con la nostra Debian, per il secondo: |
|
| |
|
| APT � nostro fido alleato anche in questi frangenti, permettendoci di utilizzare fonti per pacchetti di releases diverse (e soddisfarne le dipendenze) senza costringerci ad un upgrade dell' intera distribuzione e senza dover impazzire per risolvere conflitti e inconsistenze.
| | <pre> |
| | # apt-get install dpkg-sig |
| | </pre> |
|
| |
|
| In questo how-to mostrer� come utilizzare pacchetti Debian provenienti da Testing, Unstable, Experimental, Marillat (multimedia/video) e Rarewares.org (multimedia/audio), ma le istruzioni sono facilmente riportabili anche ad altre situazioni (unstable + experimental, stable + testing, stable + unstable, stable + testing + unstable, ecc...).
| | fatto questo generiamo una nuova coppia di chiavi , da usare solo per firmare i packages: |
|
| |
|
| Assicuriamoci di essere l' utente root e procediamo.
| |
|
| |
| Per prima cosa editiamo il file '''/etc/apt/sources.list''' ed inseriamo gli archivi dei pacchetti Debian che utilizzeremo:
| |
| <pre> | | <pre> |
| ### Debian Ufficiale -- Testing
| | $ gpg --gen-key |
| deb http://ftp.it.debian.org/debian/ testing main non-free contrib
| | </pre> |
|
| |
|
| ### Debian Ufficiale -- Testing Sicurezza
| | * rispondiamo 1 alla prima domanda ovvero DSA e ElGamal, diamo invio |
| deb http://security.debian.org/ testing/updates main contrib non-free
| | * come dimensione lasciamo pure 1024, diamo invio |
| | * mettiamo 0 come scadenza, diamo invio |
| | * rispondiamo s, diamo invio |
| | * ora ci verrà chiesto Nome e Cognome: |
|
| |
|
| ### Debian Ufficiale -- Sid
| | <pre> |
| deb http://ftp.it.debian.org/debian/ unstable main non-free contrib
| | Nome e Cognome: denis pecci |
| | </pre> |
|
| |
|
| ### Debian Ufficiale -- Experimental
| | inseriamo i nostri dati e diamo invio |
| deb http://ftp.debian.org/debian/ ../project/experimental main
| |
|
| |
|
| ### Multimedia -- Audio -- Rarewares
| | * ora ci viene chiesto l'indirizzo email: |
| deb http://www.rarewares.org/debian/packages/unstable ./
| |
|
| |
|
| ### Multimedia -- Video -- Marillat
| |
| deb ftp://ftp.nerim.net/debian-marillat/ etch main
| |
| deb ftp://ftp.nerim.net/debian-marillat/ sid main
| |
| </pre>
| |
|
| |
| A questo punto dobbiamo preparare due files normalmente non presenti sulla nostra debianbox: si tratta dei file '''preferences''' e '''apt.conf'''.
| |
| Questi due file istruiranno APT su come gestire le dipendenze dei pacchetti, informandolo su come comportarsi in caso di conflitti e altri problemi.
| |
|
| |
| Creiamo il file preferences:
| |
| <pre> | | <pre> |
| # touch /etc/apt/preferences
| | Indirizzo di Email: debian@nextdeb.net |
| </pre> | | </pre> |
| editiamolo col nostro editor di fiducia e inseriamo queste direttive:
| |
| <pre>
| |
| Package: *
| |
| Pin: release o=Unofficial Multimedia Packages
| |
| Pin-Priority: 950
| |
|
| |
|
| Package: *
| | inseriamolo e diamo invio |
| Pin: release o=xmixahlx
| |
| Pin-Priority: 900
| |
|
| |
|
| Package: *
| | * ed ora inseriamo il commento per la coppia di chiavi: |
| Pin: release a=testing
| |
| Pin-Priority: 850
| |
|
| |
|
| Package: *
| | <pre> |
| Pin: release a=unstable
| | Commento: NextDeb Team Packager |
| Pin-Priority: 800
| |
| | |
| Package: *
| |
| Pin: release a=experimental
| |
| Pin-Priority: 750
| |
| </pre> | | </pre> |
|
| |
|
| Il pinning pu� essere orientato ad un archivio, un'origine, la versione di un pacchetto, un componente, ecc...
| | diamo invio |
|
| |
|
| Con '''"o="''' si specifica l' origine (la distribuzione) del pacchetto, con '''"a="''' l'archivio (sarge,sid, stable, ecc...).
| | * ora premiamo ''''o'''' e invio |
| | * ora ci verrà richiesta la password per le chiavi, inseriamola e invio |
|
| |
|
| Questo dato � reperibile in modo inequivocabile attraverso APT, andando a sbirciare all'interno del file "Release" che � contenuto in tutti i repository ufficiali. Per archivi personali e/o non ufficiali, invece, non � sempre e necessariamente presente (purtroppo).
| | Ecco fatto, ora abbiamo la nostra coppia di chiavi per firmare i pacchetti, esportiamole sul nostro keyserver preferito. |
|
| |
|
| Vediamo alcuni esempi:
| | Per firmare i nostri packages procediamo in questo modo: |
|
| |
|
| <pre> | | <pre> |
| # cd /var/lib/apt/lists | | # dpkg-sig --sign nostronick nomepackages.deb |
| # cat www.rarewares.org_debian_packages_unstable_._Release
| |
| Archive: unstable
| |
| Origin: xmixahlx
| |
| Label: xmixahlx_rarewares-unstable
| |
| Architecture: i386
| |
| | |
| # cat ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Release
| |
| Archive: testing
| |
| Component: main
| |
| Origin: Unofficial Multimedia Packages
| |
| Label: Unofficial Multimedia Packages
| |
| Architecture: i386
| |
| </pre> | | </pre> |
|
| |
|
| Dove:
| | {{Box|Esempio| |
| * '''Archive''' = � l' archivio Debian a cui i pacchetti appartengono (ad es.: stable, testing. ecc...);
| | <pre> |
| * '''Component''' = indica il tipo di componente (ad es.: main, contrib, non-free);
| | # dpkg-sig --sign debian cwcdr_2.0.1-4_all.deb |
| * '''Origin''' = specifica il proprietario del repository;
| | Processing cwcdr_2.0.1-4_all.deb... |
| * '''Label''' = identifica il repository: potete inserire descrizioni, ecc...;
| |
| * '''Architecture''' = l'architettura dei pacchetti contenuti nel repository (ad es.: i386, sparc, source, ecc...).
| |
|
| |
|
| Possiamo vedere che nel file Release � contenuto proprio il dato che stavamo cercando: Origin.
| | 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 |
|
| |
|
| Ora creiamo il file apt-conf
| | Signed deb cwcdr_2.0.1-4_all.deb |
| | |
| <pre>
| |
| # touch /etc/apt/apt.conf
| |
| </pre> | | </pre> |
| | }} |
|
| |
|
| editiamolo inserendo quanto segue:
| | Ecco fatto, ora abbiamo firmato in maniera inequivocabile il nostro pacchetto. Per controllare la firma possiamo usare sia <tt>dpkg-sig</tt> che <tt>gpg</tt>. Con <tt>gpg</tt> basta usare il seguente comando: |
|
| |
|
| <pre> | | <pre> |
| APT::Default-Release "testing";
| | # gpg --verify nome package |
| APT::Cache-Limit 15000000;
| |
| Apt::Get::Purge;
| |
| APT::Clean-Installed;
| |
| APT::Get::Fix-Broken;
| |
| APT::Get::Fix-Missing;
| |
| APT::Get::Show-Upgraded "true";
| |
| </pre> | | </pre> |
|
| |
|
| Facciamo l' update del database dei pacchetti:
| | {{Box|Esempio| |
| | |
| <pre> | | <pre> |
| # apt-get update | | # 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 |
| </pre> | | </pre> |
| | }} |
|
| |
|
| D'ora in avanti avremo due possibilit� per installare un nuovo pacchetto: il metodo che usiamo di solito e cio�:
| | mentre con <tt>dpkg-sig</tt>: |
|
| |
|
| <pre> | | <pre> |
| # apt-get install nome_pacchetto | | # dpkg-sig -v -l nome package |
| </pre> | | </pre> |
|
| |
|
| che utilizzer� pacchetti proveniente dalla versione impostata come '''Default-Release''' in '''apt.conf''', oppure il comando
| | {{Box|Esempio| |
| | |
| <pre> | | <pre> |
| # apt-get install -t versione_di_debian nome_pacchetto | | # dpkg-sig -v -l cwcdr_2.0.1-4_all.deb |
| | Processing wcdr_2.0.1-4_all.deb... |
| | debian |
| </pre> | | </pre> |
| | }} |
|
| |
|
| che provveder� a installare il pacchetto da noi richiesto per la versione specificata (versione_debian), risolvendo automaticamente le dipendenze.
| | come potete vedere quest'ultima maniera mostra solo il nick del firmante del package. |
|
| |
|
| Happy debian!
| |
|
| |
|
| ---- | | ---- |
|
| |
|
| Autore: [[User:Keltik|Keltik]]<br> | | Autore: debian |
| Revisione: [[User:Nest|Nest]] <br>
| | [[Categoria:Apt-Dev]] |
| Verificato: [[Utente:TheNoise|~ The Noise]]
| |
| | |
| [[Categoria:Apt]] | |
Per poter firmare i nostri packages necessitiamo di due strumenti: gpg e dpkg-sig.
Il primo dovrebbe essere già installato di default con la nostra Debian, per il secondo:
# apt-get install dpkg-sig
fatto questo generiamo una nuova coppia di chiavi , da usare solo per firmare i packages:
$ gpg --gen-key
- rispondiamo 1 alla prima domanda ovvero DSA e ElGamal, diamo invio
- come dimensione lasciamo pure 1024, diamo invio
- mettiamo 0 come scadenza, diamo invio
- rispondiamo s, diamo invio
- ora ci verrà chiesto Nome e Cognome:
Nome e Cognome: denis pecci
inseriamo i nostri dati e diamo invio
- ora ci viene chiesto l'indirizzo email:
Indirizzo di Email: debian@nextdeb.net
inseriamolo e diamo invio
- ed ora inseriamo il commento per la coppia di chiavi:
Commento: NextDeb Team Packager
diamo invio
- ora premiamo 'o' e invio
- ora ci verrà richiesta la password per le chiavi, inseriamola e invio
Ecco fatto, ora abbiamo la nostra coppia di chiavi per firmare i pacchetti, esportiamole sul nostro keyserver preferito.
Per firmare i nostri packages procediamo in questo modo:
# dpkg-sig --sign nostronick nomepackages.deb
|
Esempio
# 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
Signed deb cwcdr_2.0.1-4_all.deb
|
Ecco fatto, ora abbiamo firmato in maniera inequivocabile il nostro pacchetto. Per controllare la firma possiamo usare sia dpkg-sig che gpg. Con gpg basta usare il seguente comando:
# gpg --verify nome package
|
Esempio
# 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
|
mentre con dpkg-sig:
# dpkg-sig -v -l nome package
|
Esempio
# dpkg-sig -v -l cwcdr_2.0.1-4_all.deb
Processing wcdr_2.0.1-4_all.deb...
debian
|
come potete vedere quest'ultima maniera mostra solo il nick del firmante del package.
Autore: debian