您的位置:首页 > 运维架构 > Linux

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

2016-03-22 23:26 525 查看
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任务的添加情况均成功。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  centos rhel rpm