静看光阴荏苒
不管不顾不问不说也不念

fpm打包python程序(deluge1.3.15 skip hash)

这种打包方法,基于上游源码本身有setup.py,本文拿deluge1.3.15的一个修改版演示。

首先肯定还是要安装fpm的,然后还需要装一个pip:

apt -y install ruby ruby-dev rubygems build-essential python-pip

使用gem安装fpm:

gem install fpm

使用pip安装setuptools(fpm打包python必须用到的依赖)

pip install --upgrade setuptools

创建工作目录/从上游下载源码解压:

mkdir -p build && cd build
wget https://git.lala.im/imlala/Deluge1.3.15-SkipHashCheck-Docker/raw/branch/master/config/deluge-1.3.15.tar.gz
tar -xzvf deluge-1.3.15.tar.gz

然后就可以用fpm打包了:

fpm -s python -t deb \
-m "imlala <1062951199@qq.com>" \
--url "https://www.lala.im" \
--description "bittorrent client written in Python/PyGTK" \
--post-install postinst.sh \
-d "python-twisted >= 18.9.0-3" \
-d "python-openssl >= 19.0.0-1" \
-d "python-setuptools >= 40.8.0-1" \
-d "python-xdg >= 0.25-5" \
-d "python-chardet >= 3.0.4-3" \
-d "python-libtorrent >= 1.1.11-2" \
-d "python-notify >= 0.1.1-4" \
-d "python-pygame >= 1.9.4.post1+dfsg-3" \
-d "python-glade2 >= 2.24.0-5.1+b1" \
-d "python-mako >= 1.0.7+ds1-1" \
-d "intltool >= 0.51.0-5" \
-d "xdg-utils >= 1.1.3-1" \
-d "geoip-database >= 20181108-1" \
-p deluge-skiphash_1.3.15_amd64.deb \
deluge-1.3.15/setup.py

注意上面的参数里面带了一个post-install,在一个deb包内,除了之前提过的control控制文件外,还有4个非常常用的文件,分别是preinst/postinst/prerm/postrm,这里的post-install即对应postinst,意思是在软件包安装完成之后要执行的脚本。

通过这个post-install,我们可以写一个bash脚本,创建deluge需要用到的systemd服务文件,然后自动启动这个服务。

类似下图这样的,自己随意发挥。。

fpm打的python包,包名一般都是python-xxxxx,例如这篇文章打包完成之后,实际的包名是python-deluge,如果是用dpkg安装的,要卸载的话指定包名是python-deluge而非deluge-skiphash。

赞(1)
未经允许不得转载:荒岛 » fpm打包python程序(deluge1.3.15 skip hash)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