nginx-1.8.0 rpm包制作
1、安装rpm-build
# yum install rpm-build
2、创建制作RPM包目录
# cat /root/.rpmmacros
%_topdir /root/rpmbuild
%_prefix /usr/local/app/%{name}-%{version}
# cd /root/rpmbuild
# mkdir -pv {BUILD,BUILDROOT,RPMS,SOURCES,SPECS,SRPMS} 目录意义:
BUILD 源码解压后存放目录
RPMS 制作完成后RPM包存放目录
SOURCES 收集的源码或配置文件,补丁存放位置
SPECS spec文件存放目录
SRPMS 存放SRMPS生成目录
3、将源码拷贝到/root/rpmbuild/SOURCES目录下
# ls SOURCES/
fcgi.conf index.php init.nginx nginx-1.8..tar.gz nginx.conf test.conf
4、编写SPEC文件
Name: nginx # 名称
Version: 1.8. # 版本
Release: %{?dist} # 版本号
Summary: High performance web server # 简介 Group: Applications/Server # 组名,可通过less /usr/share/doc/rpm-4.8./GROUPS 查看
License: GPLv2 # 许可
URL: http://www.51.com
Source0: %{name}-%{version}.tar.gz # 用到的source
Source1: init.nginx
Source2: nginx.conf
Source3: test.conf
Source4: fcgi.conf
Source5: index.php BuildRequires: gcc,make
Requires: pcre,pcre-devel,openssl-devel,chkconfig
BuildRoot: %_topdir/BUILDROOT # make install的测试安装目录 %description
It's a nginx compile by hexm@51.com. %prep # 准备阶段,解压源码并cd进去
%setup -q %build # 编译
./configure \
--prefix=%{_prefix} \
--user=nooby \
--group=nobody \
--with-pcre \
--with-http_gzip_static_module \
--with-http_stub_status_module \
--with-http_ssl_module
make %{?_smp_mflags} %install # 安装
[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT
make DESTDIR=$RPM_BUILD_ROOT install
%{__install} -p -D -m %{SOURCE1} $RPM_BUILD_ROOT/etc/rc.d/init.d/nginx
%{__install} -p -D %{SOURCE2} $RPM_BUILD_ROOT/%{_prefix}/conf/nginx.conf
mkdir $RPM_BUILD_ROOT/%{_prefix}/conf/vhosts &> /dev/null
%{__install} -p -D %{SOURCE3} $RPM_BUILD_ROOT/%{_prefix}/conf/vhosts/test.conf
%{__install} -p -D %{SOURCE4} $RPM_BUILD_ROOT/%{_prefix}/conf/fcgi.conf
%{__install} -p -D -m %{SOURCE5} $RPM_BUILD_ROOT/opt/wwwroot/www..com/www/index.php %pre # 安装前执行脚本 %post # 安装后执行脚本
ln -sv /usr/local/app/nginx-1.8. /usr/local/nginx &> /dev/null
chkconfig --add nginx && chkconfig nginx on
[ ! -d /data/logs/nginx ] && mkdir -pv /data/logs/nginx &> /dev/null %preun # 卸载前执行的脚本 %postun # 卸载后执行的脚本
rm -rf /usr/local/nginx
rm -rf /usr/local/app/nginx-1.8. %clean
#[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT %files # 哪些文件放入rpm包
%defattr (-,root,root,)
%{_prefix}
%attr(,root,root) /etc/rc.d/init.d/%{name}
%doc /opt/wwwroot/www..com/www/index.php
%attr(,nobody,nobody) /opt/wwwroot %changelog
5 使用rpmbuild制作rpm包
rpmbuild
-ba 既生成src.rpm又生成二进制rpm
-bs 只生成src的rpm
-bb 只生二进制的rpm
-bp 执行到pre
-bc 执行到 build段
-bi 执行install段
-bl 检测有文件没包含
可以先使用bp参数,再bc参数,再bi参数,最后再ba参数
nginx-1.8.0 rpm包制作的更多相关文章
- php-7.1.0 rpm包制作
nginx-1.8.0 rpm包制作见上篇文章:http://www.cnblogs.com/xiaoming279/p/6251149.html spec文件 Name: php Version: ...
- 制作nginx和php的rpm包
rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八 ...
- rpm包制作(待实验)
作者:firefoxbug 时间:July 18, 2014 rpm包命名规范 对于rpm包的命名符合如下规范. %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm N ...
- RPM包制作方法
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- rpm包制作介绍
RPM(Rpm Package Management)在ReadHat等发行版下被用作软件包管理程序,其将某个软件相关的文件置入一个.rpm包中,用rpm命令,我们可以方便地完成Linux下软件安装. ...
- RPM包制作教程
一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package M ...
- nginx的RPM包制作案例
使用nginx-1.12.2版本的源码软件,生成对应的RPM包软件,具体如下: - 软件名称为nginx - 软件版本为1.12.2 - RPM软件包可以查询描述信息 - RPM软件包可以安装及卸载 ...
- 实战RPM包制作
在开发中经常会用到一些rpm包,但是一直没有自己手动制作过.今天在制作的时候意外地还解决了自己以前一直困惑的问题,就是怎么制作rpm debuginfo包,类似CentOS官网那样的debuginfo ...
- 简单介绍RPM包制作方法
RPM是RedHat Package Manager(RedHat软件包管理工具)的缩写,是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中.它生成具有.RPM扩展名的文件.使用r ...
随机推荐
- iOS:frame访问、设置简化
看到一些程序都有这种写法,也不知道原创者是谁了.先在博客保存下. 在.m文件 #import "UIView+MyFrameCategory.h" @implementation ...
- React-Native坑:Invariant Violation:Application 项目名 has not been registered.
前言 在学习一门新技术的你也许有跟我一样的困惑,照着书上或者视频上的敲了.但是就是有各种问题没有出来自己想要的结果.我会将自己在这个过程中遇到的坑都记录下来,不一定全覆盖,但希望这些文章可以解决你的问 ...
- 移动端嵌入pdf.js远程请求pdf出现(206)
最近在做移动端的开发,需要嵌入pdf进行预览.看了很多的js组件后选择了pdf.js:使用起来还是比较方便的,至于使用网上有很多的教程. 但在使用过程中出现了如下一个问题(我做的是IOS系统): 问题 ...
- Android Xfermode 学习笔记
一.概述 Xfermode全名transfer-mode,其作用是实现两张图叠加时的混合效果. 网上流传的关于Xfermode最出名的图来源于AndroidSDK的samples中,名叫Xfermod ...
- ListView之性能优化
listview加载的核心是其adapter,本文通过减少adapter中创建.处理view的次数来提高listview加载的性能,总共分四个层次: 0.最原始的加载 1.利用convertView ...
- 20-C语言结束
我回去看了下5号写的.虽然今天已经21号了~,花了16天. 复习完C专题,接下来我大概会用C做一些操作系统/信息安全的小东西,会发到博客里,敬请期待! ----2016/11/21
- js异步加载的3种方式(转载)
1.defer标签 只支持IE defer属性的定义和用法: 属性规定是否对脚本执行进行延迟,直到页面加载为止.有的 javascript 脚本 document.write 方法来创建当前的文 ...
- centos6环境下搭建irc服务器
问题描述 有时候逛技术社区,经常会发现有个叫IRC的东西存在,想搭建下看看到底是个什么东西 说明: 操作系统环境为CentOS6.5_64 安装irc服务器 通过yum进行安装,命令如下: yum i ...
- 参加微软Ignite大会有感
很有幸作为MVP参加了本次微软中国的年度技术大会(Ignite).跳出技术领域,这次会议给我最大的感受是态度.这几年不论是开源现有技术,还是黑科技的发布,都给人感觉微软在逐渐变得cool,但是cool ...
- [已解决]Windows10 系统下HDMI 显示器 没有声音输出的奇怪问题
今天想用一下显示器自带的喇叭,忽然发现声音输出选项里HDMI的声音设备没了.之前开始使用这台显示器的时是用过一段时间的. 百度了一番,没发现什么线索.后来去谷歌找到这么一段文字: I'm not su ...