使用rpmbuild制作jdk的包_Centos下使用rpmbuild以及checkinstall制作RPM包
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包相关推荐
- python scapy 抓包_Python3下基于Scapy库完成网卡抓包解析
Scapy是一个可以让用户发送.侦听和解析并伪装网络报文的Python程序.这些功能可以用于制作侦测.扫描和攻击网络的工具. 在 Python 代码中可以通过 sniff 函数调用抓包分析,并对抓到的 ...
- linux下强制卸载命令,强制删除rpm包的方法
删除软件 要删除软件非常简单,只要执行下面的命令就行: # rpm –e xanim 这时,用户要注意使用的是软件的名称xanim,而不是软件包的名称xanim-27.64-3.i386.rpm. 如 ...
- CentOS8下安装MySQL8.0.27(rpm包安装方式)
目录 一.下载 二.解压 三.按顺序安装rpm包 四.启动 五.找到初始密码 六.修改密码并授权 七.开启防火墙,允许外网访问 一.下载 下载地址:https://dev.mysql.com/down ...
- linux mysql5.7.9下载_关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...
- 关于linux-Centos 7下mysql 5.7.9的rpm包的安装方式
环境介绍>>>>>>>>>>>>>>>>>> 操作系统:Centos 7.1 mysql数据 ...
- linux 监听数据包,linux下网络监听与发送数据包的方法(即libpcap、libnet两种类库的使用方法)...
linux下可以用libpcap函数库实现监听数据包,使用libnet 函数库发送数据包 安装: 在命令行下apt-get install 就可以了 libpcap的使用: /*author hjj ...
- linux下程序制作rpm包,制作rpm包
这文章我不记得在那转的了,已经有一段时间了 如何在linux或CentOS下制作RPM包 但我觉得单纯明白用.spec生成rpm是不够的.常见有两个原因值得我们去了解用如何用源码制作rpm: 引用 1 ...
- 制作nginx和php的rpm包
rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八 ...
- linux制作openssl rpm,CentOS 7 定制 OpenSSL RPM 包
一.环境准备 1.1 安装RPM打包.测试必备开发工具 $ yum install -y rpm-build rpmlint rpmdevtools 1.2 安装打包.编译所需的依赖软件 $ yum ...
最新文章
- python一点基础都没有的怎么办-Python基础常见问题总结(一)
- Logstash完成ELK集群
- ubuntu mysql汉字写入只写入了一个字符
- 编程必备的32个修养,你占了几个?
- [Java基础]反射获取成员方法并使用练习
- tomcat默认连接数_Tomcat的默认连接器
- 思维导图网页版、临时使用推荐工具——画图本
- 线性阵列、圆周阵列、曲线阵列
- ZetCode 绘图教程
- Galaxy Fold可折叠屏手机何时能发售?三星自己也不知道
- 【事件驱动】【数码管识别】(C++动态链接库的封装和调用)
- matlab 多属性权重,多属性决策的权重确定方法及matlab 程序
- C/C++游戏项目教程:《雷霆战机》
- int函数使用方法c语言,int函数(int函数的使用方法举例)
- oracle 实用记录
- 安卓系统监控任务管理器App推荐
- 云渲染解决方案,CPU渲染,GPU渲染
- 可移植bit-field与driverlib兼容的C2000控制器工程模板创建及SysConfig配置
- [POI2005]DWU-Double-row
- java日语_java中常用日语词汇整理