Como eu crio um pacote deb para um único script python?

77

Eu tenho um único script python que eu quero distribuir como um pacote deb. É um indicador que mostra a data local no painel do Unity. Eu segui criar um pacote .deb de scripts ou binários mas não consegui criar um pacote deb porque ele falha.

Alguém pode me dar instruções passo-a-passo sobre o que devo fazer? Até onde eu sei, esse script depende de python-appindicator .

NOTA:
Eu não quero nenhum link para instruções de empacotamento do Debian / Ubuntu. Eu vi a maioria deles. Eu não os acho amigáveis para iniciantes.

    
por sagarchalise 27.12.2011 / 13:12

7 respostas

83

O que se segue é um exemplo básico de como um pacote fonte para um script python pode parecer. Embora a maioria dos tutoriais de empacotamento seja um pouco complexa, eles podem realmente ajudar se você encontrar um problema. Dito isso, aprendi primeiro as noções básicas de empacotamento do Debian simplesmente olhando para os pacotes do Debian. apt-get source algo parecido e aprenda pelo exemplo.

Este é o layout do seu pacote básico de fontes:

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

Execute dch --create no diretório para criar uma entrada debian/changelog corretamente formatada.

debian / copyright deve ser parecido com:

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

Files: *
Copyright: 2011, Name, <email@address>
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 pode ser apenas: 7

debian / rules :

#!/usr/bin/make -f

%:
    dh $@ --with python2

Note que deve haver "tab" antes dh $@ --with python2 , não espaços.

debian / control :

Source: my-script
Section: python
Priority: optional
Maintainer: Name, <email@address>
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/

Este arquivo indica qual arquivo será instalado em qual pasta.

Agora construa com debuild --no-tgz-check

Isto irá criar um pacote deb funcional. Lintian vai lançar alguns avisos sobre a falta de um orig.tar.gz, mas a menos que você planeje criar um projeto de upstream apropriado que faça lançamentos de tarball, você provavelmente só vai querer ignorar isso por enquanto.

    
por andrewsomething 30.12.2011 / 20:25
18
  1. crie uma pasta com qualquer nome em sua casa, por exemplo: mypyscript
  2. Abra a pasta e crie duas pastas com nomes 'DEBIAN' e 'usr'
  3. Abra a pasta DEBIAN. Crie um arquivo de texto (sem extensão) com o nome 'control' lá.
  4. Abra 'control' e digite da seguinte maneira e salve em 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. Voltar para a pasta chamada mypyscript. Abra o 'usr'. Crie uma pasta chamada 'bin'. Abra 'bin' e cole seu arquivo pythonscript lá.

  6. Você também pode fazer uma entrada no menu. Mas isso não é essencial.
  7. Voltar para a pasta inicial em que se encontra a pasta 'mypyscript' ou fechar o navegador de arquivos.
  8. Abra o terminal. Certifique-se de que o terminal esteja na pasta inicial. digite dpkg -b mypyscript .Depois pressione enter. Em segundos o seu pacote deb está pronto

nota: por favor preencha o arquivo 'controle' corretamente. Não use apóstrofos. É apenas para indicar os nomes.

    
por ST Alfas 30.12.2011 / 17:16
9

Você poderia tentar com Debreate , uma ferramenta gráfica para criar pacotes.

    
por davidc3 30.12.2011 / 14:55
3

Gostaria de verificar rapidamente, ótimo para criar aplicativos rápidos e gerar debs google ou você pode encontrar tutoriais aqui link

    
por Oly 31.12.2011 / 00:16
2

Experimente o pkgme . É para o Just Work.

Instalar via:

sudo apt install pkgme

Executar via:

pkgme
debuild

(Um novo desenvolvedor pode ter que executar gpg --gen-key , consulte Design de chaves de desenvolvimento para fazer isso corretamente)

    
por ams 30.12.2011 / 21:16
1

Enquanto isso, há um artigo descrevendo o dilema encontrado no link . Ele afirma principalmente que existe o dh-virtualenv trabalhando junto com o make-deb para implementar facilmente o código Python usando apenas um arquivo setup.py. Um pequeno manual pode ser encontrado no link

    
por tc88 18.11.2017 / 20:46
0

Você pode tentar usar Debreate

Esta é uma interface Gui para criar pacotes e outras coisas que você pode usar o PPA também se você não quiser baixá-lo do site listado acima.

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

Eu condensei o ppa para que ele seja executado como uma única linha de código! Obrigado pela pergunta incrível e não se esqueça de manter as linhas de código no terminal!

    
por Galien1 08.07.2017 / 04:36