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打包工具的更多相关文章

  1. rpm打包工具---FPM

    FPM的安装:fpm是由ruby gem仓库里面安装的所以要先装ruby.yum安装的ruby版本是1.8.7版本,使用gem命令会报错: >= 1.9.3,所以要安装一个比1.9.3版本高的 ...

  2. 以libfuse为例介绍rpm打包工具rpmbuild的使用和SPEC文件的编写

    一.rpmbuild命令的安装 yum install rpm-build 二.用法 rpmbuild -bb XXXX.spec或者rpmbuild -ba XXX.tar.gz 三.目录概述 rp ...

  3. 使用FPM打包工具打rpm包

    使用FPM打包工具打rpm包 一:安装ruby环境和gem命令 fpm 是 ruby写的,因此系统环境需要ruby且版本必须大于1.8.5 # yum -y install ruby rubygems ...

  4. FPM打包工具 可以把源码包制定为rpm包 是自动化部署的环节

    注意部FPM时的环境一定要跟生产环境的系统版本最好是保持一至,我第一次测试没通过,(我在CENTOS7和部属FPM打好的包在Centos6.x和安装,结果失败) 1:安装 FPM打包工具的依赖包: [ ...

  5. 【centos7常用技巧】RPM打包

    一.RPM打包的目的 1.当目标机中不存在编译环境时,可以先在本地环境中编译打包,然后直接在目标机中用rpm -ivh *.rpm安装即可. 2.当需要在目标机中安装多个软件或者增加多个文件时,可以将 ...

  6. linux 版本控制及rpm打包

    版本控制 subversion:是一个自由/开源的版本控制系统,在subversion管理下,文件和目录可以超越时空subversion允许你数据恢复到早期版本,或者是检查数据修改历史许多人将版本控制 ...

  7. RPM打包原理、示例、详解及备查

    原文地址:https://blog.csdn.net/qq_16542775/article/details/80961213 RPM(Redhat Package Manager)是用于Redhat ...

  8. 使用rpm 打包开发的postgres extension

      环境准备 安装依赖包 rpmdevtools rpm-build yum install -y rpm-build rpmdevtools 初始化rpm pacakge 项目 主要是rpm 打包的 ...

  9. RPM打包原理、示例、详解及备查( 转)

    RPM(Redhat Package Manager)是用于Redhat.CentOS.Fedora等Linux 分发版(distribution)的常见的软件包管理器.因为它允许分发已编译的软件,所 ...

随机推荐

  1. springcloud系列二 搭建注册中心启动

    创建modul 然后就创建完成了 添加yml文件: server: port: eureka: client: register-with-eureka: false #单机版建议设置为false,设 ...

  2. react 中文文档案例六 (表单)

    class Reservation extends React.Component { constructor(props) { super(props); this.state = { isGoin ...

  3. 【STL基础】list

    list 构造函数: //default: list<T> l; //空的list //fill: list<T> l(n); //n个元素, 元素默认初始化 list< ...

  4. 洛谷1541(多维dp)

    走格子拿分数,直接弄dp[i]是到了第i格的最大得分可以发现是假的. 于是此题设f[i][j][k][t]代表四种步伐各用了几次可以得到的最大得分,到达的点可以直接算出来,就好转移了. const i ...

  5. 需要了解的几个Java基础点

    关键字 native:表示要调用非Java语言写函数,比如用C语言使用JNI实现的接口.比如windows环境的dll文件.举例:Object.hashcode() 位运算 << n:左移 ...

  6. Linux下如何使用Wireshark进行抓包

    1. 安装wireshark Ubuntu 14.04.3 缺省安装后, 不包含Wireshark抓包软件,因此首先需要手工进行Wireshark的安装:     apt-get update apt ...

  7. hive复杂格式array,map,struct使用

    -- 创建数据库表,以array作为数据类型 drop table if exists person; create table person( name string ,work_locations ...

  8. 在word2010中添加带滚动条的文本框

    由于文件内容过长,为了加强文章的可读性,可以添加一个带滚动条的文本框,既能使文章看起来干净整洁,同时也极大的提高了文章的可读性. 我这里对在word2010中文本框带滚动条作个介绍: 1. 打开wor ...

  9. Redis未授权访问反弹shell

    Redis未授权访问反弹shell 目标主机:10.104.11.178 攻击机:kali 攻击步骤: 1.与目标主机连接 root@kali:~# /usr/redis/redis-cli -h 1 ...

  10. Web前端常见问题

    一.理论知识 1.1.讲讲输入完网址按下回车,到看到网页这个过程中发生了什么 a. 域名解析 b. 发起TCP的3次握手 c. 建立TCP连接后发起http请求 d. 服务器端响应http请求,浏览器 ...