练习Deb的打包流程。本文章为一次小练习的记录,操作过程多少有瑕疵,可能不适合实践参考。“实训撷英”专栏将有更专门的打包介绍。

文章部分内容来源于我的实训工作文档:《练习1过程文档(改进)》、《练习2过程文档(改进)》。规范的打包过程请参考《麒麟软件打包规范》。

Deb的二进制文件打包

创建DEBIAN文件夹、etc、opt、usr文件夹。

目录格式:

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

企业老师给出的意见:

control文件中包含空的关键字,应该删除,如section无对应信息则不存在。

最终的目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
.
├── 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
... ...

打包:

1
sudo dpkg -b project project_v1.0.0_amd64.deb

安装:

1
sudo dpkg -i project_v1.0.0_amd64.deb

新程序

运行效果

卸载:

1
2
3
4
sudo dpkg -r project

# 干净卸载:
sudo dpkg -P sublime-text

参考:deb打包流程步骤_逐渐江江江江化的博客-CSDN博客_deb打包

问题解决

开始菜单图标显示不出来的问题

请注意:图标目录Icons的名称和位置进行正确的设置、以及放置。参看上文给的目录树。

比如正确的放置方法时:icons/hicolor/128x128/下,还需要建立apps文件夹,里面放置png图标。

打包报错:软件包名字错误

注意,“Package”字段的内容,用“-”(减号)不用“_"(下划线)哦,否则会报以下错误:

借shibo同学的图

打包报错:与本机架构不符

1
sudo dpkg --add-architecture amd64

参考:Ubuntu使用dpkg查看与修改architecture的用法_qiuchangyong的博客-CSDN博客

Deb源码打包

下载源码压缩包,解压。

1
tar zxvf p7zip.tar.gz

将解压后的文件移动到构造好的目录中,得到以下目录结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.
├── 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目录下执行指令:

1
dh_make --createorig -s

生成debian文件夹。

image-20220506102802357

修改debian/control

image-20220506104427558

在rules中添加Override:

image-20220506104934917

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

image-20220506110213565

执行debuild命令:

1
2
3
4
debuild -i -us -uc -b

# 生成过程需要补充安装以下软件(Build-Depends)
sudo apt-get install debhelper

这时,在源码文件的上一级目录会多出几个文件,其中就包括deb包:

image-20220506110901935

执行安装:

1
sudo dpkg -i p7zip_16.02_all.deb

查看安装效果:

1
sudo dpkg -l p7zip

image-20220428215252343

可以正常卸载:

1
sudo dpkg -P p7zip

卸载后查找不到p7zip。

image-20220506111234325

Deb源码打包(野生方法)

从网上找来的自己摸索的方法。可能不符合麒麟软件的打包规范。这是初次练习的成果。

安装需要的工具:

1
2
3
sudo apt-get install debmake
sudo apt-get install python3-debia
sudo apt-get install build-essential

生成debian文件夹配置文件:

1
debmake -e unknow@unknow.cn -p p7zip -u 16.02 -f "unknow unknow" -n

命令解释:

  • 邮件地址 unknow@unknow.cn
  • 软件包名 p7zip
  • 软件版本号 16.02
  • 作者全名 unknow unknow

命令执行后,会多出debian文件夹:

QQ截图20220427123914

编辑debian/control

QQ截图20220427235600

生成deb包:

1
2
3
4
sudo dpkg-buildpackage -us -uc -tc

# 生成过程需要补充安装以下软件(Build-Depends)
sudo apt-get install debhelper

这是,在源码文件的上一级目录会多出几个文件,其中就包括deb包:

QQ截图20220427230246

执行安装:

1
sudo dpkg -i p7zip_16.02_amd64.deb

查看安装效果:

1
sudo dpkg -l p7zip

QQ截图20220427235449

参考:debmake - CSDN

其他

虚拟机Kylin系统的安装

请参看:使用VirtualBox安装Kylin桌面版操作系统 - 简书 (jianshu.com)

屏幕调大的命令:

1
xrandr -s 1920x1200_60 # 在麒麟终端输入

自己多试一下:

或者在麒麟桌面设置那里调,一劳永逸。

tree命令

安装:

1
$ sudo apt-get install tree

使用:

1
2
$ tree
$ tree -d # 仅列出目录

参考:linux tree命令,Linux tree命令实例详解_章鱼老师的博客-CSDN博客