说明
打包发布可以不用编译源代码安装,看起来是更方便的软件拷贝方式,下面是一个dpkg-buildpackage工具的最简打包过程实例
先建立一个helloworld程序
- main.c
#include <stdio.h>
int main() {
printf("Hello, World!\n");
return 0;
}
- CMakeLists.txt, cmake也有打包工具,这里使用dpkg-buildpackage打包(没跑通cpak QAQ)
cmake_minimum_required(VERSION 3.10)
project(helloworld C)
set(CMAKE_C_STANDARD 99)
add_executable(helloworld main.c)
- 简单测试下
mkdir build
cd build
cmake ..
make
建立deb打包相关配置文件
- 在build目录里建立debian,debian下面建立下面几个文件
touch control
touch install
touch rules
touch compat
- control
Source: helloworld
Section: utils
Priority: optional
Maintainer: Your Name <your.email@example.com>
Build-Depends: debhelper (>= 11)
Standards-Version: 4.1.4
Homepage: http://example.com
Package: helloworld
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: A simple hello world program
A simple hello world program written in C.
- install
helloworld usr/bin/
- rules, 注意这里dh %@这一行前面的缩进,拷贝过去报错的话建议手敲,应该是两个空格
#!/usr/bin/make -f
%:
dh $@
- compat
11
- 生成changelog,使用dch命令,进入一个交互流程,会让你选择自己的编辑器并创建一条日志
dch --create
- 最小修改,注意修改第一行的包名和版本号:
打包测试
- build目录下
dpkg-buildpackage -us -uc
- 会在根目录下生成
- 测试,可以正常安装/运行/卸载
- 测试结束时的目录结构:
- 依赖少什么就装什么,应该没有特殊注意的部分