nginx-1.8.0 rpm包制作

本文档详细介绍了如何从源码开始制作Nginx的RPM软件包,包括安装必要的工具、设置工作目录、编写SPEC文件等步骤,并提供了rpmbuild命令的使用技巧。

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.1.tar.gz  nginx.conf  test.conf

4、编写SPEC文件

Name:            nginx    # 名称    
Version:         1.8.1    # 版本    
Release:        1%{?dist}  # 版本号
Summary:         High performance web server    # 简介    

Group:            Applications/Server    # 组名,可通过less /usr/share/doc/rpm-4.8.0/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 0755 %{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 0755 %{SOURCE5} $RPM_BUILD_ROOT/opt/wwwroot/www.51.com/www/index.php

%pre   # 安装前执行脚本

%post  # 安装后执行脚本
ln -sv /usr/local/app/nginx-1.8.1 /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.1

%clean
#[ "$RPM_BUILD_ROOT" != "/" ] && rm -rf $RPM_BUILD_ROOT

%files  # 哪些文件放入rpm包
%defattr (-,root,root,0755)
%{_prefix}
%attr(0755,root,root) /etc/rc.d/init.d/%{name}
%doc /opt/wwwroot/www.51.com/www/index.php
%attr(0755,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参数

转载于:https://www.cnblogs.com/xiaoming279/p/6251149.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值