• tengine rpm制作


    最近又在centos6.4下折腾tengine了,刚好不久前看了rpm包的制作方法,所以又有了搞个rpm包的想法。

    1 安装centos的开发环境集成包及tengine的依赖包

    1 yum groupinstall "Development Tools"
    2 yum install pcre-devel
    3 yum install openssl openssl-devel

    2 创建tengine rpm包,用非root用户test

    1 su - test
    2 mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}

    3 在家目录编写.rpmmacros(就是上一篇说的自定义制作路径的文件)

    1 #.rpmmacros
    2 %_topdir /home/test/rpmbuild
    3 %_tmppath /home/test/rpmbuild/tmp
    4 %buildroot /home/test/rpmbuild/BUILDROOT
    5 %_prefix   /

    4 在家目录里创建制作目录rpmbuild

    1 rpmbuild/
    2 ├── BUILD
    3 ├── RPMS
    4 ├── SOURCES
    5 │   └── tengine-1.5.0.tar.gz
    6 ├── SPECS
    7 │   └── tengine.spec
    8 ├── SRPMS
    9 └── tmp

    5 tengine.spec内容

    01 Name:       tengine
    02 Version:    1.5.0
    03 Release:    1
    04 Vendor:     Taobao
    05 Summary:    GUN Tengine X86_64
    06 License:    GPL
    07 Source:     tengine-1.5.0.tar.gz
    08 Group:      System Enviroment/Daemons
    09 URL:        http://tengine.taobao.org/
    10 Packager:   guol@oschina.com
    11 %description
    12 Taobao tengine package
    13  
    14  
    15 %prep
    16 %setup -q
    17 ./configure  --prefix=/etc/nginx/
    18  
    19 make
    20 %install
    21 make DESTDIR=$RPM_BUILD_ROOT install
    22 %clean
    23 [ "$RPM_BUILD_ROOT" != "/" ] && rm -rf "$RPM_BUILD_ROOT"
    24 make clean
    25  
    26 %files
    27 %defattr (-,root,root)
    28 /etc/nginx/

       注意:在centos 6.0上使用rpmbuild制作rpm包如果出现File not found: /root/rpmbuild/BUILDROOT/…的错误,看是centos 6中的rpmbuild topdir已经改变,为了能兼容centos 5的spec文件,需要对topdir进行修改

    1 编辑/usr/lib/rpm/macros文件:
    2 %_topdir                %{getenv:HOME}/rpmbuild
    3 修改为:
    4 %_topdir                %{_usrsrc}/

    6 开始生产rpm包

    1 #在test家目录
    2 rpmbuild -ba ./rpmbuild/SPECS/tengine.spec

        如果没有错误,则会在rpmbuild/RPMS目录下生成相关rpm包。这只是简单的制作过程,如果要做深度定制,可以针对安装前后执行的脚本做定制。


      注:以上配置文件在centos6.4上测试通过

  • 相关阅读:
    HDU 2376 树形dp|树上任意两点距离和的平均值
    POJ2342 树形dp
    Codeforces 699D Fix a Tree 并查集
    第七届山东省ACM省赛
    [转]override和new的区别
    [转]C#的各种命名规范
    [转]DotNetBar.Bar作为容器使用的方法及Text更新原理
    [转]WPF: ShowDialog() 切换到其他应用窗口后,再切换回来无法让子窗口总在最上方
    c#校验主程序本身的MD5
    [转]WinForm登陆:窗体间的数据传递
  • 原文地址:https://www.cnblogs.com/ruiy/p/tengineRPMBuild.html
Copyright © 2020-2023  润新知