[software development] Deepin 下将源代码打包成 .deb文件教程
Tofloor
poster avatar
玄圭SwenGway
deepin
2024-12-27 12:46
Author

Deepin 下如何将源代码打包成 .deb 文件

将源代码打包成 .deb 文件是一个方便的方式,能让用户快速安装和使用你的软件。以下是一个详细的教程,适合初学者理解。


一、什么是 .deb 文件?

.deb 文件是 Debian 和基于 Debian 的系统(如 Deepin、Ubuntu 等)使用的安装包格式。它包含软件的可执行文件、配置文件、依赖关系和安装脚本。


二、准备工作

  1. 安装打包工具 打开终端,输入以下命令安装必要的工具:

    sudo apt update
    sudo apt install build-essential devscripts debhelper dh-make fakeroot lintian
    
  2. 准备源代码 假设你的项目目录结构如下:

    myproject/
    ├── src/          # 源代码
    ├── Makefile      # 构建文件
    └── README.md     # 说明文件
    

    如果你的项目没有 Makefile,也可以直接提供编译后的可执行文件。


三、创建 Debian 打包目录

  1. 压缩源代码:

    tar czvf myproject.tar.gz myproject
    
  2. 进入项目根目录,然后运行以下命令创建 debian 文件夹:

    cd myproject
    dh_make -s -f ../myproject.tar.gz
    

    命令解释

    • -s 表示打包为简单的单一二进制包。
    • ../myproject.tar.gz 是之前创建的源代码压缩包。

    执行后,会生成一个 debian/ 文件夹,里面有打包需要的模板文件。


四、配置打包信息

  1. 编辑控制文件 打开 debian/control 文件,填写如下内容:

    Source: myproject
    Maintainer: 你的名字 <你的邮箱>
    Section: utils
    Priority: optional
    Build-Depends: debhelper-compat (= 12)
    Standards-Version: 4.5.0
    Homepage: https://example.com
    
  2. 安装路径 如果项目有 Makefile,打开 debian/rules 文件,添加如下内容:

    %:
    	dh $@
    
    override_dh_auto_install:
    	install -d $(DESTDIR)/usr/bin
    	install -m 755 src/myproject $(DESTDIR)/usr/bin/
    

    这里的意思是把 src/myproject 复制到 /usr/bin,这样用户安装后就可以直接使用。

  3. 添加元数据 编辑 debian/changelog 文件,填写软件的版本和发行说明:

    dch --create --package myproject --newversion 1.0-1 "Initial release"
    
  4. 其他可选配置

    • debian/copyright: 软件版权信息。
    • debian/docs: 安装时需要展示的文档文件列表(如 README.md)。
    • debian/postinstdebian/prerm: 安装和卸载脚本。

五、打包和检查

  1. 编译打包 在项目根目录下运行以下命令:

    debuild -us -uc
    

    成功后,会在上一级目录生成 .deb 文件。

  2. 检查打包结果 使用以下命令检查 .deb 文件是否符合规范:

    lintian ../myproject_1.0-1_amd64.deb
    
  3. 安装测试dpkg 安装 .deb 文件:

    sudo dpkg -i ../myproject_1.0-1_amd64.deb
    

六、分发和分享

  • 通过网络发布.deb 文件上传到你的官方网站或 GitHub。
  • 共享给其他用户 用户只需下载 .deb 文件,用 dpkg 安装即可。

如果有不对或者疏漏之处,请指出,大家一起讨论

Reply Favorite View the author
All Replies
sammy-621
deepin
2024-12-27 13:12
#1

先赞后看,养成习惯kissing_heart

Reply View the author
辉辉
deepin
2024-12-27 14:02
#2

楼主,如果可以帮忙打包个transmission remote gui这个软件吧,但是v23后就不能用了,程序能够“运行”,任务栏会有各齿轮样(正常是有图标的,不是齿轮)的图标但是就是不出现软件界面,不知道是那里问题。

Reply View the author
鲜衣怒马
deepin
2024-12-27 14:23
#3

先赞后看,养成习惯kissing_heart

Reply View the author
把一切操作变成GUI
deepin
Backbone of ecological co-construction group
2024-12-27 14:45
#4
辉辉

楼主,如果可以帮忙打包个transmission remote gui这个软件吧,但是v23后就不能用了,程序能够“运行”,任务栏会有各齿轮样(正常是有图标的,不是齿轮)的图标但是就是不出现软件界面,不知道是那里问题。

商店里的玲珑版也用不了吗?

Reply View the author
青稚
deepin
2024-12-27 15:48
#5

已收录到觅知园资源整理

Reply View the author
remyxo
deepin
2024-12-27 21:20
#6

学习一下打包方法。

Reply View the author
玲珑沙
deepin
2024-12-28 09:24
#7

挺好。有个问题请教下 dpkg -i ,apt install ,图形安装 ,这三种安装方式到底有没有区别。一个程序,有多个deb的如何安装

Reply View the author