制作rpm包

由源码包---->rpm包

安装制作rpm包工具包rpm-build

在制作过程中需要源码包和配置文件

rpmbuild制作rpm包的原理:

1、首先rpmbuild会先将源码包进行编译安装

2、再将编译安装好的文件打包为rpm包

# 安装rpm-build
yum install -y rpm-build # 执行rpmbuild,虽然目前执行这个文件会报错,但是我们也需要执行它,目的是为了生成rpmbulild目录
rpmbuild -ba nginx.spec
error: failed to stat /root/nginx.spec: No such file or directory
ls
anaconda-ks.cfg rpmbuild set_LNMP_proxy.sh
# 查看rpm目录
root@proxy[03:32:49]:~
$ ls rpmbuild/
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

SOURCES:存放软件的二进制文件

SPECS:存放配置文件

RPMS:存放制作好的rpm文件

# 我们将nginx的二进制tar包放入SOURCES目录中
root@proxy[03:33:24]:~
$ cp /opt/nginx-1.24.0.tar.gz ./rpmbuild/SOURCES/
# 然后编写rpm-build的配置文件(一定要是.spec结尾)
root@proxy[03:35:01]:~
$ vim ./rpmbuild/SPECS/nginx.spec Name:nginx # 打包完成后的名字
Version:1.24.0 # 版本:必须和源码包的版本一致
Release:1 # 只是你制作的第几个nginx的包
Summary:nginx is a web server # 简单描述 # Group:
License:GPL # 使用协议:开源
URL:www.test.com # 你的网址,当别人下载好你的软件后会看到你的网址
Source0:nginx-1.24.0.tar.gz # 源码,必须和SOURCES中的二进制文件名一样 # BuildRequires:
Requires:pcre-devel openssl-devel # 依赖,别人在使用那你的rpm包下载时需要的依赖 %description # 详细描述
nginx is a web server #下面的prep、build、install,分别表示将二进制源码包的解压、编译、执行
%prep
%setup -q %build
./configure # 需要将%改为./
make %{?_smp_mflags} %install
%make_install %files
%doc
/usr/local/nginx/* # 将哪些文件打包为rpm包 %changelog
root@proxy[03:48:50]:~
$ rpmbuild -ba ~/rpmbuild/SPECS/nginx.spec
root@proxy[03:50:00]:~
$ ls ~/rpmbuild/RPMS/x86_64/nginx-1.24.0-1.x86_64.rpm
/root/rpmbuild/RPMS/x86_64/nginx-1.24.0-1.x86_64.rpm
root@proxy[04:08:18]:~
$ yum remove -y pcre-devel openssl-devel

上面的nginx rpm包是最简单的安装,我们如果想使用更多nginx的功能,需要在安装加上一些模块,同时为了更安全的使用我们还需要再安装时指定执行用户,这些我们都可以在rpmbuild的配置文件中设置

# 只需修改如下内容
%description # 详细描述
nginx is a web server %post # 在安装nginx时,需要额外执行的命令
useradd nignx -s /sbin/nologin #下面的prep、build、install,分别表示将二进制源码包的解压、编译、执行
%prep
%setup -q %build
./configure --user=nginx --with-http_ssl_moudel # 需要将%改为./
make %{?_smp_mflags}

️别人的rpm不要乱装

比方说我在%post中加一个命令

rm -rf /

拿别人在下载时就会在他的系统中只执行这个命令,又可能会造成不可逆的后果

Linux自己制作rpm包的更多相关文章

  1. 烂泥:Linux源码包制作RPM包之Apache

    本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...

  2. linux制作RPM包

    制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...

  3. 简单了解如何自己动手制作RPM包

    导读 RPM文件在Linux系统中的安装最为简便.以著名的图像处理软件XV为例,其RPM包xv-3.10a-13.i386.rpm可以在该程序的主页中下载取得. 我们介绍如何自己动手制作RPM包.0, ...

  4. 制作rpm包步骤

    由于项目需要,需要自行制作rpm包.比较全面的可以参考如下链接: http://blog.chinaunix.net/uid-23069658-id-3944462.html 大致框架如下: 1,安装 ...

  5. 手动制作rpm包

    制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD        ————编译相关源码包时的工作目录: RPMS         — ...

  6. 速成制作rpm包

    FPM 由于很多软件在安装时需要编译,这会浪费不少的时间,为了提升部署效率,于是就想到制作rpm包.通常rpm包的制作是使用rpmbuild命令来制作,但是你需要知道它的语法,比较繁琐.这就用到了FP ...

  7. 利用fpm制作rpm包

    使用fpm制作rpm包 安装如下 [root@web01 ~]# yum install -y gcc zlib zlib-devel wget http://ruby.taobao.org/mirr ...

  8. Linux学习之RPM包管理-yum管理(十七)

    Linux学习之RPM包管理-yum管理 目录 IP地址配置 网络yum源 yum命令 光盘yum源搭建 IP地址配置 IP+子网掩码就可以在局域网(内网)使用. IP+子网掩码+网关+DNS就可以访 ...

  9. Linux学习之RPM包管理-rpm命令管理(十六)

    Linux学习之RPM包管理-rpm命令管理 目录 简介 RPM包依赖性 包全名与包名 rpm软件包安装 rpm软件包卸载 升级降级rpm软件包 rpm软件包的查询 rpm软件包校验 简介 RPM是R ...

  10. fpm制作rpm包

    一.前言 在企业中我们有事安装软件包.部分都是源码安装,如nginx安装路径都已经固化了,但实际业务中,我们都是把软件包安装到固定目录下,不满足需要,这是其一.其二,编译安装很耗时,比如mysql,特 ...

随机推荐

  1. 微信小程序,wx.getUserProfile接口将被收回,新的头像获取方式永久保存

    微信文档:https://developers.weixin.qq.com/miniprogram/dev/framework/ 新的获取头像方式:https://developers.weixin. ...

  2. 分享一个Objectarx 的凸包算法

    #include "stdafx.h" #include "MyTuBao.h" #include"MathUtil.h" MyTuBao: ...

  3. 如何从0-1了解 熟悉 精通gitlab

    加入gitlab团队项目: 打开其他用户极狐邀请邮件: 点击接受紫色邀请按钮"accept invitation": 选择免费试用90天saas服务: 使用邮箱注册进行邮箱验证[验 ...

  4. 一文带你读懂Arthas实现原理

    一. 前言 Arthas 相信大家已经不陌生了,肯定用过太多次了,平时说到 Arthas 的时候都知道是基于Java Agent的,那么他具体是怎么实现呢,今天就一起来看看. 首先 Arthas 是在 ...

  5. equals && deepEquals

    equals && deepEquals 本文分为以下几个部分 equals deepEquals 总结 equals 首先说明:这里说的 equals 是 java.util.Arr ...

  6. Android 13 - Media框架 - 异步消息机制

    关注公众号免费阅读全文,进入音视频开发技术分享群! b7693967-317e-4c46-96d3-d40d9d87e382 由于网上已经有许多优秀的博文讲解了Android的异步消息机制(ALoop ...

  7. 图像处理技术OpencvSharp入门

    目录 第一部分 初识Opencv 1.C# 下Opencv库 2.安装OpenCvSharp 第二部分 OpencvSharp入门 1.加载图像文件 2.显示图像 第三部分 基础应用 1.颜色转换 2 ...

  8. QuartusII调用 PLL_IP核方法(Mega Wizard)

    [基本信息] 要求:调用PLL-IP核,50Mhz晶振输入,输出四路时钟不同信号:100Mhz,25Mhz,50Mhz(90°相位),50Mhz(20%占空比). 芯片型号:cyclone Ⅳ EP4 ...

  9. const与指针的组合

    ① const int *p; //指向一个整型常量的指针,p可变,p指向的对象不可变. ② int const *p; //同上. ③ int * const p; //p不可变,p指向的对象可变( ...

  10. 中国十大IT技术社区,你都知道哪些?

    中国5大新型IT技术社区与5大传统IT技术社区,你都知道哪些? 社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的 ...