Dupload per l'upload dei pacchetti Debian: differenze tra le versioni

m
aggiunta Jessie (stessa versione pacchetto)
m (aggiunto lo stub)
m (aggiunta Jessie (stessa versione pacchetto))
 
(14 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
{{stub}}
{{Versioni compatibili|Squeeze|Wheezy|Jessie}}
 
== Introduzione ==
=Introduzione=
Quando si usano repository Debian che gestiscono in modo automatizzato i pacchetti, viene richiesto di seguire una ben determinata procedura per l'upload.
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).
Questo è dovuto al fatto che è necessaria la presenza di un ''semaforo'' che indichi quando l'upload è avvenuto correttamente ed è stato completato. Sebbene la cosa possa essere fatta tranquillamente a mano, esiste un tool molto utile: '''Dupload''' (Debian UPLOAD).


=Funzionamento=
== 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''.
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 <code>.changes</code>, che funge da ''semaforo''.


=Installazione=
== Installazione ==
Il pacchetto, ovviamente, presente in Debian:
Il pacchetto, ovviamente, è presente in Debian:
<pre>
<pre>
# apt-get install dupload
# apt-get install dupload
</pre>
</pre>


=Configurazione=
== Configurazione ==
La configurazione di dupload � getibile tramite il file '''/etc/dupload.conf'''. Il file in questione pu� essere suddiviso in 2 sezioni:
La configurazione di dupload è gestibile tramite il file <code>/etc/dupload.conf</code>. Il file in questione può essere suddiviso in 2 sezioni:


==Impostazioni globali==
=== Impostazioni globali ===
In questa sezione sono definiti dei comportamenti globali, che possono essere difiniti anche per i singoli host (nella loro sezione, ovviamente).
In questa sezione sono definiti dei comportamenti globali, che possono essere definiti anche per i singoli host (nella loro sezione, ovviamente).


===hooks===
==== hooks ====
<pre>
<pre>
# -----------------
# -----------------
Riga 47: Riga 46:
# Note: hooks can also be defined in a per-host basis
# Note: hooks can also be defined in a per-host basis
</pre>
</pre>
La sintassi la seguente:
La sintassi è la seguente:
<pre>
<pre>
$quando{'a_cosa'} = 'comando';
$quando{'a_cosa'} = 'comando';
</pre>
</pre>


'''quando''' pu� assumere due valori:
<code>'''quando'''</code> può assumere due valori:
* preupload: il comando viene eseguito prima di effettuare l'upload
* <code>'''preupload'''</code>: il comando viene eseguito prima di effettuare l'upload;
* postupload: il comando viene eseguito dopo aver effettuato l'upload
* <code>'''postupload'''</code>: 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:
<code>'''a_cosa'''</code> 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.
* <code>'''sourcepackage'''</code>: il pacchetto di sorgenti (quindi i file <code>''.diff.gz''</code> e <code>''orig.tar.gz''</code>). Parametri disponibili: nome del file e versione;
:; file : ogni singolo file (abbinabile solo a ''$postupload''). Parametro disponibile: nome del file.
* <code>'''file'''</code>: ogni singolo file (è abbinabile solo a <code>''$postupload''</code>). Parametro disponibile: nome del file;
:; changes : il file ''.changes''. Parametro disponibile: nome del file.
* <code>'''changes'''</code>: il file <code>''.changes''</code>. Parametro disponibile: nome del file;
:; deb : i file ''.deb'', i pacchetti binari. Parametro disponibile: nome del file.
* <code>'''deb'''</code>: i file <code>''.deb''</code>, i pacchetti binari. Parametro disponibile: nome del file;
:; package : ochi singolo pacchetto ''.deb'' . Parametri disponibili: nome del file e versione.
* <code>'''package'''</code>: ogni singolo pacchetto <code>''.deb''</code>. 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).
<code>'''comando'''</code> permette di indicare il comando da eseguire. In base a quanto specificato in '''a_cosa''' è possibile avere a disposizione uno o due parametri (<code>'''%1'''</code> per il primo e <code>'''%2'''</code> per il secondo, se disponibile).


===Default Host===
==== Default Host ====
Permette di indicare l'host da utilizzare come predefinito.
Permette di indicare l'host da utilizzare come predefinito.
<pre>
<pre>
Riga 72: Riga 71:
indica, ad esempio, ''anonymous-ftp-master''.
indica, ad esempio, ''anonymous-ftp-master''.


==Definizioni degli host==
=== Definizioni degli host ===
La definizione dell'host semplice ed immediata. Analizziamo un esempio:
La definizione dell'host è semplice ed immediata. Analizziamo un esempio:
<pre>
<pre>
$cfg{'mentors'} = {
$cfg{'mentors'} = {
Riga 93: Riga 92:
</pre>
</pre>


la dichiarazione del nome dell'host avviene tramite l'impostazione del nome dell'array <code>'''$cfg{'nome'}'''</code>. Il contenuto di questo array rispetta le seguenti possibili dichiarazioni:


; <code>fqdn</code>: indica il [[FQDN]], ossia il Full Qualify Domain Name. L'url del server a cui connettersi.
; <code>method</code>: permette di specificare il protocollo da utilizzare per effettuare l'upload. Sono disponibili i seguenti:
:*<code>ftp </code>(valore di default)
:*<code>scp</code>
:*<code>rsync</code>
; <code>login</code>: permette di impostare l'username con il quale accedere. Il valore di default è ''anonymous'', usato molto spesso nelle directory di incoming pubbliche.
; <code>incoming</code>: Imposta la directory del server in cui devono essere copiati i file.
; <code>mailto</code>: dove inviare l'annuncio dell'invio di un pacchetto per ''stable''.
; <code>mailtx</code>: come sopra, ma riferito a ''unstable'' ed ''experimental''.
; <code>passive</code>: Attiva la modalità passiva nel trasferimento tramite il protocollo ftp.
; <code>visibleuser</code>: permette di impostare il nome dell'utente che comparirà come mittente nelle email generate dall'upload [default: l'username ricavato tramite la funzione ''getlogin()''].
; <code>visiblename</code>: 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].
; <code>preupload</code>: 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 <code>''.changes''</code>, seguendo la sintassi:
<pre>
$ dupload [opzioni] <file .changes> [<altri file .changes>]
</pre>
Le opzioni più usate sono le seguenti:
; <code>--no</code>: esegue solo un test, mostrando quello che farebbe in modalità normale;
; <code>--nomail</code>: non invia l'annuncio per l'upload che verrà eseguito;
; <code>-t --to nome_del_server</code>: utilizza <code>''nome_del_server''</code> come server su cui caricare i file (i server sono definiti nel file di configurazione). È possibile usare l'impostazione <code>'''default_host'''</code> nel file di configurazione per indicare quale server utilizzare se <code>''--to''</code> 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>


=Alcuni esempi=
=== 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=
== 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:
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)
* gli utenti normali non hanno l'autorizzazione ad eseguire l'upload (il pacchetto viene scartato)
* si rallenta il processo di analisi dei nuovi pacchetti
* 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].
* 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].
 
{{Autori
|Autore=[[Utente:MaXeR|MaXeR]]
}}
 
[[Categoria:Creare repository]]
3 581

contributi