ESP Package Manager permette di costruire in modo semplice e veloce un pacchetto Debian a partire da file di qualsiasi tipo (file di testo, immagini, ecc.).
EPM legge da una lista (un file con estensione
*.list) i file da inserire nel pacchetto
*.deb; per ogni file da inserire occorre scrivere una riga, contenente la directory di origine e quella di installazione. Vedremo come creare automaticamente la lista tramite
mkepmlist, uno strumento che permette di generare il file
*.list basandosi sul contenuto di una determinata directory.
Installiamo il pacchetto
epm, che contiene anche l’ utility
mkepmlist:
su (o
sudo -s, se state utilizzando Ubuntu)
apt-get install epm
exit (per tornare utente normale; non chiudere il terminale)
Ora suggerisco di creare una directory di lavoro (nell’ esempio,
foo), dove copieremo i file da aggiungere al pacchetto, e dove genereremo il pacchetto
*.deb. Possiamo crearla anche con un file manager, se non conosciamo bene i comandi del terminale.
Per prima cosa, sotto
foo, creiamo la sottodirectory
root; in essa ricostruiremo la struttura della directory radice (
/), ricreando però solo le directory dove vogliamo installare i nostri file; copiamo in queste, infine, i file da impacchettare. Questo passaggio richiede attenzione, in quanto
mkepmlist deciderà il path di installazione dei vari file sulla base della struttura della directory
foo/root. Un avvertimento: cerchiamo di dare dei nomi "originali" ai nostri file, per evitare possibili conflitti con i repository ufficiali di Debian o Ubuntu.
Generiamo la lista tramite terminale, posizionandoci innanzi tutto nella directory di lavoro (
foo); se, per esempio, si trova sotto la nostra home directory:
cd $HOME/foo
mkepmlist -g root -u root --prefix / ./root/ >./nomePacchetto.list
(il comando va lanciato come utente normale, non come super utente, e dobbiamo sostituire
nomePacchetto con un nome a nostra scelta, che non può contenere trattini o spazi; questo nome deve coincidere con quello che vogliamo dare al file
*.deb).
Dobbiamo comunque fare delle modifiche al file
*.list, per indicare, ad esempio, la descrizione del pacchetto, la sua licenza ed eventuali dipendenze. Apriamolo con un editor di testo (nell’ esempio
nano, ma vanno bene anche
gedit o
kate):
nano nomePacchetto.list
e aggiungiamo, all’ inizio del file (ma lasciando una riga vuota prima della lista dei file creata da
mkepmlist), le seguenti informazioni (necessarie):
%product [nome del pacchetto, può anche non coincidere col nome del file *.deb]
%description [descrizione]
%version [numero di versione]
%copyright [inserire il copyright]
%vendor [nome di chi distribuisce il pacchetto]
%readme README
%license LICENSE
Sostituiamo le parentesi quadre con le informazioni relative al nostro pacchetto.
Possiamo inserire anche altri parametri opzionali, ad esempio le dipendenze...
%requires [lista dei pacchetti richiesti per un corretto funzionamento]
... oppure degli script da eseguire all’ installazione o alla rimozione del pacchetto; per esempio, se installiamo o rimuoviamo delle voci per il menu di sistema, dobbiamo lanciare il comando per aggiornarlo:
%postinstall <updateMenu
%postremove <updateMenu
Ovviamente, dobbiamo creare, sotto la stessa directory
foo, il file dello script (nell’ esempio è
updateMenu), che conterrà:
if test -x /usr/bin/update-menus; then update-menus; fi
Terminata la personalizzazione del file
*.list, salviamo e usciamo dall’ editor. Per avere una lista più completa dei parametri da usare, consultare il manuale, lanciando
man epm.list.
Prima di creare il pacchetto Debian, dobbiamo creare, sempre sotto
foo, i file
README e
LICENSE:
touch README
touch LICENSE
Se non abbiamo intenzione di distribuire il pacchetto, possiamo lasciarli vuoti, altrimenti è meglio modificarli. Infine, facciamo leggere a
EPM il file
*.list e facciamogli costruire il pacchetto, dopo essere diventati super utenti (per assegnare i permessi corretti ai file che saranno installati):
su (o
sudo -s per Ubuntu)
epm -n -f deb nomePacchetto
Se stiamo impacchettando file indipendenti dall’ architettura in uso (cioè file non binari, come script per la shell, file di testo, immagini, etc.) è opportuno passare il parametro
-a all, per permettere l’ installazione sul più ampio numero di architetture possibile:
epm -a all -n -f deb nomePacchetto
Il pacchetto verrà creato sotto la directory
foo/linux-[versione del kernel]-[architettura].
Andrea Romagnoli
Tags:
Linux
Ubuntu
Debian
deb
Aggiungi a:
scritto da romand
Pubblica sul tuo sito gratis