Come creo un pacchetto deb per un singolo script python?

77

Ho un singolo script python che voglio distribuire come pacchetto deb. È un indicatore che mostra la data locale nel pannello Unity. Ho seguito creare un pacchetto .deb da script o binari ma non ho potuto creare un pacchetto deb perché non funziona.

Qualcuno può darmi istruzioni passo-passo su cosa dovrei fare? Per quanto ne so, questo script dipende da python-appindicator .

Nota:
Non voglio alcun collegamento alle istruzioni di imballaggio Debian / Ubuntu. Ho visto la maggior parte di loro. Non li trovo adatti ai principianti.

    
posta sagarchalise 27.12.2011 - 13:12

7 risposte

83

Quello che segue è un esempio di base di come potrebbe apparire un pacchetto sorgente per uno script python. Sebbene la maggior parte delle esercitazioni di packaging siano un po 'complesse, possono davvero aiutare se si verifica un problema. Detto questo, ho imparato le basi della confezione Debian semplicemente guardando i pacchetti Debian. apt-get source qualcosa di simile e impara con l'esempio.

Ecco il layout del pacchetto sorgente di base:

my-script/
    -- myScript
    -- debian/
        -- changelog
        -- copyright
        -- compat
        -- rules
        -- control
        -- install

Esegui dch --create nella directory per creare una voce debian/changelog formattata correttamente.

debian / copyright dovrebbe essere simile a:

Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: myScript
Upstream-Contact: Name, <[email protected]>

Files: *
Copyright: 2011, Name, <[email protected]>
License: (GPL-2+ | LGPL-2 | GPL-3 | whatever)
 Full text of licence.
 .
 Unless there is a it can be found in /usr/share/common-licenses

debian / compat può essere solo: 7

debian / rules :

#!/usr/bin/make -f

%:
    dh [email protected] --with python2

Nota che ci deve essere "scheda" prima dh [email protected] --with python2 , non spazi.

debian / control :

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <[email protected]>
Build-Depends: debhelper (>= 7),
               python (>= 2.6.6-3~)
Standards-Version: 3.9.2
X-Python-Version: >= 2.6


Package: my-script
Architecture: all
Section: python
Depends: python-appindicator, ${misc:Depends}, ${python:Depends}
Description: short description
 A long description goes here.
 .
 It can contain multiple paragraphs

debian / install :

myScript usr/bin/

Questo file indica quale file verrà installato in quale cartella.

Ora costruiscilo con debuild --no-tgz-check

Questo creerà un pacchetto deb funzionale. Lintian sta per lanciare alcuni avvertimenti riguardo alla mancanza di un orig.tar.gz, ma a meno che tu non abbia in programma di creare un vero progetto upstream che faccia rilasciare i tarball, probabilmente vorrai ignorarlo per ora.

    
risposta data andrewsomething 30.12.2011 - 20:25
18
  1. crea una cartella con qualsiasi nome sulla tua casa es: mypyscript
  2. Apri la cartella e crea due cartelle con i nomi "DEBIAN" e "usr"
  3. Apri la cartella DEBIAN. Crea un file di testo (senza estensione) con il nome 'control' lì.
  4. Apri "control" e digita come segue e salvalo su DEBIAN

    Package: mypyscript
    Version: 0.01
    Architecture: all
    Maintainer: your name<your mail id>
    Installed-Size: 2
    Depends: python-appindicator
    Section: extras
    Priority: optional
    Homepage: your homepage
    Description: describe
    
  5. Torna alla cartella denominata mypyscript. Apri 'usr'. Crea una cartella denominata "bin". Apri 'bin' e incolla il tuo file Pythonscript lì.

  6. Puoi anche creare una voce di menu. Ma questo non è essenziale.
  7. Torna alla cartella home in cui si trova la cartella "mypyscript" o chiudi il browser dei file.
  8. Apri terminale. Assicurati che il terminale si trovi nella cartella principale. digita dpkg -b mypyscript . Quindi premi invio. In secondi il tuo pacchetto deb è pronto

nota: si prega di compilare correttamente il file 'control'. Non utilizzare gli apostrofi. È solo per indicare i nomi.

    
risposta data ST Alfas 30.12.2011 - 17:16
9

Puoi provare con Debreate , uno strumento GUI per la creazione di pacchetti.

    
risposta data davidc3 30.12.2011 - 14:55
3

Vorrei effettuare il check-out rapidamente, ottimo per creare app rapide e generare debs su google o puoi trovare tutorial qui link

    
risposta data Oly 31.12.2011 - 00:16
2

Prova pkgme ​​. Dovrebbe funzionare.

Installa tramite:

sudo apt install pkgme

Esegui tramite:

pkgme
debuild

(Un nuovo sviluppatore potrebbe dover eseguire gpg --gen-key , vedi Development Keysigning per farlo correttamente)

    
risposta data ams 30.12.2011 - 21:16
1

Nel frattempo c'è un articolo che descrive il dilemma trovato su link . Principalmente afferma che c'è dh-virtualenv che lavora insieme a make-deb per distribuire facilmente il codice Python usando solo un file setup.py. Un breve manuale può essere trovato su link

    
risposta data tc88 18.11.2017 - 20:46
0

Potresti provare a utilizzare Debreate

Questa è un'interfaccia Gui per creare pacchetti e cose che puoi usare anche con il PPA se non vuoi scaricarlo dal sito web sopra elencato.

sudo add-apt-repository ppa:antumdeluge/<ppaname>; sudo apt update; sudo apt install debreate

Ive ha concesso il ppa in modo che venga eseguito come un'unica riga di codice! Grazie per la fantastica domanda e assicurati di continuare a battere quelle linee di codice nel terminale!

    
risposta data Galien1 08.07.2017 - 04:36

Leggi altre domande sui tag