Ubuntu下deb包制作总结

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

从厂商官网上下载的驱动包一般都是源码包,在安装源码包的时候很有可能缺少各种依赖包,对用户而言是不友好的。而将源码包制作为deb包后,用户只需要安装该deb包即可完成驱动的安装,不会出现缺包的情况。

提示:以下是本篇文章正文内容,下面案例可供参考

制作步骤

系统安装

制作deb包的时候,若要制作适配某个系统的deb包,需要在该系统下进行制作,否则会出现deb包安装不上的情况。如:若要制作ubuntu20.04系统的deb驱动包,则需要先安装ubuntu20.04系统,再在该系统上通过源码包制作。在ubuntu20.04系统上制作的deb包,也只能够在ubuntu20.04系统上使用,其他系统不兼容。从上可知,若要制作十个系统的deb驱动,需要安装十个系统,这种情况下使用vmware虚拟机是一个比较好的选择。

在安装ubuntu系统的时候,注意安装ssh服务,这样方便使用SSH工具连接传输文件。另外在使用镜像时,注意使用不带live的镜像文件。带live镜像的文件可能需要连接外网才能安装,但在连接外网安装系统的时候,可能会自动把内核更新掉,这样制作出来的deb包可能不能在基础镜像中安装。

配置外网yum源

由于deb包是通过源码编译制作的,在编译源码的时候可能会出现缺包的情况,而且制作deb包的工具checkinstall也需要通过外网安装,所以需要先配置外网yum源,配置方法如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/ae59f5bd29254e1cabb8e5ec4facce1f.png)
<think>嗯,用户想了解Ubuntu下如何制作deb。我需要先回忆一下deb的基本概念和制作流程。DebDebian系统,Ubuntu,使用的软件格式,通常含编译好的程序、配置文件、依赖信息等。制作deb的方法主要有两种:使用dpkg-deb手动打,或者使用dh_make和debuild工具配合自动生成模板。 首先,可能需要先安装必要的工具,比如dh-make、devscripts、dpkg-dev这些。用户可能对这些工具不熟悉,所以得列出具体的安装命令,比如sudo apt install dh-make devscripts dpkg-dev。 接下来,手动打的方式适合简单的项目,用户需要创建特定的目录结构,比如DEBIAN控制目录和文件,比如control文件。这时候要注意目录的权限和结构是否正确,比如usr/local/bin下的可执行文件。但手动打可能无法处理复杂的依赖关系或维护脚本,所以可能推荐更自动化的方法。 然后,使用dh_make自动生成模板可能更适合大多数情况。用户需要进入源码目录,运行dh_make,选择类型(单二进制、库、内核模块等)。然后修改自动生成的模板文件,比如changelog、control、copyright、rules等。特别是rules文件,可能需要根据项目调整编译和安装步骤。例如,如果使用make,可能需要配置--prefix到debian/tmp目录下,以便正确安装文件到中。 然后,使用debuild生成deb,这时候要注意处理可能的签名问题,用户可能不想处理GPG签名,所以需要建议添加-us -uc参数跳过签名步骤。同时,用户可能需要解决依赖问题,安装缺失的构建依赖,比如通过sudo apt install build-essential。 可能还需要提到一些常见问题,比如目录结构的权限,文件路径的正确性,以及如何检查生成的deb内容。比如用dpkg -c查看,或者用dpkg -I查看控制信息。此外,可能还需要提醒用户安装lintian进行静态检查,确保符合规范。 另外,用户可能有不同的项目类型,比如C/C++项目使用autotools或CMake,或者Python项目,可能需要不同的打方法。但这里可能需要保持简单,先介绍通用方法,再提及特殊情况。或者可能用户的项目比较简单,不需要复杂的配置,所以重点放在dh_make流程上。 需要确保步骤清晰,分点说明,让用户能一步步跟随。同时,注意LaTeX格式的要求,行内公式用$...$,独立公式用$$...$$,但在这个问题中可能用不到数学公式,但需要确保其他格式正确,比如代码块的正确标记,目录结构的示例等。 最后,可能还需要提供验证步骤,比如安装生成的deb,检查文件是否放置正确,以及卸载测试。同时提醒用户如果遇到问题,可以查阅debian政策手册或相关文档,或者使用lintian工具检查错误。 总结下来,回答的结构应该是:简介deb,安装工具,两种方法(手动和自动),详细步骤,常见问题提示,验证方法。这样用户能逐步操作,避免遗漏关键步骤。</think>以下为Ubuntu系统下deb制作的分步指南,采用**自动化标准流程**和**手动打方案**双路线: --- ### 一、环境准备 ```bash sudo apt update sudo apt install dh-make devscripts build-essential dpkg-dev ``` --- ### 二、自动化打(推荐) #### 1. 准备源码目录 ```bash mkdir myapp-1.0 && cd myapp-1.0 # 放入程序文件(如可执行文件、配置文件等) echo "echo 'Hello Deb'" > myapp chmod +x myapp ``` #### 2. 生成Debian模板 ```bash dh_make --createorig -s -n # -s表示单二进制,-n不提示版权信息 ``` 此时生成`debian/`目录,内含打配置文件 #### 3. 编辑关键文件 - **修改control文件**: ```bash nano debian/control ``` 需填写: ```text Source: myapp Section: utils Priority: optional Maintainer: Your Name <[email protected]> Build-Depends: debhelper-compat (= 13) Standards-Version: 4.5.1 Package: myapp Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends} Description: 示例软件 这是一个演示deb的示例程序 ``` - **可选修改其他文件**: `debian/changelog`(版本变更记录)、`debian/copyright`(版权声明) #### 4. 编译打 ```bash dpkg-buildpackage -us -uc # 跳过签名检查 ``` 生成的deb文件位于上级目录:`../myapp_1.0-1_amd64.deb` --- ### 三、手动打(简单案例) #### 1. 创建目录结构 ```bash mkdir -p myapp_1.0/DEBIAN myapp_1.0/usr/local/bin cp myapp myapp_1.0/usr/local/bin/ ``` #### 2. 编写control文件 ```bash nano myapp_1.0/DEBIAN/control ``` 内容: ```text Package: myapp Version: 1.0 Architecture: amd64 Maintainer: Your Name <[email protected]> Description: 手动打示例 Section: utils Priority: optional ``` #### 3. 生成deb ```bash dpkg-deb --build myapp_1.0 # 生成myapp_1.0.deb ``` --- ### 四、验证与安装 #### 1. 检查deb内容 ```bash dpkg -c myapp_1.0.deb # 查看文件结构 dpkg -I myapp_1.0.deb # 查看元数据 ``` #### 2. 安装测试 ```bash sudo apt install ./myapp_1.0.deb myapp # 应输出"Hello Deb" ``` #### 3. 卸载验证 ```bash sudo apt remove myapp ``` --- ### 五、高级技巧 1. **添加安装脚本**: - 在`debian/`目录下创建`postinst`(安装后脚本)、`prerm`(卸载前脚本)等 - 需添加可执行权限:`chmod +x debian/postinst` 2. **依赖管理**: 在`debian/control`的`Depends`字段声明依赖(如`libssl-dev (>= 1.1.1)`) 3. **规范检查**: ```bash lintian ../myapp_1.0-1_amd64.deb # 检查合规性 ``` > **注意**:复杂项目建议使用`dh_make`自动化流程,支持自动处理编译安装、依赖解析等。完整文档可通过`man dh_make`或访问[Debian Packaging Guide](https://www.debian.org/doc/manuals/maint-guide/)查阅。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小韩不想努力了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值