zoukankan      html  css  js  c++  java
  • 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.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参数

  • 相关阅读:
    An easy problem
    Big Event in HDU
    第二个div+css前端项目
    第一个网站前端
    通过jquery.transit.min.js插件,实现图片的移动
    anchor_target_layer中的bounding regression
    faster rcnn结构
    论文灵感
    anchor_target_layer层其他部分解读
    numpy add
  • 原文地址:https://www.cnblogs.com/xiaoming279/p/6251149.html
Copyright © 2011-2022 走看看