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 ...
随机推荐
- fastjson 混淆注意事项
使用fastjson 注意事项,主要表现: 1.加了符号Annotation 的实体类,一使用就会奔溃 2.当有泛型属性时,一使用就奔溃 在调试的时候不会报错,当你要打包签名混淆包的时候,就会出现上述 ...
- Linux系统sar命令解析
安装 如果系统没有该命令请安装: apt-get install sysstat yum install sysstat 安装完毕: vi /etc/default/sysstat ENABLED=& ...
- response和request的区别以及常见问题解决
request是请求,即客服端发来的请求 response是响应,是服务器做出的响应 --------------------------------------------------------- ...
- [AlwaysOn Availability Groups]AlwaysOn Ring Buffers
AlwaysOn Ring Buffers 一些AlwaysOn的诊断信息可以从SQL Server ring buffers.或者从sys.dm_os_ring_buffers.ring buffe ...
- mysql小技巧
将一列值赋予另一列 会遇到新增一列, 需要用其他列的值来初始化这一列 或者根据业务条件把某行的某列值直接赋予到其他列. 行号 列1 列2 1 aaa ddd 2 bbb ccc UPDATE 表 SE ...
- 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)
目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...
- TypeScript 2.0候选版(RC)已出,哪些新特性值得我们关注?
注:本文提及到的代码示例下载地址 - Runnable sample to introduce Typescript 2.0 RC new features 作为一个Javascript的超集, Ty ...
- 基于modelsim-SE的专业进阶仿真流程
基于modelsim-SE的专业进阶仿真流程 通过<基于modelsim-SE的简单仿真流程>和<调用altera IP核的仿真流程>是否感受到仿真流程中的繁琐步骤,特别是在m ...
- python入门
输出用print 注释用# rang() >>> range(1,5) #代表从1到5(不包含5) [1, 2, 3, 4] >>> range(1,5,2) #代 ...
- Mysql字符串字段判断是否包含某个字符串的3种方法
方法一: SELECT * FROM users WHERE emails like "%b@email.com%"; 方法二: 利用MySQL 字符串函数 find_in_set ...