jump to navigation

HOWTO – Creare pacchetti .DEB da sorgente febbraio 6, 2007

Posted by linuxiano in Ubuntu.
trackback

In questa mini guida, spiegerò come generare dei pacchetti .DEB

Innanzitutto per creare pacchetti Debian servono queste applicazioni, digitate da terminale:
sudo apt-get install devscripts dh-make make build-essential dpkg apt
una volta verificato / installato i seguenti paccheti, possiamo iniziare a compilare! ;=)

1 – Estraiamo i documenti all’interno del nostro pacchetto tar.gz o tar.bz2 in una cartella a parte sul Desktop (o in qualsiasi altro posto!);

2 – entriamo nella cartella che abbiamo creato attraverso il comando:
cd nome_cartella

3 – diamo il comando:
dh_make -s -e nick@provider.com -n –copyright gpl

*
dh_make = crea una sottocartella ./debian/ (necessaria per la compilazione);
nick@provider.com = serve per impostare la propria mail (non necessario);
–copyright gpl = serve per impostare il tipo di Licenza con il quale si vuole distribuire il pacchetto! (non necessario, soprattutto se per uso personale!).
*

4 – diamo inizio alla compilazione con:
debuild binary

5 – se il pacchetto è stato compilato con successo, date il seguente comando per installarlo:
sudo dpkg -i ../nome_programma.deb

Questo è tutto!!
Spero che questa mini-guida posso risolvere i vostri problemi! ;=)

Commenti»

1. The developers » Debian e derivate: creare pacchetti .deb - giugno 17, 2007

[…] dh-make, make, build-essential,dpkg, e apt. Procedura che potete trovare se vi interessa qui. La procedura però è molto macchinosa e necessita l’utilizzo di questi svariati pacchetti […]

2. Masand - settembre 22, 2007

Ciao,
ho seguito la tua guida, ma il comando “debuild binary”, mi restituisce questo errore:
“Can’t exec “fakeroot”: Nessun file o directory at /usr/bin/debuild line 1210.
debuild: fatal error at line 1210:
couldn’t exec fakeroot debian/rules: Nessun file o directory”

Mi puoi aiutare?

Grazie…

3. Darkmagister - ottobre 23, 2007

ciao scusa ma se io voglio creare un pacchetto da un programma che non ha il make install … ma bensì solo make e basta come posso fare ?

4. Maththias - febbraio 11, 2008

In più bisogna aggiungere che prima del comando debuild binary si deve far partire il file di configurazione (sempre ammesso che ci sia 😛 ) con il comando ./configure ( ./configure –help per vedere le opzioni).

Tanti programmi invece partono prima col comando ./autogen.sh (se presente nella cartella dei sorgenti questo file).

Insomma non c’è in realtà un metodo univoco e prima del fatidico debuild binary, che trasforma i sorgenti in pacchetti binari .deb e ne cura le dipendenze, ci sono sempre altri comandi da lanciare prima…
Spesso se ne trova l’elenco nel file Install presente nella cartella dei sorgenti o nel Readme, anch’esso spesso presente.

🙂

5. Sergio - giugno 29, 2009

Ho seguito alla lettera tutta la procedura ma al comando finale debuild binary mi da questo errore:

debuild: fatal error at line 630:
cannot find readable debian/changelog anywhere!

Che vuol dire linux è un bel sistema ma la shell andrebbe eliminata e fatto tutto in pacchetti è troppo instabile e da sempre errori.

Glaedr - luglio 1, 2009

ma che dici!
1° La shell è il cuore di linux, senza di essa i niubbi che lo provano lo resterebbero.
2° è impossibile che tutte le distro si adattino a un unico sistema, e inoltre questo violerebbe la filosofia linuxiana
3° perciò la shell è un modo per adattare le guide a tutte le distro e farle interagire tra loro…
4° alcuni comandi noiosi e ripetitivi risultano molto più corti e veloci dati da shell
5° nessun computer è nato con la GUI, ricordatelo sempre…
6° dove altro lo trovi sudo apt-get moo?? XD

Sergio - agosto 2, 2009

