Creare un Repository Debian: differenze tra le versioni

→‎Uso in locale: allow-insecure per un repository locale non firmato
Nessun oggetto della modifica
(→‎Uso in locale: allow-insecure per un repository locale non firmato)
 
(20 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Template:repository}} {{Versioni compatibili}}
{{Repository
__TOC__
|precedente=Immagini iso Debian da usare come repository
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
|successivo=Gestione di un repository con debarchiver
}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
== Introduzione ==
== Introduzione ==
La creazione di un repository Debian personale può essere utile nel caso si vogliano rendere disponibili per l'installazione tramite l'[[Introduzione all' Apt System|APT System]] i pacchetti <code>.deb</code> creati da noi. Il repository così creato può essere utilizzato all'interno della nostra LAN, oppure reso accessibile a un gran numero di utenti tramite Internet.
La creazione di un repository Debian personale può essere utile nel caso si vogliano rendere disponibili per l'installazione tramite l'[[Introduzione all'APT System|APT System]] i pacchetti <code>.deb</code> creati da noi. Il repository così creato può essere utilizzato all'interno della nostra LAN, oppure reso accessibile a un gran numero di utenti tramite Internet.


Esistono fondamentalmente due diversi approcci alla creazione di un repository:  
Esistono fondamentalmente due diversi approcci alla creazione di un repository:  
Riga 59: Riga 61:
   apt apt-best apt-doc apt-utils libapt-pkg-dev libapt-pkg-doc
   apt apt-best apt-doc apt-utils libapt-pkg-dev libapt-pkg-doc
  Wrote 6 entries to output Packages file.
  Wrote 6 entries to output Packages file.
$ ls ~/debian/binary/ |grep Packages
Packages.gz
</pre>
Per la creazione del file indice <code>Packages.gz</code> in Wheezy:
<pre>
$ cd ~/debian
$ apt-ftparchive packages binary | gzip > binary/Packages.gz
$ ls ~/debian/binary/ |grep Packages
$ ls ~/debian/binary/ |grep Packages
Packages.gz
Packages.gz
Riga 71: Riga 80:


=== I file di Release ===
=== I file di Release ===
Se volete poter usare il pinning (''cfr.: [[APT uso avanzato: mixare releases diverse]]'') o permetterne l'uso agli utenti del vostro repository, una volta creati i file <code>Packages.gz</code> e <code>Sources.gz</code>, dovete necessariamente creare un file apposito in ciascuna directory del vostro repository.
Se volete poter usare il [[pinning]] o permetterne l'uso agli utenti del vostro repository, una volta creati i file <code>Packages.gz</code> e <code>Sources.gz</code>, dovete necessariamente creare un file apposito in ciascuna directory del vostro repository.


Questi file sono chiamati file <code>'''Release'''</code>, sono normali file di testo ed hanno una struttura del tipo:
Questi file sono chiamati file <code>'''Release'''</code>, sono normali file di testo ed hanno una struttura del tipo:
Riga 116: Riga 125:
In questo esempio abbiamo creato il repository nella directory <code>~/debian</code> e cioè nella directory <code>debian</code> all'interno della nostra home. Dovremo quindi aggiungere al file <code>/etc/apt/sources.list</code> due linee così composte:  
In questo esempio abbiamo creato il repository nella directory <code>~/debian</code> e cioè nella directory <code>debian</code> all'interno della nostra home. Dovremo quindi aggiungere al file <code>/etc/apt/sources.list</code> due linee così composte:  
<pre>
<pre>
deb file:///home/utente/debian binary/
deb [allow-insecure=yes] file:///home/utente/debian binary/
deb-src file:///home/utente/debian source/
deb-src [allow-insecure=yes] file:///home/utente/debian source/
</pre>
</pre>
dove, alla parola ''utente'' dovete sostituire lo username dell'utente nella cui home risiede il repository.
dove, alla parola ''utente'' dovete sostituire lo username dell'utente nella cui home risiede il repository. L'uso di <code>allow-insecure=yes</code> permette l'uso di un repository non firmato e/o la cui chiave pubblica corrispondente non è stata aggiunta alle chiavi fidate di APT.


Una volta fatto questo lanciate:
Una volta fatto questo lanciate:
Riga 194: Riga 203:
Per il test e l'ordine con cui i pacchetti vengono installati da APT, vi rimando alla lettura del [[#Uso_in_locale|paragrafo precedente]]
Per il test e l'ordine con cui i pacchetti vengono installati da APT, vi rimando alla lettura del [[#Uso_in_locale|paragrafo precedente]]


== Procedura automatizzata ==
== Repository ufficiale ==
Per automatizzare il processo di creazione di un mirror, si può ricorrere a [[Debmirror: creiamo un mirror Debian|Debmirror]].
=== Configurazione repository ===
Per creare un repository ufficiale (fatto a regola d'arte, come quello di debian) per prima cosa installiamo il programma reprepro con il comando:
<pre># apt-get install reprepro</pre>
in seguito scegliamo il percorso dove creare il nostro repo (nella guida sarà indicato come ~/debian/) quindi creiamo la cartella e posizioniamovici dentro:
<pre>$ mkdir ~/debian/
$ cd ~/debian/</pre>
Ora dobbiamo creare un file di configurazione per reprepro quindi:
<pre>$ mkdir conf
$ cd conf</pre>
dentro creiamo un file chiamato distributions e riempiamolo nel seguente modo:
<pre>Origin: nomeMioRepo
Label: Etichetta nomeMioRepo
Suite: unstable
Codename: sid
Architectures: amd64
Components: main
Description: Unofficial Debian packages
SignWith: myKeyId
</pre>
{{Warningbox|Al posto di myKeyId bisogna insere l'id della chiave GPG creata appositamente per firmare i pacchetti.}}
ora riposizioniamoci nella cartella debian dando il comando:
<pre>cd ~/debian</pre>
facciamo creare i file necessari con:
<pre>reprepro check</pre>
per aggiungere un pacchetto al repo:
<pre>reprepro includedeb unstable /tmp/mypackage_1.1.1-1_all.deb</pre>
per rimuoverlo:
<pre>reprepro remove unstable mypackage</pre>
 
Provvedere a mettere online il repository rendendo accessibile da un server web la cartella debian escludendo le directory db e conf, quindi modificare il file <code>/etc/apt/sources.list</code> aggiungendo la seguente riga:
<pre>deb http://www.tuSito.do/debian/ sid main</pre>
{{Suggerimento|Per impedire l'accesso alle directory db e conf si potrebbe creare all'interno di ciascune di essa un file .htaccess contentente:<pre>deny from all</pre>}}


----
=== Creazione pacchetto chiave GPG ===
--[[Utente:Keltik|Keltik]] 09:20, Giu 26, 2005 (EDT)
Per prima cosa esportiamo la nostra chiave con
<pre>gpg --export myKeyId > myrepo-debian-key.gpg</pre>
In seguito creiamo il seguente alvero di directory (si ricorda che control e myrepo-debian-key.gpg sono files):
<pre>
├── DEBIAN
│   └── control
└── etc
    └── apt
        └── trusted.gpg.d
            └── myrepo-debian-key.gpg
</pre>
Inserire all'interno del file control:
<pre>Package: myrepo-archive-keyring
Version: 2014.4
Architecture: all
Maintainer: yourNick <mail@domain.do>
Depends: gpgv
Recommends: gnupg
Breaks: apt (<< 0.7.25.1)
Section: misc
Priority: important
Multi-Arch: foreign
Description: GnuPG archive keys of the archive archive
The archive project digitally signs its Release files. This package
contains the archive keys used for that.
</pre>
Il file myrepo-debian-key.gpg è il file precedentemente creato con GPG.
Posizionarsi all'esterno della directory pkg e lanciare i seguenti comandi:
<pre>
# chown -R root:root ./pkg
$ dpkg-deb -b ./pkg myrepo-archive-keyring_2014.4_all.deb
</pre>
Il pacchetto contiene la chiave per autenticare il repository.
{{Autori
|Autore=[[Utente:Keltik|Keltik]] 09:20, Giu 26, 2005 (EDT)
|Verificata_da=
: [[Utente:Tima|Tima]] 10:41, 16 mag 2013 (CEST)
: [[Utente:Marcomg|marcomg]] 17:50, 23 mag 2014 (CEST)
|Estesa_da=
: [[Utente:Marcomg|marcomg]]
|Numero_revisori=2
}}


[[Categoria:Creare repository]]
[[Categoria:Creare repository]]
3 581

contributi