Gestione di un repository con debarchiver: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
m
nessun oggetto della modifica
mNessun oggetto della modifica
Riga 1: Riga 1:
=Introduzione=
__NOTOC__
[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=
==Sito personale==
L'installazione � semplice, in quanto il programma � incluso in debian:
'''[http://www.paulox.net www.paulox.net]'''
<pre>
# apt-get install debarchiver
</pre>


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=
Tutta la configurazione di debarchiver racchiusa in un unico file: '''/etc/debarchiver.conf''', 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.}}
==Progetti==


<pre>
* '''[http://www.paulox.net/software_libero/per_tutti Software Libero per tutti]'''<br />''Il progetto �'''Software libero per tutti'''� nasce dal '''bisogno''' di disporre di '''documenti''' mirati a spiegare in modo '''chiaro e conciso''' cosa sia il '''[http://it.wikipedia.org/wiki/Software_Libero Software Libero]''' a '''persone''' che sanno '''poco o nulla''' di '''[http://it.wikipedia.org/wiki/Informatica informatica]'''''.
$destdir = "/var/lib/debarchiver/dists";
$inputdir = "/var/lib/debarchiver/incoming";
</pre>
Dove verr� creato il repository (''destdir'') e dove vengono inseriti i pacchetti da aggiungere al repository (''inputdir'')


<pre>
* '''[http://www.openscout.org/wiki/index.php?title=Utente:Paulox OpenScout]'''<br />''[http://www.openscout.org/wiki/index.php?title=Utente:Paulox OpenScout] � un progetto che propone di approfondire la tematica del [[Software Libero]] applicate allo Scoutismo.''
# $copycmd = "cp -af";
# $movecmd = "mv";
# $rmcmd = "rm -f";
# $vrfycmd = "dscverify";
</pre>
La lista dei comandi utilizzati nella gestione del repository... quelli di default, normalmente, sono corretti per la maggior parte delle situazioni.


<pre>
# $cinstall = "installed";
</pre>
Dove verranno messi i file ''.changes''.


<pre>
# $distinputcriteria = "^kernel.*\\.deb\$";
# $distinputdirs = "/path";
</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


<pre>
==Collaborazioni==
# $verifysignatures = 0;
'''[http://it.wikipedia.org/wiki/Utente:Paulox WikiPedia]''', ''l'enciclopedia libera''.
</pre>
Attiva (1) o disattiva (0) la verifica della firma dei pacchetti inseriti nella ''inputdir''.


<pre>
# $verifysignaturesdistinput = 0;
</pre>
come sopra, ma riguarda la directory ''distinputdirs''


<pre>
# $bzip = 0;
</pre>
Attiva la generazione di file compressi con bz2


<pre>
==Contributi==
%distinputdirs =
        (
        stable => 'stable',
        testing => 'testing',
        unstable => 'unstable'
        );
</pre>
Permette di indicare i nomi delle directory contenute nella directory ''incoming'' che provvederanno a raccogliere i pacchetti di una deretminata release. In questo caso, nella release ''stable'' verranno inseriti i pacchetti presenti nella directory ''/var/lib/debarchiver/incoming/stable/''.


<pre>
''Un elenco dei miei contributi alle guide di debianizzati.org.''
@distributions = ('stable', 'testing', 'unstable');
</pre>
Questa lista indica le release presenti nel repository (in questo caso le 3 release ''stable'', ''testing'' e ''unstable'').


{| cellpadding="5" cellspacing="0"  background="#f7f8ff" align="left" border="0px grey"


<pre>
| width=33% valign=top style="border:1px solid grey;" align=left|
%distmapping =
===Articoli creati da me===
        (
        stable => 'sarge',
        testing => 'etch',
        unstable => 'sid'
        );
</pre>
Schema per la creazione di link tra i nomi delle release reali e i nomi dello stato delle release.


<pre>
| width=33% valign=top style="border:1px solid grey;" align=left|
# @architectures = ('i386');
</pre>
Permette di indicare la lista di archietture (racchiuse tra apici e separate da una virgola) presenti nel repository.


<pre>
===Articoli a cui ho contribuito===
@sections = ('main', 'contrib', 'non-free');
</pre>
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>
# [[Codice Libero]]
@mailtos = ('Maintainer', 'Uploaders', '@knio.it', 'admin@dominio.it');
# [[Installazione Qemu con supporto accelerazione Kqemu]]
</pre>
Permette di indicare a chi verr� inviata una email di conferma dell'inserimento del pacchetto... � possibile specificare i seguenti parametri:
; Indirizzo Email : l'email verr� inviata a quel determinato indirizzo 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 @ : Verr� usato il valore del campo espresso (nell'esempio vengono utilizzati ''Maintainer'' e ''Uploader'') come indirizzo email.


<pre>
| width=33% valign=top style="border:1px solid grey;" align=left|
%release = (  'origin' => "",
                'label' => "",
                'description' => "");
</pre>
Informazioni aggiuntive da inserire nel file Release.


<pre>
===Articoli che vorrei scrivere===
# $cachedir = '/var/cache/debarchiver';
</pre>
Nel caso venga usato ''apt-ftparchive'', indica la directory di cache da usare.


<pre>
# $gpgkey = "";
</pre>
Imposta la chiave GPG con cui firmare i pacchetti che vengono inseriti nel database.


<pre>
|}
# $gpgpassfile = "$ENV{HOME}/.gnupg/passphrase";
</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, � consigliabile usare dei permessi restrittivi, come ad esempio permettendone la lettura solo all'utente ''debarchiver'' (l'utente usato da debarchiver).
 
 
==Permessi==
Debarchiver � configurato per lavorare correttamente con i server ftp e web. � impostato, infatti, il permesso di lettura per tutti gli utenti.
 
