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

Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
Riga 6: Riga 6:
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> .<br/>
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> .<br/>
'''È caldamente consigliato''' scegliere accuratamente il nome del pacchetto e degli script contenuti al suo interno, questo perché il pacchetto non è presente nei [[repository ufficiali]] e, quindi, potrebbe interferire con i nomi scelti da altri pacchetti.
'''È caldamente consigliato''' scegliere accuratamente il nome del pacchetto e degli script contenuti al suo interno, questo perché il pacchetto non è presente nei [[repository ufficiali]] e, quindi, potrebbe interferire con i nomi scelti da altri pacchetti.
== Pacchetti da installare ==
Per le operazioni che seguiranno sarà necessario installare alcuni pacchetti:
<pre>
# apt-get install dh-make build-essential
</pre>


== Operazioni preliminari ==
== Operazioni preliminari ==
Riga 30: Riga 36:
<pre>
<pre>
pacchetti/
pacchetti/
       |-- imieiscript-1.0/
       -- imieiscript-1.0/
                       |-- debian/
                       -- debian/
                            |-- changelog
                      |     ├-- changelog
                            |-- copyright
                      |     ├-- copyright
                            |-- compat
                      |     ├-- compat
                            |-- control
                      |     ├-- control
                            |-- install
                      |     ├-- install
                            |-- rules
                      |     └-- rules
                       |-- script/
                       |
                            |-- s3v-script1
                      └-- script/
                            |-- s3v-script2
                              ├-- script1
                            |-- s3v-script3
                              ├-- script2
                              └-- script3
</pre>
</pre>


== 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 "script1", "script2" e "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 script1 script2 script3</pre>
non preoccupatevi del proprietario (utente:gruppo) del file, questo sarà sempre cambiato in root:root .
non preoccupatevi del proprietario (utente:gruppo) del file, questo sarà sempre cambiato in root:root .


Riga 120: Riga 127:
imieiscript (1.1) unstable; urgency=low
imieiscript (1.1) unstable; urgency=low


   * Tolta la funzione miafunzione() dallo script s3v-script1
   * Tolta la funzione miafunzione() dallo script script1


  -- s3v <s3v@localhost>  Fri, 28 Jun 2013 22:19:11 +0200
  -- s3v <s3v@localhost>  Fri, 28 Jun 2013 22:19:11 +0200
Riga 143: Riga 150:
Se ci si accorge che uno script non serve oppure che va rinominato, si può ricorrere alla potenza del sistema di pacchettizzazione senza dover effettuare tutto manualmente. Per questo scopo ci servirà un ulteriore file chiamato "preinst" all'interno della directory ''debian'' che conterrà ad esempio:
Se ci si accorge che uno script non serve oppure che va rinominato, si può ricorrere alla potenza del sistema di pacchettizzazione senza dover effettuare tutto manualmente. Per questo scopo ci servirà un ulteriore file chiamato "preinst" all'interno della directory ''debian'' che conterrà ad esempio:
<pre>
<pre>
[ -x /usr/bin/s3v-script1 ] && rm /usr/bin/s3v-script1
[ -x /usr/bin/script1 ] && rm /usr/bin/script1
</pre>
</pre>
questo rimuoverà il file <code>/usr/bin/s3v-script1</code> dalla directory <code>/usr/bin/</code> al momento dell'installazione del pacchetto.<br/>
questo rimuoverà il file <code>/usr/bin/script1</code> dalla directory <code>/usr/bin/</code> al momento dell'installazione del pacchetto.<br/>
Lo stato di file e directory diventerà simile al seguente:
Lo stato di file e directory diventerà simile al seguente:
<pre>
<pre>
pacchetti/
pacchetti/
       |-- imieiscript-1.1/
       -- imieiscript-1.1/
                       |-- debian/
                       -- debian/
                            |-- changelog
                      |     ├-- changelog
                            |-- copyright
                      |     ├-- copyright
                            |-- compat
                      |     ├-- compat
                            |-- control
                      |     ├-- control
                            |-- install
                      |     ├-- install
                            |-- rules
                      |     ├-- rules
                            |-- preinst
                      |     └-- preinst
                       |-- script/
                       |
                             |-- s3v-script2
                      └-- script/
                             |-- s3v-script3
                             -- script2
                             -- script3
</pre>
</pre>
da cui si vede che è stato tolto dal pacchetto il file <code>s3v-script1</code> e aggiunto il file <code>preinst</code>.<br/>
da cui si vede che è stato tolto dal pacchetto il file <code>script1</code> e aggiunto il file <code>preinst</code>.<br/>
Analogamente, per rinominare il file <code>s3v-script1</code> la situazione sarà:
Analogamente, per rinominare il file <code>script1</code> la situazione sarà:
<pre>
<pre>
pacchetti/
pacchetti/
       |-- imieiscript-1.1/
       -- imieiscript-1.1/
                       |-- debian/
                       -- debian/
                            |-- changelog
                      |     ├-- changelog
                            |-- copyright
                      |     ├-- copyright
                            |-- compat
                      |     ├-- compat
                            |-- control
                      |     ├-- control
                            |-- install
                      |     ├-- install
                            |-- rules
                      |     ├-- rules
                            |-- preinst
                      |     └-- preinst
                       |-- script/
                       |
                             |-- s3v-script1-rinominato
                      └-- script/
                             |-- s3v-script2
                             -- script1-rinominato
                             |-- s3v-script3
                             -- script2
                             -- script3
</pre>
</pre>


Riga 202: Riga 211:
E: imieiscript: maintainer-address-malformed s3v <s3v@localhost>
E: imieiscript: maintainer-address-malformed s3v <s3v@localhost>
E: imieiscript: maintainer-address-is-on-localhost s3v <s3v@localhost>
E: imieiscript: maintainer-address-is-on-localhost s3v <s3v@localhost>
W: imieiscript: binary-without-manpage usr/bin/s3v-script1
W: imieiscript: binary-without-manpage usr/bin/script1
W: imieiscript: binary-without-manpage usr/bin/s3v-script2
W: imieiscript: binary-without-manpage usr/bin/script2
W: imieiscript: binary-without-manpage usr/bin/s3v-script3
W: imieiscript: binary-without-manpage usr/bin/script3
</pre>
</pre>
Questo output ci informerà che l'indirizzo e-mail non è corretto, il file "copyright" va modificato, gli script andrebbero accompagnati da una [[manpage]] (come impone la policy Debian) e nel file "control" manca una descrizione completa del pacchetto.<br/>
Questo output ci informerà che l'indirizzo e-mail non è corretto, il file "copyright" va modificato, gli script andrebbero accompagnati da una [[manpage]] (come impone la policy Debian) e nel file "control" manca una descrizione completa del pacchetto.<br/>