基于ARM架构的Linux系统下打包麒麟Deb安装包

查看python版本

it0@it0-pc:~/桌面/luffy$ python3 -V
Python 3.8.10

查看pip版本

it0@it0-pc:~/桌面/luffy$ pip3 -V
pip 24.1.2 from /usr/local/lib/python3.8/dist-packages/pip (python 3.8)

将工程打包生成一个可执行文件

注意一定要保证python程序在电脑上可以正常运行!!!!!!! 该安装第三方库的安装库,该安装扩展的安装扩展!!!!!!!

python3 main.py

当前项目目录结构

.
├── config
├── DB
├── horizontalSliderUI.py
├── icons
├── main.py
├── ui
└── utils

安装pyinstaller

pip3 install pyinstaller

检查pyinstaller安装成功

pyinstaller -v

在python代码项目目录执行以下命令

pyinstaller -F -w main.py
# 可以通过pyinstaller --help查看帮助

此时项目结构 (产生了build、dist、main.spec)文件和文件夹

.
├── build
├── config
├── DB
├── dist
├── horizontalSliderUI.py
├── icons
├── main.py
├── main.spec
├── ui
└── utils

dist目录中的main文件就是编译好的二进制文件。 此时从当前目录创建一个test文件夹把二进制移动到该目录 此时test目录结构为:

.
└── main

把程序的依赖配置目录啥的都放到test目录下(此处为test示例 根据自己实际情况来)

.
├── DB
│   ├── log
│   │   └── log.txt
│   └── user_DB.db
└── main

此时终端到test目录下执行./main文件测试程序是否可以正常启动,如有问题就看终端上的报错,没有问题则进行下一步。我这是显示没有config下的user_setting.yaml,所以把config文件放到了main可行性文件的上一级目录,一般不会出现这种问题,大部分是py代码写的不规范所导致的

把可执行程序和依赖文件打包成.deb文件

在当前位置新建makedeb目录,然后按照以下结构创建目录结构,以下是我makedeb目录下的结构

├── DEBIAN
└── usr
    ├── lib
    └── share
        ├── applications
        └── icons

将test目录直接移动到lib目录下并且对应的config也要复制过来

├── DEBIAN
└── usr
    ├── lib
	│   └── config
	│   ├── user_setting.yaml
    │   └── test
    │       ├── DB
    │       │   ├── log
    │       │   │   └── log.txt
    │       │   └── user_DB.db
    │       └── main
    └── share
        ├── applications
        └── icons

到DEBIAN目录新增control文件,内容如下(自行百度含义):

Package: debpacktest
Version: 1.0.0
Architecture: arm64
Maintainer: luffy
Description: just a test

在/usr/share/applications下制作桌面图标 test.desktop文件

[Desktop Entry]
Name=debpacktest
Comment=An example
Exec=/usr/lib/test/main #可执行文件路径
Icon=/usr/share/icons/icc.ico #图标路径
Terminal=false #是否运行同时打开终端
Type=Application
X-Ubuntu-Touch=true
Categories=Development

为这个文件添加可执行权限

chmod +x test.desktop

在/usr/share/icons/文件夹下放icc.ico图标(图标名自定义跟上边配置呼应) 此时makedeb的目录结构如下:

├── DEBIAN
│   └── control
└── usr
    ├── lib
	|   └── config
	|   │   ├── user_setting.yaml
    │   └── test
    │       ├── DB
    │       │   ├── log
    │       │   │   └── log.txt
    │       │   └── user_DB.db
    │       └── main
    └── share
        ├── applications
        │   └── test.desktop
        └── icons
            └── icc.ico

到这里,一个基本的deb软件包就大功告成了。 我们返回到makedeb的上级目录。我们执行

sudo dpkg -b makedeb makedeb_1.0.0_arm64.deb

包的命名要符合规范,我这里是随便打的。 检验的话,可以输入(安装deb包),有桌面端的话,手动执行也可以

sudo dpkg -i makedeb_1.0.0_arm64.deb

我在应用列表里看到了我的程序 如果要卸载,请执行

sudo dpkg -r makedeb

参考链接 https://blog.csdn.net/u013541325/article/details/114954959 https://blog.csdn.net/qq_43790749/article/details/118027929

北溟有鱼QAQ博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论