Categoria:Old: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
Nessun cambiamento nella dimensione ,  1 apr 2006
m
typo
mNessun oggetto della modifica
 
m (typo)
Riga 1: Riga 1:
In questa categoria considerate ormai '''Obsolete''' (perchè si riferiscono al versioni di software superate, o presentano workaruond a problemi ormai risolti, etc ...)
=Introduzione=
Quando si usano repository Debian che gestiscono in modo automatizzato i pacchetti, viene richiesto di seguire una ben determinata procedura per l'upload.
 
Questo � dovuto al fatto che � necessaria la presenza di un ''semaforo'' che indichi quando l'upload � avvenuto correttamente ed � stato completato. Sebbene la cosa pu� essere fatta tranquillamente a mano, esiste un tool molto utile: dupload (Debian UPLOAD).
 
=Funzionamento=
Il funzionamento � semplice: il programma si occupa di eseguire l'upload, tramite i protocolli supportati, dei file, con l'accortezza di inviare per ultimo il file ''.changes'', che funge da ''semaforo''.
 
=Installazione=
Il pacchetto, ovviamente, � presente in Debian:
<pre>
# apt-get install dupload
</pre>
 
=Configurazione=
La configurazione di dupload � getibile tramite il file '''/etc/dupload.conf'''. Il file in questione pu� essere suddiviso in 2 sezioni:
 
==Impostazioni globali==
In questa sezione sono definiti dei comportamenti globali, che possono essere definiti anche per i singoli host (nella loro sezione, ovviamente).
 
===hooks===
<pre>
# -----------------
# Pre-defined hooks
# -----------------
# Check changes file for valid signatures
# Using GPG:
$preupload{'changes'} = '/usr/share/dupload/gpg-check %1';
# or using PGP:
# $preupload{'changes'} = '/usr/share/dupload/pgp-check %1';
 
# Lintian check of packages
# $preupload{'deb'} = 'lintian -v -i %1';
 
# Other hooks:
# $preupload{'sourcepackage'}
# $preupload{'file'}
# $preupload{'package'}
# $postupload{'changes'}
# $postupload{'sourcepackage'}
# $postupload{'file'}
# $postupload{'deb'}
# $postupload{'package'}
 
# Note: hooks can also be defined in a per-host basis
</pre>
La sintassi � la seguente:
<pre>
$quando{'a_cosa'} = 'comando';
</pre>
 
'''quando''' pu� assumere due valori:
* preupload: il comando viene eseguito prima di effettuare l'upload
* postupload: il comando viene eseguito dopo aver effettuato l'upload
 
'''a_cosa''' indica il target dell'azione. L'azione, quindi, viene eseguita quando viene completato l'upload (o prima dell'upload) di:
:; sourcepackage : il pacchetto di sorgenti (quindi i file ''.diff.gz'' e ''orig.tar.gz''). Parametri disponibili: nome del file e versione.
:; file : ogni singolo file (� abbinabile solo a ''$postupload''). Parametro disponibile: nome del file.
:; changes : il file ''.changes''. Parametro disponibile: nome del file.
:; deb : i file ''.deb'', i pacchetti binari. Parametro disponibile: nome del file.
:; package : ochi singolo pacchetto ''.deb'' . Parametri disponibili: nome del file e versione.
 
'''comando''' permette di indicare il comando da eseguire. in base a quanto specificato in '''a_cosa''' � possibile avere a disposizione uno o due parametri ('''%1''' per il primo e '''%2''' per il secondo, se disponibile).
 
===Default Host===
Permette di indicare l'host da utilizzare come predefinito.
<pre>
# $default_host = "anonymous-ftp-master";
</pre>
indica, ad esempio, ''anonymous-ftp-master''.
 
==Definizioni degli host==
La definizione dell'host � semplice ed immediata. Analizziamo un esempio:
<pre>
$cfg{'mentors'} = {
        fqdn    =>'mentors.debian.net',
        method  =>'scpb',
        login  =>'incoming',
        incoming=>'~',
# Change these to the user and domain part of your email address
# and uncomment them
#      visibleuser=>'hugo',
#      visiblename=>'mydomain.tld',
        mailtx  =>'incoming@mentors.debian.net',
        preupload=> {
                deb=>'chmod 0644 %1',
                changes=>'chmod 0644 %1',
                file=>'chmod 0644 %1',
        },
};
</pre>
 
