Qual è la guida al packaging Debian più semplice?


150

Sono andato sul wiki di Ubuntu ma mi sono confuso, c'erano troppi modi. Per favore, dimmi una semplice guida al packaging di Debian.


3
Vuoi creare pacchetti per uso personale, su un computer specifico o per l'utilizzo da parte di altri?
Andol,

1
In quale lingua è il software che desideri impacchettare?
Umang,

4
Ho lo stesso problema. La maggior parte dei tutorial e delle guide inizia con "get the tarball upstream". Da questo punto in poi ci siamo persi. Abbiamo una cosa semplice che vogliamo distribuire, non c'è tarball a monte, non c'è codice sorgente. è solo un file di guerra, alcuni script e alcuni file jar. Cos'è la tar ball a monte, e qualcuno ha visto una guida NON usarne una, che è esaustiva (ad esempio tratta i problemi degli utenti)
John Little,

2
Vado per quello che ho pubblicato su StackOVerflow.

Se vuoi creare "pacchetti virtuali" (raggruppa dipendenze insieme), vale la pena dare un'occhiata a equivs-build
Rolf

Risposte:


103

Questo è un buon HOWTO per la creazione di un .debfile di base . È adatto per la creazione di .debfile per uso personale ma non abbastanza rigoroso se si desidera che il pacchetto sia incluso in Debian / Ubuntu - per questo si dovrebbe leggere la Guida al nuovo manutentore Debian e / o la Guida al packaging di Ubuntu (che credo che tu abbia ' ho già provato).

Un buon strumento per verificare la .debconformità del file è lintian(installabile dai repository).

Ci sono state due sessioni qui nelle chatroom Ask Ubuntu.

Le basi del packaging su Ubuntu (packaging: parte 1)

Ubuntu Packaging per Launchpad PPAs (Packaging: Parte 2)


Questo compila bene ciò che è necessario per iniziare con il packaging, ma nell'HOWTO mi mancano le informazioni per includere l'icona dell'applicazione nel file deb (e non ho trovato nulla al riguardo altrove). Qualche suggerimento su come farlo?
nightcod3r

14

Con quali parti hai problemi? Sebbene complicata, la guida mi è sembrata abbastanza chiara quando la stavo seguendo.

Riepilogo rapido:

  • Estrai fonte .tar.gz
  • Correre dh_make
  • Modifica i file debian
  • Esegui debuild

3
Ciò che mi confonde è, questo processo è lo stesso, indipendentemente dalla lingua di origine o dalla struttura delle directory?
Seth

9
Il punto cruciale è che non abbiamo un .tar.gz. vogliamo impacchettare un'app che abbiamo scritto. Nessuna guida sembra coprire questo, tutti iniziano con un "tarball a monte" che non abbiamo.
John Little,

@JohnLa piccola risposta potrebbe essere di aiuto: askubuntu.com/a/27731/5
Nathan Osman

1
Che dire dell'imballaggio ripetuto a lungo termine? Devo fare ogni volta un processo di confezionamento così lungo e complicato?
kravemir,

Se l'utente non ha una chiave GPG , debuildfallirà con " debsign: si è verificato un errore gpg! Interruzione .... ".
agc,


5

Il modo più semplice per impacchettare qualcosa è usare checkinstall .


4
checkinstall fornisce un modo rapido per creare un pacchetto binario debin (.deb) da un metodo di installazione di origine. Tuttavia non fornisce un pacchetto debian appropriato (creato da un pacchetto sorgente debian).
João Pinto,

Oh amico .. ho dovuto usare quello PRIMA di compilare .. è come ore di compilazione.
Piotr Kula,

5

Originariamente pubblicata su StackOverFlow , questa guida è per software precompilati o interpretati:

Sta usando il modo giusto di creare un pacchetto deb, dpkg-buildpackagema a volte è un po 'complicato. Invece puoi usare dpkg -b <folder>e creerà il tuo pacchetto Debian.

Queste sono le basi per creare un pacchetto Debian dpkg -b <folder>con qualsiasi binario o con qualsiasi tipo di script che viene eseguito automaticamente senza la necessità di compilazione manuale (Python, Bash, Pearl, Ruby):

  1. Creare i file e le cartelle per ricreare la seguente struttura:

    ProgramName-Version/
    ProgramName-Version/DEBIAN
    ProgramName-Version/DEBIAN/control
    ProgramName-Version/usr/
    ProgramName-Version/usr/bin/
    ProgramName-Version/usr/bin/your_script
    

    Gli script posizionati in /usr/bin/vengono chiamati direttamente dal terminale, si noti che non ho aggiunto un'estensione allo script. Inoltre puoi notare che la struttura del pacchetto deb sarà la struttura del programma una volta installato. Quindi se segui questa logica se il tuo programma ha un singolo file, puoi posizionarlo direttamente sotto ProgramName-Version/usr/bin/your_script, ma se hai più file, dovresti posizionarli sotto ProgramName-Version/usr/share/ProgramName/all your filese posizionare solo un file sotto /usr/bin/che chiamerà i tuoi script da/usr/share/ProgramName/

  2. Cambia tutte le autorizzazioni della cartella in root:

     chown root:root -R /path/to/ProgramName-Version  
    
  3. Modifica le autorizzazioni dello script:

     chmod 0755 /path/to/the/script
    
  4. Finalmente puoi eseguire: dpkg -b /path/to/the/ProgramName-Versione il tuo pacchetto deb verrà creato! (Puoi anche aggiungere gli script post / pre inst e tutto quello che vuoi, funziona come un normale pacchetto Debian)

Ecco un esempio del controlfile. Devi solo copiarlo / incollarlo in un file vuoto chiamato "control" e inserirlo nella cartella DEBIAN.

Package: ProgramName
Version: VERSION
Architecture: all
Maintainer: YOUR NAME <EMAIL>
Depends: python2.7, etc , etc,
Installed-Size: in_kb
Homepage: http://foo.com
Description: Here you can put a one line description.This is the short Description.
 Here you put the long description, indented by 1 space.

3

No, la guida all'imballaggio più semplice e chiara in questo mondo è

Creazione di pacchetti di applicazioni Java per Ubuntu e altri Debian

Pochi giorni fa, per la mia prima applicazione, ho creato il pacchetto DEB seguendo questo tutorial. Molto chiaro e la mia app è stata impacchettata con successo. Sì, almeno è più semplice per me.

Puoi confrontarlo con la Debian Packaging Guide.


3
"Semplice" non significa "completo". Esistono molte politiche che un'esercitazione di base sul packaging .deb non coprirà per diversi tipi di programmi, e quindi il packaging non è così semplice come un semplice "tutorial".
Thomas Ward

decisamente semplice. Mi ha iniziato e sono stato in grado di creare il mio primo pacchetto debian in pochi minuti. Ci sono ancora molti dettagli da affrontare (messaggi di cattiva qualità del pacchetto di lintian) ma ottimo punto di partenza.
Atmelino,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.