制作rpm和deb包

RPM

安装依赖

yum install -y rpm-build

目录说明

默认工作路径移动到用户家目录下的 rpmbuild目录里,即 $HOME/rpmbuild ,并且推荐用户在制作 rpm 软件包时尽量不要以 root 身份进行操作。

默认位置 宏代码 名称 用途
~/rpmbuild/SPECS %_specdir Spec 文件目录 保存 RPM 包配置(.spec)文件
~/rpmbuild/SOURCES %_sourcedir 源代码目录 保存源码包(如 .tar 包)和所有 patch 补丁
~/rpmbuild/BUILD %_builddir 构建目录 源码包被解压至此,并在该目录的子目录完成编译
~/rpmbuild/RPMS %_rpmdir 标准 RPM 包目录 生成/保存二进制 RPM 包
~/rpmbuild/SRPMS %_srcrpmdir 源代码 RPM 包目录 生成/保存源码 RPM 包(SRPM)
~/rpmbuild/BUILDROOT %_buildrootdir 最终安装目录 保存 %install 阶段安装的文件

rpmbuild 命令选项

-bp 只解压源码及应用补丁
-bc 只进行编译
-bi 只进行安装到%{buildroot}
-bb 只生成二进制 rpm 包
-bs 只生成源码 rpm 包
-ba 生成二进制 rpm 包和源码 rpm 包
--target 指定生成 rpm 包的平台,默认会生成 i686 和 x86_64 的 rpm 包,但一般我只需要 x86_64 的 rpm 包
--rebuild 编译提供 SRPM

rpm示例

refer

How to create an RPM package/zh-cn

RPM 包的构建 - 实例

spec参数说明

rpm 包签名

rpm 包签名

deb

deb打包参考 linux下deb包的制作(2) – 源码包和自动编译构建deb包,有些复杂,可以通过alien工具将rpm转化为deb包。

apt-get install alien
alien --to-deb hello-2.10-1.el7.x86_64.rpm
root@instance-zz3pql3l:~# dpkg -i hello_2.10-2_amd64.deb
Selecting previously unselected package hello.
(Reading database ... 164776 files and directories currently installed.)
Preparing to unpack hello_2.10-2_amd64.deb ...
Unpacking hello (2.10-2) ...
Setting up hello (2.10-2) ...
Processing triggers for install-info (6.5.0.dfsg.1-2) ...
Processing triggers for man-db (2.8.3-2) ...
root@instance-zz3pql3l:~# hello
Hello, world!
原文地址:https://www.cnblogs.com/hiyang/p/13524537.html