Creare un pacchetto deb contenente script personali: differenze tra le versioni

Vai alla navigazione Vai alla ricerca
(nuova pagina)
 
mNessun oggetto della modifica
Riga 2: Riga 2:
== Introduzione ==
== Introduzione ==
Portare in giro i propri [[script]] per poterli avere a disposizione su diverse macchine è un'operazione facile; basta metterli su una pendrive e copiarli all'occorrenza sul computer su cui verranno eseguiti.<br/>
Portare in giro i propri [[script]] per poterli avere a disposizione su diverse macchine è un'operazione facile; basta metterli su una pendrive e copiarli all'occorrenza sul computer su cui verranno eseguiti.<br/>
Il problema sorge quando gli script diventano tanti, le macchine tante e la memoria poca, per cui capire se uno script è aggiornato su un PC o se è installato diventa improbo.
Il problema sorge quando gli script diventano tanti, le macchine tante e la memoria poca, per cui capire se uno script è aggiornato su un PC (o se è installato) diventa improbo.


In questa guida verrà spiegato sommariamente, e senza la pretesa dell'esaustività vista l'enorme mole del gigante "Debian Packaging", come crearsi un pacchetto .deb che non fa nient'altro che contenere un certo numero di script Bash. Questi script verranno installati nelal directory <code>/usr/bin/</code>
In questa guida verrà spiegato sommariamente, e senza la pretesa dell'esaustività vista l'enorme mole del gigante "Debian Packaging", come crearsi un pacchetto .deb che non fa nient'altro che contenere un certo numero di script. Questi script verranno installati nella directory <code>/usr/bin/</code> .


== Operazioni preliminari ==
== Operazioni preliminari ==
Innanzitutto creiamo una directory di lavoro nella nostra home, in questo caso la chiameremo "pacchetti":
Innanzitutto creiamo una directory di lavoro nella nostra home. In questo caso la chiameremo "pacchetti":
<pre>
<pre>
$ cd ~
$ cd ~
Riga 18: Riga 18:
e spostiamoci al suo interno:
e spostiamoci al suo interno:
<pre>$ cd imieiscript-1.0</pre>
<pre>$ cd imieiscript-1.0</pre>
È giunto il momento di occuparci del pacchetto, creiamone lo "scheletro" con debhelper:
È giunto il momento di occuparci del pacchetto, creiamone lo "scheletro" con <code>debhelper</code>:
<pre>$ dh_make -n</pre>
<pre>$ dh_make -n</pre>
e rispondiamo "s" alla prima domanda (stiamo creando un pacchetto singolo) e premiamo "invio" alla seconda domanda per accettare i suggerimenti su e-mail, nome del maintainer, licenza etc.<br/>
e rispondiamo "s" alla prima domanda (stiamo creando un pacchetto singolo) e premiamo "invio" alla seconda domanda per accettare i suggerimenti su e-mail, nome del maintainer, licenza etc.<br/>
A questo punto si può notare che è stata creata una directory "debian" che ha al suo interno diversi file e template di file.<br/>
A questo punto si può notare che è stata creata una directory "debian" che ha al suo interno diversi file e template di file.<br/>
A noi non interessano tutti ma solo i file: <code>changelog</code>, <code>compat</code>, <code>control</code>, <code>copyright</code> e <code>rules</code>, oltre alla directory <code>source</code>, per cui tutti gli altri possono essere tranquillamente eliminati.<br/>
A noi non interessano tutti ma solo i file: <code>changelog</code>, <code>compat</code>, <code>control</code>, <code>copyright</code> e <code>rules</code>, oltre alla directory <code>source</code>, per cui tutti gli altri possono essere tranquillamente eliminati.<br/>
Ci sarà bisogno anche di un file <code>install</code> inizialmente vuoto. Dovremo cerarlo in quanto ci servirà dopo.<br/>
Ci sarà bisogno anche di un file <code>install</code> inizialmente vuoto. Dovremo crearlo in quanto ci servirà dopo.<br/>
Ora serve una directory che conterrà gli script che vogliamo installare per cui, accanto alla directory "debian", creiamo un'altra directory che possiamo chiamare, ad esempio, "script" e in cui verranno inseriti tutti gli script che vogliamo.<br/>
Ora serve una directory che conterrà gli script che vogliamo installare per cui, accanto alla directory "debian", creiamo un'altra directory che possiamo chiamare, ad esempio, "script" e in cui verranno inseriti tutti gli script che vogliamo.<br/>


