练习Deb的打包流程。本文章为一次小练习的记录,操作过程多少有瑕疵,可能不适合实践参考。“实训撷英”专栏将有更专门的打包介绍。
文章部分内容来源于我的实训工作文档:《练习1过程文档(改进)》、《练习2过程文档(改进)》。规范的打包过程请参考《麒麟软件打包规范》。
Deb的二进制文件打包
创建DEBIAN文件夹、etc、opt、usr文件夹。
目录格式:

在DEBIAN文件夹下创建control文件:

企业老师给出的意见:
control文件中包含空的关键字,应该删除,如section无对应信息则不存在。
最终的目录结构:
.
├── DEBIAN
│ └── control
├── etc
├── opt
│ └── sublime-text
│ ├── changelog.txt
│ ├── crash_reporter
│ ├── Lib
│ ├── libcrypto.so.1.1
│ ├── libssl.so.1.1
│ ├── Packages
│ ├── plugin_host-3.3
│ ├── plugin_host-3.8
| ├── Icon
│ └── sublime_text
└── usr
└── share
└── applications
│ └── sublime_text.desktop
└──icons
└── hicolor
├──128x128
│ └── apps
│ └── sublime-text.png
└──256x256
... ...
打包:
sudo dpkg -b project project_v1.0.0_amd64.deb
安装:
sudo dpkg -i project_v1.0.0_amd64.deb




卸载:
sudo dpkg -r project
# 干净卸载:
sudo dpkg -P sublime-text
参考:deb打包流程步骤_逐渐江江江江化的博客-CSDN博客_deb打包
问题解决
开始菜单图标显示不出来的问题
请注意:图标目录Icons的名称和位置进行正确的设置、以及放置。参看上文给的目录树。
比如正确的放置方法时:icons/hicolor/128×128/下,还需要建立apps文件夹,里面放置png图标。
打包报错:软件包名字错误
注意,“Package”字段的内容,用“-”(减号)不用“_”(下划线)哦,否则会报以下错误:

打包报错:与本机架构不符
sudo dpkg --add-architecture amd64
参考:Ubuntu使用dpkg查看与修改architecture的用法_qiuchangyong的博客-CSDN博客
Deb源码打包
下载源码压缩包,解压。
tar zxvf p7zip.tar.gz
将解压后的文件移动到构造好的目录中,得到以下目录结构:
.
├── opt
│ └── apps
│ └── p7zip
│ ├── Asm
│ │ └── x86
│ ├── C
│ ├── check
│ ├── contrib
│ ├── CPP
│ ├── DOC
│ ├── GUI
│ ├── man1
│ └── Utils // 不应该存放源码
└── usr
└── share
├── applications
└── icons
└── hicolor
企业老师给出的意见:
不应该将源码文件全部存放到/opt/apps/p7zip目录下(因为是二进制软件包,不应该将源码存放到对应目录下);不应该有空目录/usr/share/icons/hicolor
在/p7zip-16.02目录下执行指令:
dh_make --createorig -s
生成debian文件夹。

修改debian/control

在rules中添加Override:

在debian下创建install文件,并写入以下内容:

执行debuild命令:
debuild -i -us -uc -b
# 生成过程需要补充安装以下软件(Build-Depends)
sudo apt-get install debhelper
这时,在源码文件的上一级目录会多出几个文件,其中就包括deb包:

执行安装:
sudo dpkg -i p7zip_16.02_all.deb
查看安装效果:
sudo dpkg -l p7zip

可以正常卸载:
sudo dpkg -P p7zip
卸载后查找不到p7zip。

Deb源码打包(野生方法)
从网上找来的自己摸索的方法。可能不符合麒麟软件的打包规范。这是初次练习的成果。
安装需要的工具:
sudo apt-get install debmake
sudo apt-get install python3-debia
sudo apt-get install build-essential
生成debian文件夹配置文件:
debmake -e unknow@unknow.cn -p p7zip -u 16.02 -f "unknow unknow" -n
命令解释:
- 邮件地址 unknow@unknow.cn
- 软件包名 p7zip
- 软件版本号 16.02
- 作者全名 unknow unknow
命令执行后,会多出debian文件夹:

编辑debian/control

生成deb包:
sudo dpkg-buildpackage -us -uc -tc
# 生成过程需要补充安装以下软件(Build-Depends)
sudo apt-get install debhelper
这是,在源码文件的上一级目录会多出几个文件,其中就包括deb包:

执行安装:
sudo dpkg -i p7zip_16.02_amd64.deb
查看安装效果:
sudo dpkg -l p7zip

其他
虚拟机Kylin系统的安装
请参看:使用VirtualBox安装Kylin桌面版操作系统 – 简书 (jianshu.com)
屏幕调大的命令:
xrandr -s 1920x1200_60 # 在麒麟终端输入
自己多试一下:

或者在麒麟桌面设置那里调,一劳永逸。
tree命令
安装:
$ sudo apt-get install tree
使用:
$ tree
$ tree -d # 仅列出目录