使用rpmbuild制作jdk的包_Centos下使用rpmbuild以及checkinstall制作RPM包

本文详细介绍了如何使用rpmbuild工具创建RPM包,包括binary包和source包的区别,rpm包的构成,以及spec文件的关键内容。通过设置rpmbuild的各个目录、宏文件和spec文件,可以定制包的安装路径、添加预安装和后安装脚本,实现对软件包的个性化定制。此外,还讲解了%prep、%build、%install、%files等关键阶段的作用。
摘要由CSDN通过智能技术生成

rpmbuild 生成rpm包。

包有两种,binary包和source包。

rpm包有包信息和内容组成。rpm -qpi nginx.rpm可以查看到包的信息。

如:

relocations:如果非空,表示包可以安装到新的目录。在安装包的时候,使用--relocate=/usr/loca/=/home/cyx/ 这样来修改包的安装位置。

不过可能不能使用,因为包是二进制的,可能程序编译的时候使用了绝对路径。

rpm包制作由rpmbuild来生成。rpmbuild用到了几个目录:

BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS

BUILD:build过程执行的目录

RPMS:最后生成的RPM包的位置

SOURCES:源文件位置

SPECS:spec文件的位置,rpmbuild使用spec文件的描述信息来build包

SRPMS:源代码rpm包的位置

rpm宏文件定义了rpmbuild使用的一些参数和变量。

如上面几个目录(rpmbuild的基地)在哪儿。默认是在/usr/local/....下面。

在自己的家目录下面建立.rpmmacros文件,可以在里面设置自己的

%_tmppath /home/admin/tmp build建立包的时候,install到的目录。

%_topdir /home/admin/rpm    上面6个目录的位置。默认是/usr/...

%_prefix /home/admin/install  前缀

spec文件是指导rpmbuild生成包的关键文件。放在SPECS目录下面:

----------------------------------example------------------------------------------------------------------

[root@v092019 SPECS]# cat nginx-0.8.54.spec

Name:nginx                                                                                                                包名

Summary:nginx-server!                                                                                              摘要

Version:0.8.54                                                                                                            版本

Release:1                                                                                                                   发行

Group:taobao.com                                                                                                      组织

License:GPL                                                                                                               许可

URL:http://www.nginx.com/                                                                                          官网

BuildRoot:%{_tmppath}/%{name}-%{version}-%{release}-root                                   build的目录,会在这里build出二进制

Source:%{name}-%{version}.tar.gz                                                                             源码文件的名称,放在SOURCES目录下

Prefix:%{_prefix}                                                                                                          前缀,有这个值,包生成时候就有relocations。

Packager:nginx                                                                                                           包名称

%description                                                                                                               下面是对包的描述

nginx-httpd-server

%prep                                                                                                                          下面是准备工作

%setup -q                                                                                                                     这里使用了内建命令,解开源码包到BUILD目录

%build                                                                                                                          开始建立包,对应于configure和make,在BUILD目录

CFLAGS="-g"  ./configure

make -j `cat /proc/cpuinfo | grep processor | wc -l`

%install                                                                                                                         安装包到Buildroot

make DESTDIR=$RPM_BUILD_ROOT install

%files                                                                                                                            最后,把文件打包进rpm包,这里指定要打包进去的文件,权限和属主,这里的目录是相对于Buildroot的目录,但是要以'/'开头。

%defattr(755,daemon,daemon)

/usr/local/%{name}

%pre                                                                                                                             在用rpm命令安装包前执行这里的动作

echo nginx,preinstall

%post                                                                                                                             在用rpm命令安装完后执行这里的动作

echo nginx,afterinstall,done

%preun                                                                                                                           在卸载前执行这里的动作

echo nginx,uninstall

%postun                                                                                                                          在卸载后执行这里的动作

echo nginx,uninstall,done

---------------------------------------------end-----------------------------------------------------------------

这样我们就可以定制自己的rpm包了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值