将源码编译打成rpm包----以nginx为例

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将源码编译打成rpm包----以nginx为例相关的知识,希望对你有一定的参考价值。

打包流程
准备源码软件
安装rpm-build
编写编译配置文件
编译RPM包

具体步骤

1.装工具
yum install rpm-build
安装依赖包
yum -y install gcc pcre-devel zlib-devel openssl-devel

rpmbuild -ba nginx.spec 会报错,没有文件和目录

技术图片
但是会自动在当前目录下创建一个rpmbuild目录(注意必须在用户的家目录下,本文用root用户)

技术图片
技术图片

在rpmbuild目录中

SOURCES 目录中存放源码包
BUILDROOT 是一个假根,用来做rpm包时存放目录的
SPECS 存放编译配置的spec文件
RPMS 存放生成的rpm包

2.拷贝源码包
cp nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES

3.新建SPEC文件
cd /root/rpmbuild/SPECS
vim nginx.spec 必须是以.spec结尾

spec文件解析

Name:nginx 软件名称
Version:1.8.0 软件版本
Release: 1%{?dist} 第几次制作源码包 默认为1 可随意
Summary:nginx web server 汇总信息

#Group: 组包
License:GPL 协议
URL:www.test.com 网址
Source0:nginx-1.8.0.tar.gz 源码包名字必须和源码包名字一致

#BuildRequires: 依赖关系
#Requires:

%description 详细描述
this is web server

%pre 安装前脚本
%post 安装后脚本

%prep
%setup -q 解压并且cd进去

%build
./configure --with-http_ssl_module 可自定义安装扩展模块
make %{?_smp_mflags}

%install
make install DESTDIR=%{buildroot} 执行make install

%files
%doc
/usr/local/nginx/* 压缩哪些文件

%changelog

3.使用SPEC文件编译rpm包
rpmbuild -ba /root/rpmbuild/SPECS/nginx.spec
4.查看生成的rpm包
ll /root/rpmbuild/RPMS/x86_64/
技术图片
cd /root/rpmbuild/RPMS/x86_64/
5.安装测试rpm包
rpm -qpi nginx.rpm

技术图片
rpm -qpl nginx.rpm

技术图片
rpm -ivh nginx.rpm 验证安装

技术图片
ll /usr/local/nginx/

技术图片

以上是关于将源码编译打成rpm包----以nginx为例的主要内容,如果未能解决你的问题,请参考以下文章

ZooKeeper从源码到RPM包制作过程详解

ZooKeeper从源码到RPM包制作过程详解

编译nginx源码包

源码编译三部曲(以nginx示例)

源码编译三部曲(以nginx示例)

将源码包制作成RPM包