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
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!