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包了

使用rpmbuild制作jdk的包_Centos下使用rpmbuild以及checkinstall制作RPM包相关推荐

  1. python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析

    Scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 在 Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的 ...

  2. linux下强制卸载命令,强制删除rpm包的方法

    删除软件 要删除软件非常简单,只要执行下面的命令就行: # rpm –e xanim 这时,用户要注意使用的是软件的名称xanim,而不是软件包的名称xanim-27.64-3.i386.rpm. 如 ...

  3. CentOS8下安装MySQL8.0.27(rpm包安装方式)

    目录 一.下载 二.解压 三.按顺序安装rpm包 四.启动 五.找到初始密码 六.修改密码并授权 七.开启防火墙,允许外网访问 一.下载 下载地址:https://dev.mysql.com/down ...

  4. linux mysql5.7.9下载_关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式

    环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...

  5. 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式

    环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...

  6. linux 监听数据包,linux下网络监听与发送数据包的方法(即libpcap、libnet两种类库的使用方法)...

    linux下可以用libpcap函数库实现监听数据包,使用libnet 函数库发送数据包 安装: 在命令行下apt-get install 就可以了 libpcap的使用: /*author hjj ...

  7. linux下程序制作rpm包,制作rpm包

    这文章我不记得在那转的了,已经有一段时间了 如何在linux或CentOS下制作RPM包 但我觉得单纯明白用.spec生成rpm是不够的.常见有两个原因值得我们去了解用如何用源码制作rpm: 引用 1 ...

  8. 制作nginx和php的rpm包

    rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八 ...

  9. linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包

    一.环境准备 1.1 安装RPM打包.测试必备开发工具 $ yum install -y rpm-build rpmlint rpmdevtools 1.2 安装打包.编译所需的依赖软件 $ yum ...

最新文章

  1. python一点基础都没有的怎么办-Python基础常见问题总结(一)
  2. Logstash完成ELK集群
  3. ubuntu mysql汉字写入只写入了一个字符
  4. 编程必备的32个修养,你占了几个?
  5. [Java基础]反射获取成员方法并使用练习
  6. tomcat默认连接数_Tomcat的默认连接器
  7. 思维导图网页版、临时使用推荐工具——画图本
  8. 线性阵列、圆周阵列、曲线阵列
  9. ZetCode 绘图教程
  10. Galaxy Fold可折叠屏手机何时能发售?三星自己也不知道
  11. 【事件驱动】【数码管识别】(C++动态链接库的封装和调用)
  12. matlab 多属性权重,多属性决策的权重确定方法及matlab 程序
  13. C/C++游戏项目教程:《雷霆战机》
  14. int函数使用方法c语言,int函数(int函数的使用方法举例)
  15. oracle 实用记录
  16. 安卓系统监控任务管理器App推荐
  17. 云渲染解决方案,CPU渲染,GPU渲染
  18. 可移植bit-field与driverlib兼容的C2000控制器工程模板创建及SysConfig配置
  19. [POI2005]DWU-Double-row
  20. java日语_java中常用日语词汇整理

热门文章

  1. k8s,盘他!k8s的五种控制器类型解析
  2. 提示“User Profile Service服务未能登录,无法加载用户配置文件。”
  3. 专业级特效logo片头ae模板素材
  4. Spring Boot一个问题就干趴下了
  5. kubernetes: CPU 和内存单位解释、metric-server接口调用
  6. 常用端口及端口范围(学习笔记)
  7. php要怎么使用imagettftext_手机微信如何使用北斗导航?我们要怎么下载
  8. ROM PROM EPROM EERROM FLSAH区别
  9. 如何让2010 excel同时显示两个窗口
  10. 注册公司法人与股东哪个风险大