3 581
contributi
m (aggiunto lo stub) |
m (aggiunta Jessie (stessa versione pacchetto)) |
||
(14 versioni intermedie di 6 utenti non mostrate) | |||
Riga 1: | Riga 1: | ||
{{ | {{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 | 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 | 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, | Il pacchetto, ovviamente, è presente in Debian: | ||
<pre> | <pre> | ||
# apt-get install dupload | # apt-get install dupload | ||
</pre> | </pre> | ||
=Configurazione= | == Configurazione == | ||
La configurazione di dupload | 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 | 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 sintassi è la seguente: | ||
<pre> | <pre> | ||
$quando{'a_cosa'} = 'comando'; | $quando{'a_cosa'} = 'comando'; | ||
</pre> | </pre> | ||
'''quando''' | <code>'''quando'''</code> può assumere due valori: | ||
* <code>'''preupload'''</code>: il comando viene eseguito prima di effettuare 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: | ||
* <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; | |||
* <code>'''file'''</code>: ogni singolo file (è abbinabile solo a <code>''$postupload''</code>). Parametro disponibile: nome del file; | |||
* <code>'''changes'''</code>: il file <code>''.changes''</code>. Parametro disponibile: nome del file; | |||
* <code>'''deb'''</code>: i file <code>''.deb''</code>, i pacchetti binari. Parametro disponibile: nome del file; | |||
* <code>'''package'''</code>: ogni singolo pacchetto <code>''.deb''</code>. Parametri disponibili: nome del file e versione; | |||
'''comando''' permette di indicare il comando da eseguire. | <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 | 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> | |||
= | === 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 | 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, | * 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]] |
contributi