参考:DEB打包:快速构建一个Meta Package - YangMame
一、前提:
dh-make
dpkg-dev
linux下查看是否有这两个包: sudo apt search dpkg-dev sudo apt search dh-make 没有的话直接安装: sudo apt install dpkg-dev sudo apt install dh_make
二、构建源码包以及打包过程
1、创建工作目录
格式:包名-版本号
mkdir hello-1.0
2、初始化目录(创建debian文件)
cd hello-1.0/ dh_make --native #本地的
1)创建过程中会选择包的类型,这里选择single,输入s;
2)然后输入y确认生成
创建完之后可以在目录下看到debian目录
3、修改control文件
进入debian目录,找到control文件
cd debian/ vim control
contrl文件内容如下
Source: hello Section: unknown Priority: optional Maintainer: unknown <WYN@unknown> Build-Depends: debhelper-compat (= 12) Standards-Version: 4.4.1 Homepage: <insert the upstream URL, if relevant> #Vcs-Browser: https://salsa.debian.org/debian/hello #Vcs-Git: https://salsa.debian.org/debian/hello.git Package: hello Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: <insert up to 60 chars description> <insert long description, indented with spaces>
Source:源代码包的名称
Section是分类,这里改成misc(杂项)
Maintainer是维护者,这里随意(必须为“名字+空格+<邮箱>”的格式)
Homepage是软件的主页,没用的话可以用#注释
Package决定了你的包名(通常与源代码包名相同)
Architecture是构架支持,如果是元数据(脚本,媒体文件,文本)可以不管
Depends是依赖,这里作为示例是没有依赖的故保留原样
Description是软件介绍,不可写太长(最长60个字符,多的另外起行,用空格缩进)
4、增加changelog文件配置文件
1) 初始化的changelog文件如下
vim changelog
第一行:软件包的名称、版本号、发行版和紧急程度
第二行:长条目,记录每次在debian修订版本中做出的修改
第三行:维护者和维护者邮箱、以及修改的时间
2)增加一条changelog
dch
在changelog同级目录下,命令行输入dch,会自动生成一条changelog,如下
我们需要修改新增changelog的三行信息,改完如下,保存退出即可
其他的文件先不做修改
5、在debian同级目录下创建目录,并在hello.sh可执行文件中输入打印的语句
mkdir -p usr/bin/ cat << EOF > usr/bin/hello.sh #!/bin/bash echo hello EOF sudo chmod +x usr/bin/hello.sh
6、新建hello.install文件(文件在debian目录下)
vim debian/hello.install
内容为:
usr/* usr
这里的usr/xxx/xxx都是相对于系统的目录的路径创建的,而.install文件则是告诉包管理如何处理这些文件(将包根目录内的usr目录复制到系统的usr目录)
7、生成.dsc与源码包(debian同级目录)
dpkg-source -b .
注意:不要忘记最后的. 表示当前目录
执行完成后,会在上一级目录查看到新生成的两个文件
8、构建deb包(debian同级目录)
dpkg-buildpackage -us -uc
执行完成后(没有报错),会在上一级目录查看到生成的.deb文件
9、安装生成的包
sudo dpkg -i hello_1.0-1_amd64.deb
安装完成后,就可以执行可执行文件hello.sh来看一下效果了
hello.sh
会打印echo出的hello文件
END