首页 > 其他 > 详细

CentOS、RHEL、SUSE平台的rpm包的简单制作

时间:2016-03-23 06:35:29      阅读:386      评论:0      收藏:0      [点我收藏+]

rpm的制作工具rpmbuild,软件包名rpm-build,这里以CentOS6.7系统为例来讲解。如果系统未安装,则配置yum源后安装即可 yum install rpm-build -y 。

技术分享

rpmbuild制作rpm包的目录topdir使用配置文件macrofiles来配置, /usr/lib/rpm/macros,/usr/lib/rpm/macros.* ,~/.rpmacros 文件。

技术分享

可查询默认topdir路径为各用户家目录下rpmbuild目录

技术分享

也可以使用命令查询:

CentOS/RHEL5:rpmbuild --showrc | grep macrofiles

CentOS/RHEL6:rpmbuild --showrc | grep topdir

技术分享

也可以自定义topdir目录,比如这里我们定义到 /usr/src/centos/rpmbuild ,创建文件~./rpmmacros,加入 %_topdir    /usr/src/centos/rpmbuild 

技术分享

查看topdir目录已经变成我们自定义的目录了

技术分享

创建topdir目录与rpmbuild需要的目录

mkdir -p /usr/src/centos/rpmbuild/{BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS}

技术分享

按照实际的需求编写相关文件,如这里实现安装monitor的rpm包自动将两个脚本monitorCPU.sh、monitorMEM.sh安装到/opt/monitor/目录下,并添加到root用户的crontab计划任务,每隔20分钟运行一次脚本。

编写/usr/src/centos/rpmbuild/SPECS/monitor.spec文件,内容如下:

%define __spec_pre_post true

%define __spec_pre_pre true

%define __spec_build_post true

%define __spec_build_pre true

%define __spec_install_post true

%define __spec_install_pre true

%define __spec_clean_post true

%define __spec_clean_pre true

%define _binary_filesgigest_algorithm 1

%define _build_binary_file_digest_algo 1

%define _binary_payload wq.gzdio



Name:monitor

Version:1.0

Release:1

Summary:none

AutoReqprov:no

BuildRoot:%buildroot

Prefix:/opt/monitor

Group:default

License:GPLv3+

Vendor:CentOS

URL:none

Packager:monitor

Requires:procps


%description

monitor Cpu and Memory function


%pre


%post

cat >> /var/spool/cron/root << EOF

*/20 * * * * /opt/monitor/monitorCPU.sh

*/20 * * * * /opt/monitor/monitorMEM.sh

EOF


%build


%install


%clean


%files


%defattr(-,root,root,0755)

/opt/monitor/monitorCPU.sh

/opt/monitor/monitorMEM.sh


%changelog

技术分享

创建目录,拷贝脚本文件并加上执行权限。

mkdir -p /usr/src/centos/rpmbuild/BUILDROOT/monitor-1.0-1.x86_64/opt/monitor/ 

cp monitorCPU.sh /usr/src/centos/rpmbuild/BUILDROOT/monitor-1.0-1.x86_64/opt/monitor/

cp monitorMEM.sh /usr/src/centos/rpmbuild/BUILDROOT/monitor-1.0-1.x86_64/opt/monitor/

chmod +x /usr/src/centos/rpmbuild/BUILDROOT/monitor-1.0-1.x86_64/opt/monitor/*

技术分享

目录文件结构如下:

技术分享

执行命令生成rpm包 rpmbuild -bb /usr/src/centos/rpmbuild/SPECS/monitor.spec

技术分享

生成的rpm包位于/usr/src/centos/rpmbuild/RPMS/x86_64/目录下

技术分享

安装测试rpm包前查看系统是否存在

技术分享

安装rpm包 rpm -ivh /usr/src/centos/rpmbuild/RPMS/x86_64/monitor-1.0-1.x86_64.rpm 

技术分享

查看rpm包安装状态,以及脚本部署以crontab任务的添加情况均成功。

技术分享

本文出自 “服务器系统交流” 博客,请务必保留此出处http://1130739.blog.51cto.com/1120739/1754123

CentOS、RHEL、SUSE平台的rpm包的简单制作

原文:http://1130739.blog.51cto.com/1120739/1754123

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!