制作 debian 包来安装 python

制作 debian 包来安装 python

我有两个Python脚本,我需要将它们打包到Debian包中。我已经尝试了很多事情并取得了一些成功。例如,我制作了一个 setup.py,然后用于python-stdeb创建一个包(如果我没记错的话,效果不是很好),而且我还从头开始制作了自己的包,其结构如下:

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

无论如何,事情就是这样。我得到了一个像 Debian 软件包一样的软件包,我可以使用dpkg -b project它首先构建它,然后dpkg -i package.deb安装 Debian 软件包,但是它没有安装任何东西(它确实安装了一些东西,但没有安装脚本我写的,这就是我真正想安装的)。那么,我怎样才能制作一个安装我的 Python 脚本的包呢?我不在乎他们是否转到 X11 或者我必须说“安装到~/package”。我想要的只是将我的脚本放入一个包中,以便其他人可以安装该包并拥有我的脚本。

我的猜测是我必须将元数据或其他内容放入安装文件中,但我不知道该放什么。

答案1

一种快速而简单的方法可能是使用alien,它将转换.tar.deb

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

否则使用旧方法,我使用这样的 Makefile:

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

相关内容