Benvenuti su "Just a Bit of.. Entropy!".
Questo blog tratta di Free Software e programmazione.
L'autore è un di membro di Guru@Work
e studente del corso di laurea specialistica in
Tecnologie Informatiche all'università di Pisa.
Necessità di creare .deb? Nulla di più semplice!

Mai capitato di voler creare dei .deb da un qualsiasi altro formato di file per renderne la gestione dell’installazione\rimozione conforme a quella dei pacchetti installati tramite apt?
Questa operazione, utile soprattutto quando si debbono distribuire i propri programmi pacchettizzati per distribuzioni Debian-based, è resa molto rapida e indolore da un software nato allo scopo: EPM.
ESP Packet Manager è un programma che, leggendo una lista *.list di file da inserire nel pacchetto (con relativo path di destinazione) crea il .deb dei nostri file. Vediamo come.
Installiamo il pacchetto necessario con:
$ sudo apt-get install epm
Adesso creiamo una directory temporanea di lavoro: all’interno di questa creiamo un ulteriore directory chiamata root/ e sotto di essa la struttura delle cartelle di sistema interessate dall’installazione del nostro programma.
Quando abbiamo pronto tale albero di installazione non facciamo altro che copiare i file da pacchettizzare dentro le directory in cui vogliamo siano scompattati all’installazione del nostro .deb . Questo passo va effettuato con cura poiché successivamente utilizzeremo un tool automatico per generare il file .list e questi baserà il suo lavoro sulla nostra struttura.
Adesso generiamo la lista usando:
$ mkepmlist -g root -u root –prefix / ./root/ >./nostroPacchettoDeb.list
Apriamo il file .list così creato e inseriamo le seguenti informazioni aggiuntive (utili nel caso volessimo redistribuire il nostro pacchetto:
%product [nome del pacchetto]
%description [descrizione programma]
%version [numero di versione]
%copyright [copyright]
%vendor [Nome del creatore]
%readme README
%license LICENSE
Altre informazioni, non fondamentali, sono ad esempio quelle relative alle operazioni da effettuare a seguito dell’installazione del pacchetto (ad esempio si potrebbe inserire uno script che generi l’icona sul desktop della nostra applicazione o che la aggiunga al menù dove preferiamo..) e vi rimando alla pagina del MAN per vederne la sintassi
Adesso dobbiamo solo creare i file README e LICENSE nella nostra directory di lavoro (non nell’albero radicato in root/ mi raccomando!!) e riempirli a nostro piacimento (…si spera con una bella gpl3
)
Adesso,
$ sudo epm -n -f deb nostroPacchettoDeb
ed abbiamo creato il nostro pacchetto .deb all’interno della nostra directory di lavoro!
N.B: se vogliamo, con il flag -a all, possiamo fare in modo che il .deb generato sia indipendente dall’architettura è stato creato in modo da poter essere distribuito su più architetture possibili.*
[EDIT 3\02\08]
Questo articolo non si pone come unica soluzione alla creazione di pacchetti .deb, come l’unico tool o similari. L’autore dell’articolo non è l’autore del tool, non ha contatti con questi e non intende convincere nessuno che questo sia il modo più veloce\semplice\ufficiale per creare pacchetti .deb, il bello dell’informatica (e di linux in particolare…) è che si possono trovare molteplici soluzioni allo stesso problema.
Chi legge questo mini how-to è libero di seguire o meno le indicazioni riportate, il software cosi pacchettizzato può effettivamente essere installato. Per quanto riguarda la licenza non è mai stato suggerito all’interno del post di modificare\sostituire la licenza del software che andiamo a pacchettizzare solo di specificarla nel file apposito nel caso tale pacchetto dovesse essere distribuito a terzi (ove la licenza stessa lo consenta). Se per uso esclusivamente personale una volta presa visione della licenza ed accettata ciò non comporta una violazione della stessa.
* Per quanto riguarda il flag ALL ho tralasciato il fatto che questo sia effettivamente restrittivo ed è utilizzabile con criterio solo quando si ha la certezza che il codice pacchettizzato è effetivamente portabile su più architetture, mi scuso per l’incompletezza nel testo.
Spero di aver chiarito i punti mancanti che mi son stati fatti notare, ringrazio per la segnalazione e mi auguro che non vengano fraintese in seguito le informazioni fornite aggiungendo significati inesistenti alle affermazioni fatte su queste pagine.
Blog realizzato da Giulio Rossetti.
Immagine presente nell'header realizzata da bunocb e disponibile sul sito crystalxp





































