将源码编译打成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/

原文地址:https://blog.51cto.com/13843380/2427238

时间: 2024-10-11 21:06:36

将源码编译打成rpm包----以nginx为例的相关文章

linux软件包的安装之----编译源码格式的rpm包(后缀名为.src.rpm的软件包)

编译源码格式的rpm包-----à并制作为二进制格式的rpm包 实例 #useradd  mockbuild (需要使用mockbuild用户来编译) #rpm –ivh nginx--src.rpm(会在当前目录下生成rpmbuild目录) #cd rpmbuild;ls(以下是子目录介绍) SOURCES:存放的是程序源代码.补丁.脚本等. SPECS:nginx.spec文件    指示如何解压,打补丁,如何./configure,make,makeinstall,如何封装为nginx-.

27. 文件系统——编译安装源码格式的rpm包(src.rpm)

(1)安装src格式的rpm包 源码格式的rpm包(通常是src格式)无法直接使用,需要加工制作后才能使用 [[email protected] ~]# cd /yum/package/ [[email protected] package]# ls axel-2.4                                 nginx-1.7.10-1.el6.ngx.src.rpm # 现在想安装使用源码格式的nginx,但这个软件包不是二进制格式的,安装了以后无法正常使用 axel-

软件包管理之源码格式的rpm包

CentOS release 6.5 nginx-1.0.15-5.el6.src.rpm [[email protected] ~]# useradd -r mockbuild    #新建mockbuild用户 [[email protected] ~]# rpm -ivh nginx-1.0.15-5.el6.src.rpm     #和安装二进制rpm包一样 warning: nginx-1.0.15-5.el6.src.rpm: Header V3 RSA/SHA256 Signatu

源码编译安装程序包及httpd源码安装实践

源码编译安装程序包从步骤并不复杂,实际安装过程中最主要的就是准备好编译环境:根据自己的实际需求,选择或设置程序包编译参数:以及程序包安装后的相关配置. 1.  编译环境准备 以CentOS6为例,一般通过yum安装2个包组,编译工具,以及编译程序包依赖的主要的头文件和库文件就都准备好了. # yum groupinstall "Development Tools" # yum groupinstall "Server Platform Development" 另外

源码编译lnmp之简介与nginx安装

源码编译lnmp 系统环境:Centos 6.6 相关软件包: nginx-1.11.6.tar.gz mysql-boost-5.7.15.tar.gz php-5.6.28.tar.bz2 下载地址: nginx官网:http://nginx.org mysql官网:http://dev.mysql.com/downloads/mysql/ php官网:http://jp2.php.net/downloads.php 第一部分:安装nginx 一.安装nginx时必须先安装相应的编译工具 1

制作源码软件的RPM包

使用nginx-1.12.2版本的源码软件,生产对应的RPM包软件 具体步骤: 1.安装rpm-build软件 # yum -y install rpm-build 2.生成rpmbuild目录结构 # rpmbuild -ba nginx.spec # ls /root/rpmbuild BUILD  BUILDROOT  RPMS  SOURCES  SPECS  SRPMS [会报错,没有文件或目录,目的:自动生成的目录结构] 3.将源码软件复制到SOURCES目录 # cp nginx-

centos7 源码编译安装heartbeat 以及结合nginx测试高可用

1.环境CentOS Linux release 7.4.1708 (Core) 3.10.0-693.el7.x86_64主(heartbeat27=uname -n)10.0.0.27(ip) 10.0.10.27(心跳) 10.0.0.29(vip)备(heartbeat28=uname -n)10.0.0.28(ip) 10.0.10.28(心跳) 10.0.0.29(vip)2.cat /etc/hosts10.0.0.27 heartbeat2710.0.0.28 heartbeat

Linux程序包管理之yum仓库、源码编译安装

CentOS:yum,dnf URL:ftp://172.16.0.1/pub yum是C/S架构,是rpm的前端工具,依赖于rpm存在的: 1.本地要有yun程序: 2.本地要有配置文件(配置远程服务器yum仓库或本地服务器yum仓库): 3.要有存在的文件服务器(程序包仓库即yum仓库).(也可以在本地配置服务器yum仓库): yum支持的服务器有两种:一种是ftp服务器,第二种是http服务器: yum工作简述: yum是客户端,也认为是自我独立管理的组件,需要联系远程的仓库,从仓库中下载

Linux程序包管理--源码编译的原理和基本方法

Linux中使用rpm格式的程序文件包来安装是比较方便的方法, 但是有一部分程序文件包没有rpm包格式, 这时就需要用户自己手工编译源码包来进行安装. 文本主要讲解源码编译的原理和基本操作过程. 源码包命名方式 name - VERSION . tar . gz 其中: VERSION = major . minor . release major表示主版本号, 经过比较大的改进 minor表示次版本号, 改进比较小 release表示对一些bug进行修复 源码包编译过程 源码包是指经过程序员编