Faça o pacote debian instalar o python

2

Eu tenho dois scripts Python, e eu preciso empacotá-los em um pacote Debian. Eu tentei algumas coisas com algum sucesso. Por exemplo, eu fiz um setup.py e usei python-stdeb para criar um pacote (que - se bem me lembro - não funcionou muito bem), e também fiz meu próprio pacote a partir do zero com uma estrutura assim:

project
  DEBIAN/
    changelog
    copyright
    compat
    rules
    control
    install
  usr/
    bin/
      script1
      script2

Era algo assim, de qualquer maneira. Eu peguei um pacote que agia como um pacote Debian e eu poderia usar dpkg -b project para primeiro compilá-lo e então dpkg -i package.deb para instalar o pacote Debian, entretanto ele não instalou nada (bem, ele instalou algumas coisas, mas não instalei os scripts que eu escrevi, que é o que eu realmente gostaria de instalar). Então, como posso criar um pacote que instalará meus scripts Python? Eu não me importo se eles vão para o X11 ou eu tenho que dizer "Install to ~/package ". Tudo o que quero é que meus scripts entrem em um pacote para que outra pessoa possa instalar esse pacote e ter meus scripts.

Meu palpite é que tenho que colocar metadados ou algo no arquivo de instalação, mas não sei o que colocar lá.

    
por Dylan 04.10.2014 / 17:56

1 resposta

2

Uma maneira rápida e fácil seria usar alien , converter .tar em .deb :

tar czf pkg-name.tgz usr/
fakeroot alien -d pkg-name.tgz

Senão usar o jeito antigo, eu uso um Makefile assim:

all: deb

deb:
    mkdir -p tmp/usr/bin tmp/DEBIAN tmp/etc tmp/usr/share/man/man5
    find tmp -type d | xargs chmod 755
    cp some.conf tmp/etc/
    cp man/some.5 tmp/usr/share/man/man5/
    cp somecmd tmp/usr/bin/
    tar c --owner root --group root -v -z -f tmp/data.tar.gz -C tmp ./etc ./usr
    cd tmp && find usr/ etc/ -type f | xargs md5sum >DEBIAN/md5sums
    awk '/^#Package:/{i++}i {print substr($$0,2); }' Makefile >tmp/DEBIAN/control
    tar c --owner root --group root -v -z -f tmp/control.tar.gz -C tmp/DEBIAN ./control ./md5sums
    echo 2.0 >tmp/debian-binary
    ar rcv pkg-name_1.0-1.deb tmp/debian-binary tmp/control.tar.gz tmp/data.tar.gz

.phony: clean
clean:
    -rm -fr tmp

#Package: pkg-name
#Version: 1.0
#Section: net
#Priority: optional
#Architecture: all
#Essential: no
#Installed-size: 100
#Maintainer: Name <mail@here>
#Depends: optional dependencies
#Description: short descr
# long descr
    
por 04.10.2014 / 22:42