rpm打包工具
http://fedoraproject.org/wiki/How_to_create_an_RPM_package
# rpm --showrc|grep _topdir
-14: _builddir	%{_topdir}/BUILD
-14: _buildrootdir	%{_topdir}/BUILDROOT
-14: _rpmdir	%{_topdir}/RPMS
-14: _sourcedir	%{_topdir}/SOURCES
-14: _specdir	%{_topdir}/SPECS
-14: _srcrpmdir	%{_topdir}/SRPMS
-14: _topdir	%{getenv:HOME}/rpmbuild
# echo %_topdir $HOME/rpmbuild > ~/.rpmmacros
# cat ~/.rpmmacros
%_topdir /root/rpmbuild
# mkdir -p ~/rpmbuild/{BUILD,RPMS/x86_64,S{OURCE,PEC,RPM}S}
# tree /root/rpmbuild/
/root/rpmbuild/
├── BUILD
│   └── monitor-agent-1.0
├── BUILDROOT
├── RPMS
│   └── x86_64
├── SOURCES
│   ├── monitor-agent-1.0
│   └── monitor-agent-1.0.tar.gz
├── SPECS
│   └── monitor-agent.spec
└── SRPMS
# monitor-agent.spec
Name:	    monitor-agent
Version:    1.0
Release:	1%{?dist}
Summary:	monitor-agent
Group:      Applications/System
License:	GPL
Source0:    %{name}-%{version}.tar.gz
BuildRoot:	%{_builddir}/%{name}-%{version}
Requires:   nagios-plugins,nrpe,net-snmp-perl,perl-XML-LibXML,perl-JSON,perl-libwww-perl,perl-XML-XPath,perl-Net-Telnet,perl-Net-DNS,perl-DBI,perl-DBD-MySQL,perl-DBD-Pg,perl-Email-Send,
%description
%prep
%setup -q
%build
%install
rm -rf %{buildroot}
mkdir -p %{buildroot}/usr/lib64/nagios/plugins
mkdir -p %{buildroot}/etc/nagios
mkdir -p %{buildroot}/etc/nrpe.d
cp -rfp centreon-plugins %{buildroot}/usr/lib64/nagios/plugins
install -m 0755 check_live_status.py %{buildroot}/usr/lib64/nagios/plugins
install -m 0755 check_live_transfer.py %{buildroot}/usr/lib64/nagios/plugins
install -m 0755 check_nfsmounts.pl %{buildroot}/usr/lib64/nagios/plugins
install -m 0644 cfg/base.cfg %{buildroot}/etc/nrpe.d
install -m 0644 cfg/app.cfg %{buildroot}/etc/nrpe.d
install -m 0644 cfg/nrpe.cfg %{buildroot}/etc/nagios
%clean
rm -rf %{buildroot}
%files
%defattr(-,root,root)
/usr/lib64/nagios/plugins/centreon-plugins
/usr/lib64/nagios/plugins/check_live_status.py
/usr/lib64/nagios/plugins/check_live_transfer.py
/usr/lib64/nagios/plugins/check_nfsmounts.pl
/etc/nagios/nrpe.cfg
/etc/nrpe.d/base.cfg
/etc/nrpe.d/app.cfg
%pre
[ -e '/etc/yum.repos.d/rpmforge.repo' ] && mv -f /etc/yum.repos.d/rpmforge.repo /etc/yum.repos.d/rpmforge.repo.rpmsave
yum clean all
%post
%preun
%postun
rm -rf /usr/lib64/nagios/plugins/centreon-plugins
rm -rf /usr/lib64/nagios/plugins/{check_live_status.py,check_live_transfer.py,check_nfsmounts.pl}
rm -rf /etc/nrpe.d/{base.cfg,app.cfg}
/etc/init.d/nrpe restart
%changelog
rpmbulid -bb monitor-agent.spec
rpm打包工具的更多相关文章
- rpm打包工具---FPM
		FPM的安装:fpm是由ruby gem仓库里面安装的所以要先装ruby.yum安装的ruby版本是1.8.7版本,使用gem命令会报错: >= 1.9.3,所以要安装一个比1.9.3版本高的 ... 
