Debian、Ubuntu源码编译制作安装包(一)
Debian、Ubuntu系列linux操作系统制作安装包相较于CentOS更简便一些,如“dpkg -b”指令即可重新打包。如果需要源码级制作安装包则更困难一些,接下来,我们逐步分析Debian、Ubuntu源码编译制作安装包的步骤。
章节预览:
1. 生成源码文件夹
2. 修改control文件
3. 修改rules文件
4. 生成安装包
章节内容:
1. 生成源码文件夹
首先我们准备一个可以编译通过的源码包,如openssl-1.1.1k.tar.gz,可从https://www.openssl.org(官方网站)中下载。
接下来创建一个文件夹,把源码包拷贝进来,参考图1:
图1 放置源码包
在控制台中输入 debmake -a openssl-1.1.1k.tar.gz,参考图2:
图2 生成安装包文件夹指令
现在我们得到openssl-1.1.1k和openssl_1.1.1k.orig.tar.gz(openssl-1.1.1k.tar.gz的软连接),进入openssl-1.1.1k文件夹,参考图3、图4:
图3 生成安装包文件夹
图4 进入安装包文件夹
2. 修改control文件
进入debian文件夹,打开control文件,参考图5:
图5 control文件
control文件中的内容:
Source: openssl //源码包名称Section: unknown //程序的类别,常见的有utils, net, mail, text, devel等Priority: optional //程序对于系统的重要程度,如required, standard, optional, extra等Maintainer: test //包的制作者,联系信息等Build-Depends: debhelper (>=11~) //构建版本Homepage: https://www.test.com //主页Package: openssl //包的安装名称,查询或卸载包的时候使用Architecture: any //包所支持的架构,编译后自动转换为amd64、arm64等,amd64可在x86_64等架构使用,arm64可在arch64等架构使用等,应根据实际架构填写Multi-Arch: foreignDepends: //所依赖的其他包和库文件,如果是依赖多个包和库文件,采用逗号隔开Description: test //包的相关描述
简单的control文件包括如下内容:
Source: opensslSection: unknownPriority: optionalMaintainer: testStandards-Version: 1.1.1Package: opensslArchitecture: anyMulti-Arch: foreignDescription: test
3. 修改rules文件
打开rules文件,参考图6:
图6 rules文件
rules文件修改如下:
#!/usr/bin/make -f
# You must remove unused comment lines for the released package.
#export DH_VERBOSE = 1
#export DEB_BUILD_MAINT_OPTIONS = hardening=+all
#export DEB_CFLAGS_MAINT_APPEND = -Wall -pedantic
#export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed%:dh $@override_dh_auto_configure:./configoverride_dh_auto_clean:dh_auto_cleanoverride_dh_auto_install: dh_auto_install override_dh_auto_modules:dh_auto_modulesoverride_dh_auto_build: dh_auto_buildoverride_dh_usrlocal:
其中:
override_dh_auto_configure
生成配置文件,需要按照源码生成方式写入,如增加–prefix=/usr 等等,./configure --prefix=/usr
override_dh_auto_clean
清除编译缓存文件
override_dh_auto_install
编译完成后的安装
override_dh_auto_build
编译源码
override_dh_usrlocal
编译过程中遇到dh_usrlocal相关错误,用来跳过这一步、
4. 生成安装包
准备工作完成了,现在我们回到debian上一级目录(openssl-1.1.1k),控制台中输入 dpkg-buildpackage,参考图7:
图7 生成安装包
指令执行完成并且没有报错时,回到首次创建的目录(源码包同级目录),到这里完整的制作流程完成了,参考图8:
图8 安装包及相关文件
现在我们生成了deb安装包和deb制作包、文件,之后可以通过修改制作包中的内容(如增加自定义文件)重新生成deb安装包。
后续文章讲解制作包中增加自定义文件方式,及常见问题跳过等内容。
Debian、Ubuntu源码编译制作安装包(一)相关推荐
- Debian、Ubuntu源码编译制作安装包(二)
在<Debian.Ubuntu源码编译制作安装包(一)>文章中描述了dpkg基本制作安装包过程,本篇文章描述如何增加patch及解决出错问题. 章节预览: 5. 增加patch 6. 修改 ...
- debian源码编译安装mysql5.6_MySQL 5.6 Linux Debian/Ubuntu源码编译安装 LNMP之MySQL
安装所需依赖和工具apt-get install make gcc g++ libncurses5-dev cmake bison 配置cmake编译参数cmake . -DCMAKE_INSTALL ...
- 模仿qq客户端应用源码且带安装包
这款源码案例是模仿qq客户端应用源码且带安装包,大家可以参考一下吧,也是比较完整的一款Android源码项目. 源码下载: http://code.662p.com/view/1931.html 00 ...
- linux下源码安装vim,ubuntu 源码编译安装最新的vim 8.0
为什么要源码编译安装VIM? 因为我要安装ycm,但是ubuntu14.04仓库vim版本低 教程步骤: 1, 核对系统版本 2, 删除系统自带的vim 3, 编译安装vim 4, 检验vim的安装 ...
- ubuntu 源码编译libtorch
## pytorch/libtorch qq群: 1041467052 有一点儿感悟就是: 一定要去官网找一手资料,百度出来的都是个人根据官网来的,这个就随便看看了. 官网:https://githu ...
- git安装 perl ubuntu_【Git】Linux Ubuntu——源码编译安装Git 2.x 版本
Git是一个开源的分布式版本控制系统,可以有效,高速的处理从很小到非常大的项目版本管理.Git与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持. ...
- Ubuntu源码编译安装开源飞信OpenFetion
基于 GTK2 的开源飞信最近发布了 1.8 版本,添加飞信群支持.本次 1.8 版本有如下更新: 添加了飞信群功能 添加了桌面位置记忆功能 修复了内存溢出等段错误 减小了大图标模式的图标尺寸 更换了 ...
- Ubuntu源码编译安装PCL
ubuntu上可以通过命令apt install libpcl-dev安装PCL,但是一般版本都比较老,所以我喜欢下载最新的代码然后编译安装 步骤如下: 安装依赖以及第三方库:Boost,Eigen, ...
- php编译安装memcache,ubuntu源码编译安装memcached和php-memcache 扩展
1.编译前,先确认gcc.make.patch等编译工具是否已安装,并可正常使用. 2.Libevent是一个异步事件处理软件函式库,以BSD许可证释出.Memcached 依赖Libevent,因 ...
最新文章
- NLP-基础知识-004(生成模型)
- Selenium 功能总结大集合
- 【AI视野·今日Robot 机器人论文速览 第十七期】Thu, 1 Jul 2021
- Python快速使用jira模块调用Jira接口
- 树莓派桌面没有时间_树莓派3B/3B+开启手机远程桌面和终端,没有屏幕和电脑的伙伴们有福啦!...
- android点击按钮修改文本,如何在android中每3秒动态更改按钮文本?
- miniprogrampatch 提供 watch 和 computed 特性
- APP性能测试之jmeter
- 以个性化为需求如何选择ITSM系统?
- windows 多开微信
- 勒索病毒解密SQL数据库修复文档文件服务器中毒远程处理数据恢
- Handlebars 小技巧
- go 库 viper 配置解析神器
- 微信小程序电商实战-首页(上)
- 罗克韦尔ABSourceKeyTools工具制作
- http协议及http协议和tcp协议的区别
- 构造函数、深拷贝、浅拷贝
- php实现贴吧功能,贴吧/盖楼的技术实现(PHP)
- 剑指Offer JZ45 扑克牌顺子(Java)
- 信创政务文档云平台助力数据互联互通,加快电子政务建设