Grazie, caro Glaedr;
1° MS-DOS era il cuore di windows 95-97-98 e ME ma non si installavano programmi solo da shell come la metà di Linux, MS-DOS si può che una shell in fondo, e poi non mi riferivo all’installazione dei pacchetti in sè che è facile ma ai sorgenti la grande nota dolens di Linux.
2° Non dico che tutte le distro si debbano adattare ad un solo sistema ma vi deve essere comunque uno standard identico se una distro si basa su deb lo standard deb deve essere identico per tutte le distro che si basano su Debian donde l’acronimo DEB (che vuol dire proprio Debian), la stessa cosa con RPM ecc. Poi quella che dici tu non è la filosofia Linuxiana bensì la caratteristica di Unix su cui appunto si basa e si articola Linux.
3° La shell sì, dovrebbe essere un modo per adattare tutte le guide e far interagire le varie distro tra di loro ma questo non avviene, specie con i file sorgenti i quali danno sempre problemi ed errori, non sempre dovuti all’instabilità della shell ma dalla compilazione che viene fatta in troppi e svariati modi e ciò complica notevolmente le cose e rende tutto un gran casino.
4° Che molti comandi noiosi e ripetitivi risultino più corti e pratici da shell è vero ma non è questo il punto.
5° Nessun computer è nato con la G.U.I. (Graphical User Interface – Interfaccia Grafica Utente) è verissimo, come e verissimo il contrario che nessun computer senza la GUI avrebbe avuto la diffusione odierna, se saremmo ancora ai tempi dei geni della tastiera poiché si faceva tutto in shell o linea di comando, il computer sarebbe rimasto qualcosa non accessibile ad un vasto bacino di utenza come adesso ma solo per pochi eletti che se lo potevano permettere anche se avevano i soldi e non soltanto la conoscenza dei linguaggi o comandi.
Un esempio pratico sono i blog ed i siti internet personali che hanno avuto una grande espansione proprio quando sono usciti gli editor di testo HTML visuali basati proprio su GUI i famosi editor WYSISWYG, senza questi ultimi il Site Building non sarebbe così diffuso.
6° Sudo, apt-get, non li trovi da nessuna parte ma proprio perché ce ne sono troppi rendono tutto un gran casino. E poi vuoi mettere la praticità di scaricarsi un pacchetto autoinstallante sul PC cliccarci sopra che poi si installa da solo automaticamente, che mettersi sulla shell a digitare una sfilza di comandi per installare un semplicissimo programma, che poi arrivi all’ultimo che ti fa pure un errore incomprensibile che ti manda a ramengo tutto non installandoti un tubo?
7° Consentimi di dire infine che, proprio grazie a questa nuova intuizione dei pacchetti installabili automaticamente che Linux ha fatto un grande passo avanti nel mondo del Personal Computer e dell’Home Computing, ma è ancora lungi dall’intaccare minimamente il predominio di Windows, che pur con tutti i suoi difetti resta ancora il sistema più pratico e comprensibile. Perciò Linux deve fare ancora molta, moltissima strada prima di poter rivaleggiare alla pari con MS-Windows. L’utenza domestica che è quella che fa tirare il mercato ha bisogno di praticità e non di complicarsi la vita, del resto la vita stessa è molto più bella quando è semplice che quando è complicata, non trovi?

mesonepigreco - marzo 26, 2012

La shell andrebbe eliminata???????

se proprio la detesti su alcune distro è quasi non indispensabile, ma la shell è la forza di linux, personalizzazione massima, poi per quanto riguarda i sorgenti, Gentoo dove la metti!!! Senza parlare del fatto che ormai quasi tutto il software open source è disponibile sui repository delle grandi distro, poi istallare da sorgente non è mica così complicato, sotto windows manco lo puoi fare!!!

6. Glaedr - luglio 1, 2009

salve, ho creato uno script che modifica l’aspetto di ubuntu, con tanto di temi, e vorrei pacchettizzarlo…ma ovviamente, essendo uno script (sh) non si compila…come faccio?

7. derekk - agosto 26, 2009

prova BUC: http://buc.billeragroup.net/

è vero, non lo “pacchettizza” ma aggiunge almeno una gui.

8. Glaedr - dicembre 13, 2009

@Sergio
Guardando bene ci sono già dei pacchetti autoinstallanti, come i .run e i .bundle, ma sono incompatibili con i sistemi di gestione dei pacchetti, che garantiscono molte funzionalità, come il recupero dei pacchetti direttamente da internet, la segnalazione e l’installazione degli aggiornamenti, la disinstallazione, tutto in un sistema centralizzato…
Quanto alla shell…si tratta anche di un sistema per riparare eventuali guasti al sistema quando la gui non funziona (parlo anche della console di ripristino del cd di installazione di xp)…
Per quanto riguarda i sorgenti, quelli soo gli unici “pacchetti” universali, e compilarli sul proprio computer vuol dire che saranno necessariamente compatibili con esso…purtroppo siamo troppo sfaticati per compilarli per tutti i tipi di pc…anch’io quando posso mi metto e pacchettizzo sorgenti, ma sono un povero 14enne che dedica il 90% della sua giornata alla scuola…I sorgenti hanno anche un altro vantaggio: le patch, che sono piccoli file di testo che lo modificano o lo aggiornano. A che serve? Serve a non dover scaricare ogni volta tutti gli eseguibili e le librerie, o i sorgenti stessi, ma un solo file di testo, e per chi ci lavora, questa è una grande cosa.

A tutti:
Guardate che di solito il file autogen.sh o install.sh non è altro che un file che fa partire di seguito i comandi ./configure, make e make install, che comunque ci sono per chi, come chi pacchettizza e chi sviluppa, ha bisogno di vedere queste tre fasi della compilazione/installazione scomposte…

9. saxer - ottobre 18, 2011

se ti da errori con fakeroot e hai debian, visto che con dh_make non ti dice l’errore, te ne accorgi con il comando

./configure –with-gnu-ld

che mi ha fatto notare che manca il pacchetto
libnautilus-extension-dev quindi installa quello e poi vedi che ti crea il pacchetto.


Lascia un commento