在服务器是linux环境下 将python项目打包成deb可以很方便的进行项目的安装,分发,持续集成。充分发挥linux包管理工具的便捷性,下面就用一个简单的例子进行说明
开发一个基于web.py的项目 将其打包 并安装到linux服务器上
1.新建web.py的项目
MyDemo/app/hello.py
2.创建deb包的文件结构
deb的文件结构主要包含DEBIAN和软件具体的安装目录(/etc /usr),在DEBIAN目录下必须有control文件用来描述deb包,在项目目录下创建
MyDemo_deb/DEBIAN/control
编辑control,具体的含义可以自行百度,其实字面意思也是比较清楚的
Package: demo
Version: 1.0.0
Architecture: amd64
Maintainer: me
Description: test deb
3.创建Makefile文件
Makefile.builddeb (名字自行指定)
现在目录结构如下
编辑 Makefile.builddeb实现预编译
version = 1.0.0
deb_dir = MyDemo_deb
all: builddir createdeb clean
echo "OK"
builddir:
mkdir -p $(deb_dir)/usr/local/myDemo
cp -rf app/* $(deb_dir)/usr/local/myDemo/
createdeb:
dpkg-deb -b $(deb_dir) demo_$(version)_amd64.deb
clean:
rm -rf $(deb_dir)/usr/local/myDemo/*
分析一下
1.创建2个变量,一个为版本号,另一个deb文件结构名称,在Makefile的同级目录下
2.创建默认目标all,包含3个伪目标builddir createdeb clean完成项目的打包和清除(注意编辑每一个伪目标的时候,使用tab,不然会出错)
4.项目目录执行打包命令
make -f Makefile.deb 成功会在项目目录下生产demo_1.0.0_amd64.deb的deb包 然后执行dpkg -i demo_1.0.0_amd64.deb安装 app下的py文件被拷贝到/usr/local/myDemo下 大家可以根据linux目录用途把自己的项目拷贝到相应的目录下