- 以libfuse为例介绍rpm打包工具rpmbuild的使用和SPEC文件的编写
		一.rpmbuild命令的安装 yum install rpm-build 二.用法 rpmbuild -bb XXXX.spec或者rpmbuild -ba XXX.tar.gz 三.目录概述 rp ... 
- 使用FPM打包工具打rpm包
		使用FPM打包工具打rpm包 一:安装ruby环境和gem命令 fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5 # yum -y install ruby rubygems ... 
- FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节
		注意部FPM时的环境一定要跟生产环境的系统版本最好是保持一至,我第一次测试没通过,(我在CENTOS7和部属FPM打好的包在Centos6.x和安装,结果失败) 1:安装 FPM打包工具的依赖包: [ ... 
- 【centos7常用技巧】RPM打包
		一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ... 
- linux 版本控制及rpm打包
		版本控制 subversion:是一个自由/开源的版本控制系统,在subversion管理下,文件和目录可以超越时空subversion允许你数据恢复到早期版本,或者是检查数据修改历史许多人将版本控制 ... 
- RPM打包原理、示例、详解及备查
		原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ... 
- 使用rpm 打包开发的postgres extension
		环境准备 安装依赖包 rpmdevtools rpm-build yum install -y rpm-build rpmdevtools 初始化rpm pacakge 项目 主要是rpm 打包的 ... 
- RPM打包原理、示例、详解及备查( 转)
		RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ... 
随机推荐
- java经典学习路线
			恩,做开发的工作已经三年多了,说起来实在是惭愧,自己的知识树还像一棵小草一样,工作中使用到了许多的知识和技术,不过系统性不够.根基不牢.并且不够深入!当然,慢慢的我也更加的清楚,我需要学习一些什么样的 ... 
- hdu3483 A Very Simple Problem  非线性递推方程2   矩阵快速幂
			题目传送门 题目描述:给出n,x,mod.求s[n]. s[n]=s[n-1]+(x^n)*(n^x)%mod; 思路:这道题是hdu5950的进阶版.大家可以看这篇博客hdu5950题解. 由于n很 ... 
- Android viewpager + fragment取消预加载
			1,在fragment中重写setUserVisibleHint方法private boolean isVisibleToUser;@Overridepublic void setUserVisibl ... 
- my.资料__2017暑假
			1.http://tieba.baidu.com/p/5254412093 http://www.pipaw.com/mhxy/345616.html [落英缤纷的树下] 地址:长寿村123,24 [ ... 
- npm常用技巧
			npm中内置了大量的实用技巧,如何高效的使用它们是一件充满挑战的事情.学会下面11个技巧,将会让你在任何项目中使用npm都会事半功倍. 1.如何打开package的主页 npm home $packa ... 
- 转发 django 初探
			https://www.cnblogs.com/franknihao/p/7682914.html https://blog.csdn.net/tang_jin2015/article/details ... 
- tomcat正常关闭,端口号占用解决 StandardServer.await: create[8005]:
			cmd进入依次输入以下三个命令 1:netstat -ano | findstr "8005"2:tasklist | findstr "5632" 3:tas ... 
- 转:Android中的Handler的机制与用法详解
			注:Message类的用法: message的几个参数都可以携带数据,其中arg1与arg2可以携带int类型,what是用户自定义的int型,这样接受者可以了解这个消息的信息. 说明:使用Messa ... 
- maven 如何将自己的jar包添加到本地仓库
			1 准备一个需要添加到本地仓库的jar包 我这里准备了一个名为mail.jar 的jar包,放到E:\Install Files目录下面 2 下面演示如何将准备的jar包添加到本地仓库 1 语法 mv ... 
- 案例53-crm练习修改客户功能实现
			1 CustomerAction 完整代码: package www.test.web.action; import java.io.File; import org.apache.commons.l ... 
