当前位置: 首页 > 工具软件 > py2deb > 使用案例 >

在Linux环境将python脚本打deb包

左丘恩
2023-12-01

前言

自己编写的python脚本代码,自己运行还好,让别人用的时候,不方便传输,也不方便运行,制作成deb包后完美解决,网上搜索了很多文章,都没有一次打包成功过,故总结这样一份文档教程。

我当前使用的系统:
uos专业版

打包需要的库

sudo apt-get install build-essential
sudo apt-get install debmake

制作debian配置文件目录

源码目录下,创建debian的配置文件目录。在程序源代码目录下有一个叫做 debian 的新的子目录。这个目录中存放着许多文件,我们将要修改这些文件来定制软件包行为。其中最重要的文件当属 control, changelog, copyright, 以及 rules, 所有的软件包都必须有这几个文件。

执行命令快速创建配置文件目录

debmake -e myemail@foxmail.com -p rekols-monitor -u 1.0.0 -f "my"  -n -x1

-e:邮件地址
-p:软件包名
-u:软件版本号
-f:作者全名
-n: 这个参数是核心,直接从源码生成配置文件
-x1:这个参数的默认值就是x1,这里是说明这个参数的作用,deb包的构建过程有很多钩子方法,x1只是包含一些项目信息和构建信息的版本,x0就只有构建信息,但是x0参数已经被弃用,x2、x3、x4你会发现生成文件很多,一般没有特殊情况,最简即可,即使用默认参数x1即可

deb包目录

MYDEB/
├── debian
│ ├── changelog
│ ├── compat
│ ├── control
│ ├── copyright
│ ├── README.Debian
│ ├── rules
│ ├── source
│ │ ├── format
│ │ └── local-options
│ └── watch
├── script
├── script1.py
├── script2.py
├── script3.py
└── script4.py

修改control文件

原始文件内容如下,第 1–7 行是源代码包的控制信息。第 9–13 行是二进制包的控制信息。
按照自己的需求可以修改描述信息、支持架构等等信息

Source: mydeb
Section: unknown
Priority: optional
Maintainer: my <mydeb@foxmail.com>
Build-Depends: debhelper (>=11~)
Standards-Version: 4.1.4
Homepage: <insert the upstream URL, if relevant>

Package: mydeb
Architecture: any
Multi-Arch: foreign
Depends: ${misc:Depends}, ${shlibs:Depends}
Description: auto-generated package by debmake
 This Debian binary package was auto-generated by the
 debmake(1) command provided by the debmake package.

PS.
详细的设置可以查看文末官方文档(4.1,control部分)

创建install文件

install文件的目的是,安装deb包的时候,能把对应的脚本文件和share文件安装到指定的目录
例如,假设某个二进制文件 src/bar没有被默认安装,则应让 install 呈现成这样:

script /usr/lib/mydeb
script1.py /usr/lib/mydeb
script2.py /usr/lib/mydeb
script3.py /usr/lib/mydeb
script4.py /usr/lib/mydeb

创建links文件

links文件的目的,对需要直接执行的脚本文件创建链接

/usr/lib/mydeb/script /usr/bin/mydeb

进行打包

debian目录下还有很多文件可以按照自己的需求进行定制,不过这里用不上,暂时不做修改示列,比如最重要的rules文件,直接决定打包的成功与否

打包可以直接执行以下命令进行打包:

sudo dpkg-buildpackage

完成后,会在上级目录生成mydeb_1.0.0_amd64.deb,自此,打包结束。

这篇教程相对很简单,很多文件的修改都没有涉及,主要是当前用不上,如果感兴趣的可以查看官方文档的详细说明!


官方制作deb的方法

 类似资料: