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 [email protected]

%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参数

时间: 2024-08-04 11:37:28

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: 7.1.0 Release: 1%{?dist} Summary: php Group: Applications/Server License: GPLv2 URL: http://www.51.com Source0: %{name}-%{version}.tar.gz Source1: php

nginx的rpm包制作

nginx prm包 详细制作流程 1.准备工作 1.1:我这里准备了一台centos7的虚拟主机 1.2:官网下载最新的稳定版nginx源码包,地址:http://nginx.org/nginx-1.10.2.tar.gz 1.3:官网下载nginx的控制脚本,地址:https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/ 1.4:手动安装一遍,看看都需要哪些依赖,所需依赖:gcc-c++,pcre-

制作nginx和php的rpm包

rpm包的制作真几把烦,制作php的rpm花了我3天时间,因为是根据线上环境来做的,依赖的第三方库太多,本来想把所有的第三方库做进php包,后来发现在rpmbuild -bb的时候非常耗时,而且乱七八糟的错满天飞,好不容易全部解决了第一次成功第二次又不行了,因此决定能用yum安装的就用yum安装,没有的才用源码. 1.安装rpm-build和rpmdevtools yum install rpmdevtools rpm-build 2.生成制作rpm包的必备目录,没有安装rpmdevtools则

Fpm 之 Nginx rpm 包制作

Fpm 之 Nginx rpm 包制作 一.下载nginx编译安包机器上 wget http://nginx.org/download/nginx-1.12.2.tar.gz 二.安装nginx的编译所需的依赖包 yum -y install pure lib gcc-c++ openssl openssl-devel 三.编译安装nginx tar -zxvf nginx-1.12.2.tar.gz cd nginx-1.12.2 ./configure --prefix=/app/nginx

RPM包制作方法

一.RPM介绍 RPM 前是Red Hat Package Manager 的缩写,本意是Red Hat 软件包管理,顾名思义是Red Hat 贡献出来的软件包管理:现在应为RPM Package Manager的缩写.在Fedora.Redhat.Mandriva.SuSE.YellowDog等主流发行版本,以及在这些版本基础上二次开发出来的发行版采用: RPM包中除了包括程序运行时所需要的文件,也有其它的文件:一个RPM包中的应用程序,有时除了自身所带的附加文件保证其正常以外,还需要其它特定

Ngins rpm包制作,spec配置文件

Name:           nginx Version:        1.4.2 Release:        1%{?dist} Summary:        nginx from source Group:          System Environment/Daemons License:        GPLv2 URL:            http://nginx.org Source0:        %{name}-%{version}.tar.gz Source

linux之rpm包制作

难点:spec文件的编写 1,首先安装rpm-build命令 yum install rpm-build 2,介绍spec编写规则: #ll #drwxr-xr-x  2 root root 4096 Jul 29 13:50 BUILD #drwxr-xr-x  2 root root 4096 Jul 29 13:51 RPMS #drwxr-xr-x  2 root root 4096 Jul 29 13:51 SOURCES #drwxr-xr-x  2 root root 4096 J

linux rpm包制作

Linux Rpm 包制作 一.简介 RPM(Red Hat Package Manager)的最常见的软件包管理器. 软件包管理器 rpm,deb(dpkg) RPM包命名:name-version-release.architecture.rpm. xorg-x11-xsm-1.0.2 -4.fc6.i386.rpm 包名       版本号 编译次数 厂商 平台 RPM功能:安装.卸载.升级.查询和验证. rpm     -ivh              安装 rpm     -Uvh

rpm包制作(待实验)

作者:firefoxbug 时间:July 18, 2014 rpm包命名规范 对于rpm包的命名符合如下规范. %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}.rpm NAME: rpm包名字 VERSION: rpm包版本号(主版本号.次版本号.测试号) RELEASE: rpm包编译发布次数(第几次编译发布) ARCH: cpu架构(比如i386和x86_64,i386兼容x86_64,noarch的代表一些列脚本) 比如nginx-1.4.0-24.x86.r