Como fazer um deb pkg para o meu aplicativo pygtk?

4

Eu escrevo um aplicativo pygtk e quero fazer um deb pkg para ele.

$ tree WebPad/
WebPad/
|-- jspad
|   |-- __init__.py
|   |-- main.py
|   |-- t.py
|-- pixmaps
|   |-- c.png
|   |-- run.png
|   '-- webpad.png
|-- README
|-- run.py
'-- templates
    '-- webpad.tpl

3 directories, 19 files

Preciso alterar o layout do diretório?

    
por znetor 01.06.2011 / 04:49

3 respostas

5

Primeiro de tudo, você precisa criar um arquivo setup.py usando distutils no diretório raiz do seu projeto. Deve conter texto semelhante ao seguinte:

#!/usr/bin/env python

from distutils.core import setup
from glob import glob

setup(name = "WebPad",
    version="0.1",
    author="znetor",
    packages=["jspad"],
    data_files=[('share/webpad/pixmaps', glob("pixmaps/*"), ('share/webpad/templates', ['templates/webpad.tpl'])],
    scripts=['run.py'])

E você também deve criar um arquivo MANIFEST.in:

recursive-include pixmaps *
recursive-include templates *

Uma vez que você fez isso, você pode executar vários comandos no terminal para distribuir seu projeto:

chmod +x setup.py
sudo ./setup.py install # installs your project to /usr/local
./setup.py sdist # creates a source distribution in dist/

O último comando é aquele em que estamos interessados. Uma vez que você tenha uma distribuição fonte com um script distutils setup.py, você pode então seguir o Guia de empacotamento do Python para o Ubuntu . Basicamente, envolve a criação de um diretório debian/ na raiz do seu projeto com vários bits de informação e executando debuild .

Eu escrevi um tutorial sobre como fazer isso há algum tempo, parte disso não é uma prática recomendada, mas ajudará você a entender alguns conceitos.

    
por Flimm 01.06.2011 / 10:32
2

Eu sempre gostei de métodos "learn by example", então aqui vai: link

  1. Faça o download do pacote de um dos espelhos.
  2. Abra-o com o gerenciador de arquivos.
  3. Você verá alguns diretórios. Eles são estruturados como se você estivesse na raiz absoluta do sistema de arquivos.

Conclusão:

O corredor terá que ir no diretório / usr / bin /. Renomeie-o para "web-pad" ou "webpad" e certifique-se de que ele começa com "#! / Usr / bin / python". Dessa forma, você pode facilmente iniciá-lo a partir da linha de comando, sem precisar escrever "python web-pad". Em vez disso, o "web-pad" será suficiente.

Os outros arquivos terão que ir em / usr / share / web-pad / ou / usr / share / webpad / Para que o inicializador funcione, você precisará criar um arquivo / usr / share / pyshared-data / web-pad ou / usr / share / pyshared-data / webpad. Eu acho que adiciona seus arquivos de origem ao caminho de inclusão, para que o lançador possa iniciá-los. Novamente, como um exemplo, use o arquivo / usr / share / pyshared-data / software-center dentro do pacote.

Você também deve dar uma olhada em outros arquivos no pacote do software center. Eles podem fornecer algumas informações muito úteis.

E sim, olhe os arquivos no diretório DEBIAN. Especialmente o arquivo de controle, como é onde você configura as dependências, descrição, versão, conflitos, etc ...

O arquivo de gatilhos permite que você defina gatilhos para o seu aplicativo. (provavelmente lança o aplicativo quando algo é feito, mas não tenho certeza. Você sempre pode tentar ...) O script prerm é executado antes dos arquivos serem removidos. (remoção de pacote) O script preinst é executado antes de os arquivos serem copiados em seu lugar. (instalação de pacotes) O script postrm é executado depois que os arquivos são removidos. (remoção de pacote) O script postinst é executado depois que os arquivos são copiados em seu lugar. (instalação de pacotes) O arquivo md5sums contém checksums md5 de arquivos dentro. O arquivo conflies provavelmente contém os arquivos de configuração, embora eu não tenha certeza disso.

Como dito por @Flimm, o FileRoll tem a funcionalidade embutida de abrir arquivos deb de uma maneira mais amigável - isso inclui descompactar o controle.tar.gz no diretório DEBIAN, data.tar.gz na raiz (ele contém o seu arquivo arquivos) e oculta o arquivo debian-binário. Abrir arquivos deb no Ark não faz isso.

USANDO O ROLLER DE ARQUIVOS PARA FAZER PACOTES DEB NÃO FUNCIONARÁ! O ROLO DE ARQUIVOS APENAS APOIA O DEBS!

Você poderia experimentar este aplicativo, eu olhei para ele e parece muito bom: link

    
por nickguletskii 01.06.2011 / 10:05
2

Você também pode querer portar seu aplicativo para rapidamente e, em seguida, usar o comando quickly package para faça a embalagem automaticamente para você. Há também mais informações sobre comandos rápidos no .

    
por David Planella 10.10.2011 / 17:23