[ubuntu-it-fcm] Edizione 12 - Articolo 3

Teo teo666 a linuxmail.org
Lun 5 Maggio 2008 16:17:42 BST


Ciao a tutti, vi mando i risultati del mio lavoro, se ci sono problemi,
fatemi sapere!!
Teo.

----------------------------------------------------------

pag. 8 - 10

Articolo 3

HOW-TO

Scritto da Andrew Min

CREARE E DISTRIBUIRE FILE DEB

Quasi tutti sanno cos'è un pacchetto .deb. E' l'"installer" per Ubuntu,
Debian, MEPIS e molte altre distribuzioni Linux. A mio parere, il
miglior formato disponibile per distribuire applicazioni.
Sfortunatamente, molti programmi Linux non includono un archivio .deb,
ma viene fornito solo il codice sorgente, che spesso richiede lo
scaricamento di una serie di librerie aggiuntive sconosciute (il
cosiddetto "inferno delle dipendenze"), e il più delle volte non
comprende neppure l'opzione per disinstallare il programma. Tuttavia,
creare un pacchetto .deb da zero è più facile di quanto crediate.



CheckInstall e Debian Package Tools FE



Il metodo più semplice (e peggiore) è utilizzare un programma di
compressione .deb chiamato CheckInstall
(http://asic-linux.com.mx/%7Eizto/checkinstall). A prima vista una
passeggiata, tutto quello che c'è da fare è eseguire il comando make
(come d'abitudine) per compilare il codice sorgente, quindi eseguire
checkinstall per creare il file .deb. Purtroppo sorgono numerosi
problemi,primo fra tutti, le dipendenze non vengono installate (potete
provare AutoApt (https://help.ubuntu.com/community/AutoApt) o AutoDeb
(https://wiki.ubuntu.com/AutoDeb), entrambi sperimentali), ne è
possibile dichiararle - obbligando gli altri utenti ad installarle
manualmente per far funzionare il programma. Dunque, per creare
pacchetti di qualità, CheckInstall non rappresenta la strada ideale. Se,
d'altra parte, siete interessati a creare pacchetti base senza troppe
seccature, CheckInstall fa al caso vostro. Comunque, non mi occuperò di
CheckInstall in questo articolo (potete trovare un tutorial al seguente
indirizzo: https://help.ubuntu.com/community/CheckInstall). C'è quindi
qualche altro metodo semplice per creare pacchetti di qualità? Esiste
Debian Package Tools FE (http://url.fullcirclemagazine.org/927dc1),
un'applicazione basata sulle librerie Qt, che fornisce un'interfaccia
grafica base per la creazione di pacchetti. E' molto meglio di
CheckInstall, ma non rappresenta ancora il metodo ideale per creare
pacchetti di qualità.



Creazione manuale dei pacchetti



Il primo passo per la creazione manuale degli archivi .deb è scaricare
il programma, quindi compilarlo (se necessario) ed installarlo. Questo
solitamente comporta eseguire nell'ordine ./configure, make, e sudo make
install. A questo punto trovate dove è stato installato - aprite il file
Makefile con un editor di testo e leggete la sezione install, se non lo
trovate, cercate nella cartella /usr/. Ora è tempo di creare il file di
controllo, fondamentalmente, si tratta della descrizione del .deb. Ecco
un esempio di file di controllo - è sufficiente copiare tutto in un file
chiamato "control", senza estensione:



Package: fungame

Version: 1.0

Section: games

Priority: optional

Architecture: i386

Essential: no

Depends: libfungame, gamelibrary (>= 1.4.0)

Recommends: fungamesaves1 | fungamesaves2

Suggests: optionalfungame

Installed-Size: 1024

Maintainer: Game Maker [gamer a gamers.net]

Conflicts: stupidfungamethatbreaksthisone

Replaces: oldfungame

Description: Una breve descrizione del programma

.

Una descrizione dettagliata



Da notare alcune cose. Prima, è necessaria una linea vuota alla fine del
testo, è fondamentale, se non viene lasciata, il .deb. non funzionerà. I
campi sono abbastanza ovvii. Il campo Package contiene il nome del
pacchetto: se il nome del vostro pacchetto contiene più parole
utilizzate un trattino (-) tra di esse. I nomi dei pacchetti possono
contenere solo lettere minuscole, numeri e (crediateci o no) "+" e "-".
La sezione Version è ovviamente la versione del programma, assicuratevi
solo che NON contenga dei trattini (-). La voce Section è una lista di
categorie a cui appartiene l'applicazione, tra cui admin, games, gnome,
kde, mail, misc, net, sound, text, utils e web. La chiave Priority
indica la priorità del programma - il più delle volte opzionale.
Architecture è l'architettura del computer su cui gira il programma -
solitamente i386, AMD64 o PowerPC. Essential indica se si tratta di un
programma fondamentale o no - di solito no. Depends, Recommends, e
Suggests invece sono tutti simili: Depends indica che il nostro
programma non funzionerà senza quella dipendenza, Recommends contiene
indicazioni su quanto possa essere utile al nostro programma per
funzionare, ma non obbligatorio, mentre Suggests identifica tutto ciò
che sarebbe carino avere in aggiunta. Potete indicare più dipendenze
separate da una virgola (,), mentre se è necessario indicare più
programmi alternativi potete separarli con un una linea verticale (|).
Potete anche aggiungere, tra parentesi, la versione da utilizzare,
indicando << (precedente), <= (precedente o uguale a), = (uguale a), >=
(successiva o uguale a) oppure >> (successiva). Installed-Size è la
dimensione in kilobyte del file installato. Maintainer siete voi (il
vostro nome seguito dall'indirizzo di posta elettronica tra parentesi
quadre []). Conflicts mostra i pacchetti che impediscono l'installazione
del programma (programmi che vanno in conflitto con l'applicazione),
mentre Replaces contiene la lista dei pacchetti che verranno rimpiazzati
dal vostro applicativo. Per ultimo, Description contiene la descrizione
del software. Una volta preparato il file di controllo, salvatelo in una
cartella /DEBIAN. Ad esempio, se state creando un pacchetto e la
cartella di lavoro è ~/fungame/, salverete il vostro file di controllo
in ~/fungame/DEBIAN/. E' ora il momento di aggiungere il programma vero
e proprio, copiandolo nella cartella di lavoro. Ad esempio, se fungame è
presente in /usr/local/fungame/ e come file binario in /usr/bin/fungame
e la vostra cartella .deb è ~/fungame/, copiate tutto il contenuto di
/usr/local/fungame/ in ~/fungame/usr/local/fungame/ e /usr/bin/fungame
in ~/fungame/usr/bin. Potete anche creare una voce di menù (un file
.desktop) in ~/fungame/usr/share/applications/fungame.desktop, ecco un
esempio di file .desktop:



[Desktop Entry]

Type=Application

Version=1.0

Encoding=UTF-8

Name=Fun Game

Exec=fungame

Comment=

Icon=/usr/local/fungame/fungame.png

Terminal=false

Categories=Application;Game;

StartupNotify=false

MimeType=



Se volete, potete omettere la linea Icon=. Ora, è finalmente tempo di
creare il vostro archivio. Per fare questo, cd nel direttorio temporaneo
(ad es. ~/fungame/) ed eseguite, in un terminale, run dpkg -b cartella
nomepacchetto.deb, dove cartella è la vostra directory, ad es.
~/fungame/, e nomepacchetto.deb è il nome dell'archivio che volete
creare. E' importante nominare correttamente il pacchetto secondo la
seguente convenzione: nome-programma_versione_architettura.deb. Tutto
deve corrispondere all'equivalente presente nel file di controllo.



Distribuire il pacchetto



Il vostro pacchetto riceverà massima attenzione se disponibile su
packages.debian.org e packages.ubuntu.com. Sfortunatamente, non potete
fare un semplice upload, ma dovete essere sviluppatori Debian (oppure
Ubuntu) e diventarlo non è un processo semplice. Un lungo articolo
sull'argomento è disponibile su http://www.linux.com/articles/42155. Un
metodo più semplice è quello di trovare un mentore che si occupi di
caricare il file per voi - si veda http://mentors.debian.net/ per i
dettagli. Quindi, cosa si può fare se non si vogliono aspettare i lunghi
tempi di registrazione come sviluppatore Debian/Ubuntu? Se avete letto
la mia classifica Top5, sapete che adoro GetDeb.net. Questo sito
fornisce file .deb di terze parti e rappresenta il posto ideale per
programmatori non-Debian e non-Ubuntu che vogliono fornire i propri
pacchetti. Potete trovare le istruzioni per farlo al seguente indirizzo:
http://wiki.getdeb.net/Building_Packages. Inoltre non è richiesta
nessuna registrazione, ma solo un account su Launchpad.net.



Andrew Min è un appassionato di Linux sin dalla sua prima installazione
di openSuSE in VMWare. Per saperne di più visitate:
http://www.andrewmin.com/
--

* La pagina wiki del "Gruppo traduzione FCM" si trova su http://wiki.ubuntu-it.org/Fcm
* Per informazioni su come utilizzare una mailing list, consultare http://wiki.ubuntu-it.org/Listiquette
* Per eliminare la propria sottoscrizione a questa mailing list recarsi su http://www.freelists.org/list/ubuntu-it-fcm, inserire lo stesso indirizzo mail con il quale ci si era iscritti e selezionare "Unsubscribe".


Maggiori informazioni sulla lista ubuntu-it-fcm