Debuild

Creare facilmente pacchetti Debian

Sistema Operativo:Linux
Lingua:Non in italiano
Prezzo:gratuito GNU GPL
Dimensione:915 KB
Click:18
Commenti:Leggi | Scrivi (14)
Feed:Xml
downloadScarica dal sito originale
Alternativo
Una delle caratteristiche fondamentali dei sistemi GNU/Linux, fin dal 1994, è la gestione del software sotto forma di pacchetti. Questo permette di semplificare molte cose, sia per quanto riguarda l'installazione o rimozione da parte dell'utente, sia soprattutto per la gestione dei vari conflitti tra le librerie e gli aggiornamenti. Inoltre, è una buona soluzione anche per chi vuole rilasciare i propri programmi per architetture di processori differenti. Chi per lavoro o passione scrive programmi per GNU/Linux potrà certamente decidere di pubblicarli rilasciando il codice sorgente, ma gli utenti vorranno anche dei pacchetti precompilati perché oggi come oggi nessuno ha voglia di compilarsi tutti i programmi da solo. Un vantaggio dei pacchetti per il programmatore è che, nonostante esistano diversi formati, si possono facilmente convertire tra loro. Quindi si possono creare dei pacchetti Debian e convertirli poi in qualsiasi altro formato. Lo svantaggio è che creare pacchetti Debian con gli strumenti tradizionali è un po' macchinoso o quanto meno noioso. Per fortuna, il comando Debuild si occupa di automatizzare la quasi totalità del procedimento. Permette di creare non soltanto i pacchetti binari, da distribuire agli utenti, ma anche i pacchetti sorgenti che si possono inviare su un proprio repository per compilarli nel cloud contemporaneamente per diverse architetture.


La prima cosa da fare è assicurarsi che il proprio file di progetto o makefile contenga istruzioni per l'installazione del programma. Per esempio, se si sta utilizzando qmake basta scrivere in coda al file:

unix {
target.path = /usr/bin
INSTALLS += target
}

Similmente, si possono seguire le linee guida di CMake oppure scrivere direttamente un'apposita sezione di un Makefile.


Il passo successivo è ovviamente ottenere il Makefile: per un progetto qmake basta dare il comando
qmake
nella cartella che contiene il file di progetto (quello con estensione PRO). Su alcune installazioni, il comando qmake potrebbe trovarsi in una cartella diversa da /usr/bin. Si può semplificare l'operazione creando un link:

sudo ln -s /usr/lib/x86_64-linux-gnu/qt5/bin/qmake /usr/bin/qmake

ovviamente ci si deve assicurare che il percorso sia giusto.


Il nome della cartella del codice sorgente deve essere scritto nella forma nomedelpacchetto-versione. Si può poi dare il comando

dh_make -e indirizzoemail -s --createorig

inserendo l'indirizzo email legato alla chiave GPG che verrà usata per firmare il pacchetto. Per un pacchetto relativo a un programma eseguibile, si può usare l'opzione -s, mentre per le librerie si deve usare -l.


Verrà creata la cartella debian: al suo interno vi sono una serie di file che è possibile modificare per personalizzare il proprio pacchetto. Alcuni, però, devono necessariamente essere modificati. Il primo è il file changelog: questo deve contenere una breve descrizione della versione del pacchetto e la firma GPG corretta. Inoltre, si può indicare la versione Debian (o Ubuntu) per cui il pacchetto è progettato. Per esempio, unstable o stable, bionic o zetsy.


Altro file fondamentale è control. In questo file si devono indicare le sezioni in cui inserire il programma nel sistema di pacchetti (office, multimedia, system ecc.) e i vari pacchetti dai quali dipende. Questi pacchetti possono essere ricavati da script automatici durante la compilazione del programma, ma anche inseriti manualmente, dividendoli con delle virgole. ╚ importante anche inserire una descrizione.