Riga 45: Riga 45:


== Gli script ==
== Gli script ==
Nell'esempio precedente si è scelto come nome per gli script "s3v-script1" "s3v-script2" e "s3v-script3" ma, ovviamente, bisognerebbe scegliere un nome più significativo. La cosa importante è che il nome degli script sia assolutamente diverso da tutto ciò che si trova (o potrebbe trovarsi) in <code>/usr/bin/</code> e che essi abbiamo i corretti permessi di esecuzione.<br/>
Nell'esempio precedente si è scelto come nome per gli script "s3v-script1", "s3v-script2" e "s3v-script3" ma, ovviamente, bisognerebbe scegliere un nome più significativo. La cosa importante è che il nome degli script sia assolutamente diverso da tutto ciò che si trova (o potrebbe trovarsi) in <code>/usr/bin/</code> e che essi abbiamo i corretti permessi di esecuzione.<br/>
Ad esempio potrebbe essere conveniente dare i permessi di esecuzione a tutti ma di scrittura solo a [[root]]:
Ad esempio potrebbe essere conveniente dare i permessi di esecuzione a tutti ma di scrittura solo a [[root]]:
<pre>$ chmod 755 s3v-script1 s3v-script2 s3v-script3</pre>
<pre>$ chmod 755 s3v-script1 s3v-script2 s3v-script3</pre>
Riga 59: Riga 59:
  -- s3v <s3v@localhost>  Fri, 28 Jun 2013 21:46:24 +0200
  -- s3v <s3v@localhost>  Fri, 28 Jun 2013 21:46:24 +0200
</pre>
</pre>
e può essere lasciato inalterato. Se si vuole, si può cambiarlo, ad esempio, così:
e può essere lasciato inalterato. Se si vuole si può cambiarlo, ad esempio, così:
<pre>
<pre>
imieiscript (1.0) unstable; urgency=low
imieiscript (1.0) unstable; urgency=low
Riga 84: Riga 84:
Description: Questo pacchetto contiene gli script di s3v
Description: Questo pacchetto contiene gli script di s3v
</pre>
</pre>
# La sezione scelta è "misc" e l'architettura "all" (poiché il pacchetto contiene script che girano sotto Bash e non dipendono dall'architettura); inoltre è stata inserita una breve descrizione e tolte le dipendenze.
La sezione scelta è "misc" e l'architettura "all" (poiché il pacchetto contiene script che girano sotto Bash e non dipendono dall'architettura); inoltre è stata inserita una breve descrizione e tolte le dipendenze.


== Il file install ==
== Il file install ==
Riga 91: Riga 91:
script/* usr/bin/
script/* usr/bin/
</pre>
</pre>
in questo modo tutti gli script contenuti nella directory script che abbiamo crweato saranno copiati in /usr/bin/
in questo modo tutti gli script contenuti nella directory script che abbiamo creato saranno copiati in <code>/usr/bin/</code> .


== Creazione e installazione del pacchetto ==
== Creazione e installazione del pacchetto ==
Riga 101: Riga 101:
;imieiscript_1.0_i386.changes:il file che contiene i cambiamenti e l'hash per verificare l'autenticità dei file (i386 può cambiare, qui è dovuto al fatto che ho compilato su architettura i386)
;imieiscript_1.0_i386.changes:il file che contiene i cambiamenti e l'hash per verificare l'autenticità dei file (i386 può cambiare, qui è dovuto al fatto che ho compilato su architettura i386)
;imieiscript_1.0.tar.gz:il file compresso che contiene tutti i file del pacchetto
;imieiscript_1.0.tar.gz:il file compresso che contiene tutti i file del pacchetto
;imeiscript_1.0.dsc: contiene la firma del file .tar.gz e le info del pacchetto
;imeiscript_1.0.dsc: contiene la firma del file .tar.gz e le informazioni del pacchetto
;imieiscript_1.0_all.deb:il file .deb vero e proprio
;imieiscript_1.0_all.deb:il file .deb vero e proprio


Riga 130: Riga 130:
Ora, come prima, basta un:
Ora, come prima, basta un:
<pre>$ dpkg-buildpackage -us -uc</pre>
<pre>$ dpkg-buildpackage -us -uc</pre>
per ricreare altri quattro file che però conterranno la versione aggiornata.
per ricreare altri quattro file che però, adesso, conterranno la versione aggiornata.


== Controllare il pacchetto ==
== Controllare il pacchetto ==