la dichiarazione del nome dell'host avviene tramite l'impostazione del nome dell'array '''$cfg{'nome'}'''. Il contenuto di questo array rispetta le seguenti possibili dichiarazioni:
 
; fqdn : indica il [[FQDN]], ossia il Full Qualify Domain Name. L'url del server a cui connettersi.
; method : permette di specificare il protocollo da utilizzare per effettuare l'upload. Sono disponibili i seguenti:
:*ftp (valore di default)
:*scp
:*rsync
; login : permette di impostare l'username con il quale accedere. Il valore di default � ''anonymous'', usato molto spesso nelle directory di incoming pubbliche.
; incoming : Imposta la directory del server in cui devono essere copiati i file.
; mailto : dove inviare l'annuncio dell'invio di un pacchetto per ''stable''.
; mailtx : come sopra, ma riferito a ''unstable'' ed ''experimental''.
; passive : Attiva la modalit� passiva nel trasferimento tramite il protocollo ftp.
; visibleuser : permette di impostare il nome dell'utente che comparir� come mittente nelle email generate dall'upload [default: l'username ricavato tramite la funzione ''getlogin()''].
; visiblename : permette di specificare il dominio che seguir� la ''@'' nell'indirizzo email usato come mittente delle email [Default: il valore ricavato dall'MTA installato sul proprio computer].
; preupload : permette, tramite la definizione di un array (come fanno nell'esempio) di impostare delle azioni specifiche come precedentemente spiegato nella sezione ''hooks''.
 
=Utilizzo=
L'utilizzo � semplicissimo: il programma accetta, come input, i file ''.changes'', seguendo la sintassi:
<pre>
$ dupload [opzioni] <file .changes> [<altri file .changes>]
</pre>
 
Le opzioni pi� usate sono le seguenti:
; --no : esegue solo un test, mostrando quello che farebbe in modalit� normale.
; --nomail : non invia l'annuncio per l'upload che verr� eseguito.
; -t --to nome_del_server : utilizza ''nome_del_server'' come server su cui caricare i file (i server sono definiti nel file di configurazione). � possibile usare l'impostazione '''default_host''' nel file di configurazione per indicare quale server utilizzare se ''--to'' non � indicato.
 
=Dupload e Debarchiver=
Nella guida [[Gestione di un repository con debarchiver]] si accennava al fatto che � possibile usare dupload per caricare i pacchetti nella directory ''incoming'' del proprio repository.
 
Ecco un esempio funzionante di come creare 3 destinazioni per caricare pacchetti nelle tre sezioni del proprio repository, mediante il protocollo ssh.
==Stable==
<pre>
$cfg{'debarchiver-stable'} = {
        fqdn => "esempio.it",
        incoming => "/var/lib/debarchiver/incoming/stable/",
        login => "utente",
        method => "scp",
};
</pre>
 
==Testing==
<pre>
$cfg{'debarchiver-testing'} = {
        fqdn => "esempio.t",
        incoming => "/var/lib/debarchiver/incoming/testing/",
        login => "utente",
        method => "scp",
};
</pre>
==Unstable==
<pre>
$cfg{'debarchiver-unstable'} = {
        fqdn => "esempio.it",
        incoming => "/var/lib/debarchiver/incoming/unstable/",
        login => "utente",
        method => "scp",
};
</pre>
 
=Raccomandazioni=
Nella configurazione di default di dupload sono presenti tutti gli indirizzi dei server Debian. A meno di sapere cosa fare, non usarli, per i seguenti motivi:
* gli utenti normali non hanno l'autorizzazione ad eseguire l'upload (il pacchetto viene scartato)
* si rallenta il processo di analisi dei nuovi pacchetti
* se proprio si vuole avere un proprio pacchetto in Debian, � d'obbligo visitare [http://www.debian.org/devel/join/newmaint L'angolo del nuovo Manutentore Debian].
 
[[Categoria:Repository]]
1 760

contributi

Menu di navigazione