Un po' pi� complessa �, invece, la situazione relativa all'utilizzo della directory ''incoming'' 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>
# adduser nomeutente debarchiver
</pre>
 
=Utilizzo Reale=
Due esempi relativi alla configurazione di un server web (Apache) e di un server ftp anonimo (vsftpd) per l'accesso al repository.
 
==Server Web==
La configurazione di un server web � molto semplice e la si pu� ricondurre a due situazioni particolari:
* configurazione come dominio di 3� livello (Es. <nowiki>http://debian.dominio.it</nowiki>)
* configurazione come directory in un dominio esistente (Es. <nowiki>http://www.dominio.it/debian</nowiki>)
 
===Dominio di 3� livello===
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 '''/var/lib/debarchiver'''.
 
Esempio:
<pre>
NameVirtualHost *:80
 
<VirtualHost *:80>
    ServerName repos.dominio.it
    DocumentRoot /var/lib/debarchiver
    <Directory />
        Options Indexes FollowSymLinks
    </Directory>
</VirtualHost>
</pre>
 
ed abilitarlo (rimando alla documentazione ufficiale del proprio server web).
 
===Directory in un Dominio===
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 <nowiki>http://www.dominio.it/debian</nowiki> � sufficiente aggiungere, nella configurazione del VirtualHost in questione
<pre>
Alias /debian /var/lib/debarchiver
</pre>
 
{{Box|Nota:|per rendere ''sfogliabile'' il repository � consigliabile aggiungere, dopo la dichiarazione precedente, un pezzo di codice simile al seguente:
<pre>
<Directory /debian>
    Options Indexes FollowSymLinks
</Directory>
</pre> [http://httpd.apache.org/docs/2.0/mod/core.html#options qui] sono disponibili maggiori dettagli a rigaurdo}}
 
==Server ftp==
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 3� livello===
Un esempio di configurazione (da inserire all'interno di '''/etc/proftpd.conf''') per l'accesso al repository tramite il protocollo ftp:
<pre>
<VirtualHost repos.dominio.it>
  ServerName "Repository di dominio.it"
  MaxClients 10
  MaxLoginAttempts 1
 
  DeferWelcome on
 
 
  <Limit LOGIN>
    DenyAll
  </Limit>
 
  <Directory />
    <Limit WRITE DIRS>
      DenyAll
    </Limit>
  </Directory>
</Anonymous>
</VirtualHost>
</pre>
 
==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 .changes deve essere l'ultimo ad essere caricato. L'analisi dei pacchetti, infatti, verr� eseguita solo quando questo file sar� presente.
 
I tool disponibili sono:
* [[Dupload per l'upload dei pacchetti Debian | Dupload ]]
* dput
 
=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).
1 487

contributi

Menu di navigazione