Tornando nella cartella del codice sorgente, è possibile creare un pacchetto sorgente con il comando

debuild -S -sa

Se si sta soltanto producendo una versione diversa di un pacchetto il cui codice sorgente è già presente nei repository della distribuzione in uso, si può anche sostituire l'opzione -sa con -sd, per non caricare sui server anche il codice originale. Nella maggioranza dei casi, comunque, ha più senso la prima opzione. Il sistema ci chiederà di firmare il pacchetto con la nostra chiave crittografica. Si può poi caricare questo pacchetto sorgente su un server come Launchpad, usando il comando dput, per compilare il pacchetto per più architetture.


Se ora si vuole creare direttamente il pacchetto binario, basta dare il comando:

debuild binary

Dopo la compilazione, il pacchetto in formato DEB verrà creato nella cartella superiore a quella del codice sorgente.


Nel caso in cui qualcosa vada storto si può fare pulizia con il comando debuild clean, controllare i file e ripetere la costruzione del pacchetto. Se il pacchetto è stato creato lo si può provare a installare e disinstallare per assicurarsi che faccia esattamente quel che ci si aspetta.

Luca Tringali
14 Commenti alla Notizia Debuild
Ordina
  • Complimenti vivissimi, nemmeno il rispetto per i morti,per le vostre cazzate!
    non+autenticato
  • Nel mondo Java o programmazion web o microservices in altri linguaggi gira tutto su build tools a livello più alto tipo Maven o Gradle. Chi è che si basa ancora sui makefile?
    non+autenticato
  • - Scritto da: 59e90e20113
    > Nel mondo Java o programmazion web o
    > microservices in altri linguaggi gira tutto su
    > build tools a livello più alto tipo Maven o
    > Gradle. Chi è che si basa ancora sui
    > makefile?

    Come se non esistesse nulla al di fuori del mondo Java e della programmazione web.
  • - Scritto da: panda rossa
    > - Scritto da: 59e90e20113
    > > Nel mondo Java o programmazion web o
    > > microservices in altri linguaggi gira tutto
    > su
    > > build tools a livello più alto tipo Maven o
    > > Gradle. Chi è che si basa ancora sui
    > > makefile?
    >
    > Come se non esistesse nulla al di fuori del mondo
    > Java e della programmazione web.

    A leggere certe stronzate uno crederebbe che il mondo c++ stia ancora usando computer che vanno a kerosene.
    non+autenticato
  • Solo un povero winaro potrebbe pensare che "oggi nessuno ha voglia di compilarsi tutti i programmi da solo."

    Scaricare i sorgenti, controllarli e compilarli sul proprio sistema e' una buona norma che tutti dovrebbero adottare.

    Certo, poi ci si scontra con l'ignoranza dell'utente, ma soprattutto col sistema operativo pensato per l'utente, e quindi senza strumenti di sviluppo e compilazione, col quale non si puo' compilare proprio un bel niente.

    Dopodiche' mi piacerebbe sapere quali enormi difficolta' insormontabili si celino dietro all'esecuzione di un make.
  • e il tempo per fare il tutto?
    non+autenticato
  • ma gli dai ascolto? è solo un troll che sparla sempre di cose che non conosce un ignorante e incapace doc. Lascialo trollare in pace che a lui piace rendersi ridicolo e fare figure di m*... (per intendersi è quello che fa finta di essere il paladino dell'open source e di sapere sutto sul software libero poi si scopre che non sa' la differenza tra GPL e BSD confonde Linux con gli altri sistemi operativi.... insomma.. è un idiota)
    non+autenticato
  • - Scritto da: ma dai
    > e il tempo per fare il tutto?

    Tempo?
    Lo fa il computer il lavoro.
    In background.
  • - Scritto da: panda rossa
    > Scaricare i sorgenti, controllarli e compilarli
    > sul proprio sistema e' una buona norma
    > che tutti dovrebbero adottare

    - Scritto da: panda rossa
    > - Scritto da: ma dai
    > > e il tempo per fare il tutto?
    >
    > Tempo?
    > Lo fa il computer il lavoro.
    > In background.


    Ah be se i sorgenti li controlla il computer in background il codice è certamente sicuro Rotola dal ridereRotola dal ridereRotola dal ridereRotola dal ridereRotola dal ridere
    non+autenticato
  • - Scritto da: eccerto
    > - Scritto da: panda rossa
    > > Scaricare i sorgenti, controllarli e
    > compilarli
    >
    > > sul proprio sistema e' una buona norma
    > > che tutti dovrebbero adottare
    >
    > - Scritto da: panda rossa
    > > - Scritto da: ma dai
    > > > e il tempo per fare il tutto?
    > >
    > > Tempo?
    > > Lo fa il computer il lavoro.
    > > In background.
    >
    >
    > Ah be se i sorgenti li controlla il computer in
    > background il codice è certamente sicuro
    > Rotola dal ridereRotola dal ridereRotola dal ridereRotola dal ridereRotola dal ridere

    Il controllo dei sorgenti e' una questione che non riguarda certo gli utonti ignoranti come te.

    Dal tuo punto di vista, scaricare i sorgenti e compilarli,
    o scaricare direttamente l'eseguibile,
    e' la stessa cosa, ma scaricando i sorgenti e compilandoli, ci metti di meno e risparmi banda.
    Quindi un vantaggio ce l'hai comunque.

    Ovviamente non mi aspetto che tu lo capisca.
    Per tua informazione il pesciolino rosso dell'acquario lo ha capito benissimo il concetto.
  • - Scritto da: panda rossa

    > Il controllo dei sorgenti e' una questione che
    > non riguarda certo gli utonti ignoranti come
    > te.

    Ci mancherebbe, mi chiedevo solamente come concili questo controllo che fanno tutti gli utenti non ignoranti con la quantità di bachi che saltano fuori costantemente, anche gravi; il bug all'origine di shellshock mi si dice è rimasto tale per 25 anni.. sicuramente tu avrai scaricato, controllato e compilato bash innumerevoli volte, quindi non mi capacito del fatto che tu non l'abbia mai segnalato.

    A voler essere cattivo direi che non hai controllato così bene (quindi predichi bene e razzoli male), ma io sono ignorante, che ne posso sapere?

    Parlami dei sorgenti di Firefox (che so per certo tu usi), tutto a posto? Posso fidarmi?

    > Dal tuo punto di vista, scaricare i sorgenti e
    > compilarli,
    > o scaricare direttamente l'eseguibile,
    > e' la stessa cosa, ma scaricando i sorgenti e
    > compilandoli, ci metti di meno e risparmi
    > banda.
    > Quindi un vantaggio ce l'hai comunque.

    Ah certo, se salti il passaggio del controllo ci metti meno tempo... a patto di avere già tutto quello che serve per compilare e non devi iniziare ad andare a dare la caccia a compilatori, librerie, versioni, headers e quant'altro.

    > Ovviamente non mi aspetto che tu lo capisca.
    > Per tua informazione il pesciolino rosso
    > dell'acquario lo ha capito benissimo il
    > concetto.

    Non ne avevo dubbi, mi chiedo se tu l'abbia capito però.
    non+autenticato
  • Diceva le stesse coe pure Ian Murdock. Guarda che dine ha fatto, a furia di ricompliarsi il kernel.


    Fan WindowsFan WindowsFan WindowsAndrea WinFan WindowsFan WindowsFan Windows
    non+autenticato
  • - Scritto da: panda rossa
    > Scaricare i sorgenti, controllarli e compilarli
    > sul proprio sistema e' una buona norma che tutti
    > dovrebbero
    > adottare.

    Raccontami di quella volta che hai controllato i sorgenti di LibreOffice prima di installarlo
    non+autenticato