3 581
contributi
m (→Configurazione: typos) |
m (versioni compatibili) |
||
(19 versioni intermedie di 10 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
=Introduzione= | {{Repository | ||
[http://packages.debian.org/debarchiver Debarchiver] | |precedente=Creare un Repository Debian | ||
|successivo=Introduzione all'APT System | |||
}} | |||
{{Versioni compatibili|Wheezy|Jessie}} | |||
__TOC__ | |||
==Introduzione== | |||
[http://packages.debian.org/debarchiver Debarchiver] è uno strumento comodo e potente per poter gestire facilmente un repository Debian ben strutturato e suddiviso. Oltre a questo permette di mantenerlo in ordine (evitando il mantenimento di versioni vecchie) senza richiedere manutenzione da parte dell'amministratore. | |||
=Installazione= | ==Installazione== | ||
L'installazione | L'installazione è semplice, in quanto il programma è incluso in Debian: | ||
<pre> | <pre> | ||
# apt-get install debarchiver | # apt-get install debarchiver | ||
</pre> | </pre> | ||
Raccomando agli utenti di Sarge di installare la versione presente in testing, in quanto molto | <!-- Raccomando agli utenti di Sarge di installare la versione presente in testing, in quanto molto più aggiornata e funzionale di quella inclusa nella release ''Stable''. --> | ||
=Configurazione= | ==Configurazione== | ||
Tutta la configurazione di debarchiver | Tutta la configurazione di debarchiver è racchiusa in un unico file: <code>'''/etc/debarchiver.conf'''</code>, che analizziamo nel dettaglio: | ||
{{Box|Nota Bene:|le opzioni riportate nel file di configurazione sono inizialmente commentate in quanto i valori riportati sono quelli di default.}} | {{Box|Nota Bene:|le opzioni riportate nel file di configurazione sono inizialmente commentate in quanto i valori riportati sono quelli di default.}} | ||
Riga 19: | Riga 25: | ||
$inputdir = "/var/lib/debarchiver/incoming"; | $inputdir = "/var/lib/debarchiver/incoming"; | ||
</pre> | </pre> | ||
Dove | Dove verrà creato il repository (<code>''destdir''</code>) e dove vengono inseriti i pacchetti da aggiungere al repository (<code>''inputdir''</code>) | ||
<pre> | <pre> | ||
Riga 27: | Riga 33: | ||
# $vrfycmd = "dscverify"; | # $vrfycmd = "dscverify"; | ||
</pre> | </pre> | ||
La lista dei comandi utilizzati nella gestione del repository | La lista dei comandi utilizzati nella gestione del repository: quelli di default, normalmente, sono corretti per la maggior parte delle situazioni. | ||
<pre> | <pre> | ||
# $cinstall = "installed"; | # $cinstall = "installed"; | ||
</pre> | </pre> | ||
Dove verranno messi i file ''.changes''. | Dove verranno messi i file <code>''.changes''</code>. | ||
<pre> | <pre> | ||
Riga 38: | Riga 44: | ||
# $distinputdirs = "/path"; | # $distinputdirs = "/path"; | ||
</pre> | </pre> | ||
Indica il criterio con il quale verranno accettati i pacchetti non aventi un file ''.changes'' e dove devono essere inseriti per essere ''presi'' dal sistema | Indica il criterio con il quale verranno accettati i pacchetti non aventi un file <code>''.changes''</code> e dove devono essere inseriti per essere ''presi'' dal sistema. | ||
<pre> | <pre> | ||
# $verifysignatures = 0; | # $verifysignatures = 0; | ||
</pre> | </pre> | ||
Attiva (1) o disattiva (0) la verifica della firma dei pacchetti inseriti nella ''inputdir''. | Attiva (<code>1</code>) o disattiva (<code>0</code>) la verifica della firma dei pacchetti inseriti nella <code>''inputdir''</code>. | ||
<pre> | <pre> | ||
# $verifysignaturesdistinput = 0; | # $verifysignaturesdistinput = 0; | ||
</pre> | </pre> | ||
come sopra, ma riguarda la directory ''distinputdirs'' | come sopra, ma riguarda la directory <code>''distinputdirs''</code>. | ||
<pre> | <pre> | ||
# $bzip = 0; | # $bzip = 0; | ||
</pre> | </pre> | ||
Attiva la generazione di file compressi con bz2 | Attiva la generazione di file compressi con bz2. | ||
<pre> | <pre> | ||
Riga 63: | Riga 69: | ||
); | ); | ||
</pre> | </pre> | ||
Permette di indicare i nomi delle directory contenute nella directory ''incoming'' che provvederanno a raccogliere i pacchetti di una | Permette di indicare i nomi delle directory contenute nella directory <code>''incoming''</code> che provvederanno a raccogliere i pacchetti di una determinata release. In questo caso, nella release ''stable'' verranno inseriti i pacchetti presenti nella directory <code>''/var/lib/debarchiver/incoming/stable/''</code>. | ||
<pre> | <pre> | ||
Riga 74: | Riga 80: | ||
%distmapping = | %distmapping = | ||
( | ( | ||
stable => ' | stable => 'wheezy', | ||
testing => ' | testing => 'jessie', | ||
unstable => 'sid' | unstable => 'sid' | ||
); | ); | ||
Riga 84: | Riga 90: | ||
# @architectures = ('i386'); | # @architectures = ('i386'); | ||
</pre> | </pre> | ||
Permette di indicare la lista di | Permette di indicare la lista di architetture (racchiuse tra apici e separate da una virgola) presenti nel repository. | ||
<pre> | <pre> | ||
@sections = ('main', 'contrib', 'non-free'); | @sections = ('main', 'contrib', 'non-free'); | ||
</pre> | </pre> | ||
Indica le sezioni in cui | Indica le sezioni in cui è suddiviso il repository. <!-- La sezione ''non-free'' non è più presente nelle release ufficiali Debian a partire dal rilascio di Sarge. --> | ||
<pre> | <pre> | ||
@mailtos = ('Maintainer', 'Uploaders', '@knio.it', 'admin@dominio.it'); | @mailtos = ('Maintainer', 'Uploaders', '@knio.it', 'admin@dominio.it'); | ||
</pre> | </pre> | ||
Permette di indicare a chi | Permette di indicare a chi verrà inviata una email di conferma dell'inserimento del pacchetto; è possibile specificare i seguenti parametri: | ||
; Indirizzo Email : l'email | ; Indirizzo Email : l'email verrà inviata a quel determinato indirizzo email | ||
; Indirizzo email incompleto : l'email | ; Indirizzo email incompleto : l'email verrà inviata all'utente proprietario del file usando l'host specificato dopo il simbolo ''@''. Nel caso riportato, se l'utente proprietario del file è ''maxer'', l'email verrà inviata a ''maxer@knio.it''. | ||
; Stringa senza @ : | ; Stringa senza @ : Verrà usato il valore del campo espresso (nell'esempio vengono utilizzati ''Maintainer'' e ''Uploader'') come indirizzo email. | ||
<pre> | <pre> | ||
Riga 119: | Riga 125: | ||
# $gpgpassfile = "$ENV{HOME}/.gnupg/passphrase"; | # $gpgpassfile = "$ENV{HOME}/.gnupg/passphrase"; | ||
</pre> | </pre> | ||
Indica il percorso del file contenente la password per l'utilizzo della chiave GPG citata nella spiegazione alla direttiva precedente. Trattandosi di un dato molto importante, | Indica il percorso del file contenente la password per l'utilizzo della chiave GPG citata nella spiegazione alla direttiva precedente. Trattandosi di un dato molto importante, è consigliabile usare dei permessi restrittivi, come ad esempio permettendone la lettura solo all'utente ''debarchiver'' (l'utente usato da debarchiver). | ||
==Permessi== | ===Permessi=== | ||
Debarchiver | Debarchiver è configurato per lavorare correttamente con i server FTP e web. È impostato, infatti, il permesso di lettura per tutti gli utenti. | ||
Un po' | Un po' più complessa è, invece, la situazione relativa all'utilizzo della directory <code>''incoming''</code> da parte degli utenti. La directory in questione è di proprietà dell'utente root e del gruppo ''debarchiver''. Per abilitare un utente ad utilizzare il sistema, quindi, è necessario aggiungerlo al gruppo: | ||
<pre> | <pre> | ||
# adduser nomeutente debarchiver | # adduser nomeutente debarchiver | ||
</pre> | </pre> | ||
=Utilizzo Reale= | ==Utilizzo Reale== | ||
Due esempi relativi alla configurazione di un server web (Apache) e di un server | Due esempi relativi alla configurazione di un server web (Apache) e di un server FTP anonimo (vsftpd) per l'accesso al repository. | ||
==Server Web== | ===Server Web=== | ||
La configurazione di un server web | La configurazione di un server web è molto semplice e la si può ricondurre a due situazioni particolari: | ||
* configurazione come dominio di | * configurazione come dominio di 3° livello (Es. <nowiki>http://debian.dominio.it</nowiki>) | ||
* configurazione come directory in un dominio esistente (Es. http://www.dominio.it/debian) | * configurazione come directory in un dominio esistente (Es. <nowiki>http://www.dominio.it/debian</nowiki>) | ||
===Dominio di | ====Dominio di 3° livello==== | ||
La configurazione di un dominio di | La configurazione di un dominio di 3° livello dedicato al repository è una scelta molto comoda, secondo me. | ||
È sufficiente, infatti, creare un semplice VirtualHost (Dettagli [http://httpd.apache.org/docs/1.3/vhosts/examples.html Apache1.3] [http://httpd.apache.org/docs/2.0/vhosts/ Apache2.0]) in cui viene indicata come ''DocumentRoot'' la directory <code>'''/var/lib/debarchiver'''</code>. | |||
Esempio: | Esempio: | ||
Riga 158: | Riga 164: | ||
ed abilitarlo (rimando alla documentazione ufficiale del proprio server web). | ed abilitarlo (rimando alla documentazione ufficiale del proprio server web). | ||
===Directory in un Dominio=== | ====Directory in un Dominio==== | ||
Questa configurazione | Questa configurazione è senza dubbio la più semplice. Si fa uso della direttiva '''Alias''' (Documentazione Ufficiale [http://httpd.apache.org/docs/1.3/mod/mod_alias.html Apache1.3] - [http://httpd.apache.org/docs/2.0/mod/mod_alias.html Apache2.0]) nel modo seguente: | ||
Supponendo di voler rendere accessibile il repository in http://www.dominio.it/debian | Supponendo di voler rendere accessibile il repository in <nowiki>http://www.dominio.it/debian</nowiki> è sufficiente aggiungere, nella configurazione del VirtualHost in questione | ||
<pre> | <pre> | ||
Alias /debian /var/lib/debarchiver | Alias /debian /var/lib/debarchiver | ||
</pre> | </pre> | ||
{{Box|Nota:|per rendere ''sfogliabile'' il repository | {{Box|Nota:|per rendere ''sfogliabile'' il repository è consigliabile aggiungere, dopo la dichiarazione precedente, un pezzo di codice simile al seguente: | ||
<pre> | <pre> | ||
<Directory /debian> | <Directory /debian> | ||
Riga 173: | Riga 179: | ||
</pre> [http://httpd.apache.org/docs/2.0/mod/core.html#options qui] sono disponibili maggiori dettagli a rigaurdo}} | </pre> [http://httpd.apache.org/docs/2.0/mod/core.html#options qui] sono disponibili maggiori dettagli a rigaurdo}} | ||
==Server | ===Server FTP=== | ||
Come server | Come server FTP viene preso in considerazione [http://www.proftpd.org proftpd], visto che utilizza una configurazione molto simile a quella di Apache. | ||
===Dominio di | ====Dominio di 3° livello==== | ||
Un esempio di configurazione (da inserire all'interno di '''/etc/proftpd.conf''')per l'accesso al repository tramite il protocollo ftp: | Un esempio di configurazione (da inserire all'interno di <code>'''/etc/proftpd.conf'''</code>) per l'accesso al repository tramite il protocollo ftp: | ||
<pre> | <pre> | ||
<VirtualHost repos.dominio.it> | <VirtualHost repos.dominio.it> | ||
Riga 200: | Riga 206: | ||
</pre> | </pre> | ||
==Upload dei pacchetti== | ==Gestione del Repository== | ||
===Upload dei pacchetti=== | |||
È utile ricordare che esistono dei tool per eseguire correttamente l'upload dei pacchetti. | |||
È necessario, infatti, seguire una procedura particolare: il sistema utilizza i file con estensione ''changes'' come file di lock. Quando si caricano dei pacchetti, il file <code>.changes</code> deve essere l'ultimo ad essere caricato. L'analisi dei pacchetti, infatti, verrà eseguita solo quando questo file sarà presente. | |||
I tool disponibili sono: | I tool disponibili sono: | ||
Riga 209: | Riga 216: | ||
* dput | * dput | ||
=Conclusione= | ===Rimozione di uno o più pacchetti=== | ||
Debarchiver offre un comodo e funzionale strumento per la gestione automatizzata di un repository Debian di tutto rispetto. Inoltre implementa correttamente la struttura di un repository Debian | Debarchiver non supporta la rimozione automatizzata di uno o più pacchetti, operazione che dovrà essere compiuta, quindi, a mano. | ||
Supponendo di avere un pacchetto di nome ''kpakketto'' dovremo seguire questa procedura: | |||
* eliminazione manuale di tutte le occorrenze di ''kpakketto'': <pre> # rm -f `find /var/lib/debarchiver/dists/ -iname "kpakketto*"`</pre> | |||
* ricostruzione del repository: <pre>$ su debarchiver -c "debarchiver -so --autoscanall --dl 6" </pre> | |||
==Conclusione== | |||
Debarchiver offre un comodo e funzionale strumento per la gestione automatizzata di un repository Debian di tutto rispetto. Inoltre implementa correttamente la struttura di un repository Debian; una scelta obbligata, insomma, quando si devono gestire un numero di pacchetti maggiore di 3-4 senza dover preoccuparsi delle vecchie versioni (che vengono automaticamente rimosse). Inoltre la flessibilità e la possibilità di avere più suddivisioni (oltre alle classiche ''stable'', ''testing'' e ''unstable'') lo rende perfetto per repository particolari (per i backport, ad esempio). | |||
{{Autori | |||
|Autore = [[Utente:MaXeR|MaXeR]] | |||
}} | |||
[[Categoria:Creare repository]] |
contributi