源码编译安装是最常用安装软件方式,可是面对工作量巨大时候就需要我们的RPM包上场了,统一的模块,一键安装。在面对一定数量的服务器上,RPM就可以为我们节省大量的时间。

RPM可以在网上下载,但是当我们需要用到特殊模块时,这些网上的RPM就显得那么的苍白无力了。所以自行封装打包成了一和需求。现在就介绍如何封装打包。

打包流程

1)准备源码软件

2)安装rpm-build

3)编写编译配置文件

4)编译RPM包

开始

1.安装rpm-build软件包

rpm-bulid 打包所用的工具

[root@W1 root]# yum install rpm-build

2.生成rpmbuild目录结构

[root@W1 root]# rpmbuild -ba nginx.spec
错误:stat /root/nginx.spec 失败:没有那个文件或目录

会报错,不过没问题 需要的只是生成的目录rombuild

[root@W1 rpmbuild]# pwd
/root/rpmbuild [root@W1 rpmbuild]# ls
BUILD BUILDROOT RPMS SOURCES SPECS SRPMS

RPMS(做好后的成品放置区)

SOURCES(放置源码包)

SPECS(配置文件)

    -

3.将源码软件复制到SOURCES目录

[root@W1 rpmbuild]# cp nginx-1.8.0.tar.gz /root/rpmbuild/SOURCES/

记得是源码包

4.创建并修改spec配置文件

[root@W1 rpmbuild]# vim /root/rpmbuild/SPECS/nginx.spec

文件后缀必须是spec,格式嘛

如何修改参考内德给的图



!!标注的地方不能随便该

这是nginx修改的参考

[root@Web rpmbuild]# cat SPECS/nginx.spec
Name:nginx
Version:1.8.0
Release:1.rhel7
Summary:The is a Web Server,to nginx #Group:
License:GPL
URL:www.Nedved.cn
Source0:nginx-1.8.0.tar.gz BuildRequires: gcc pcre openssl-devel
#Requires: %description
This is a Web server nginx %prep
%setup -q %build
./configure --with-http_ssl_module --with-http_stub_status_module
make %{?_smp_mflags} %install
make install DESTDIR=%{buildroot} %files
%doc
/usr/local/nginx/* %changelog

到这里就基本上打包完成了

5.使用配置文件创建RPM包

1)安装依赖软件包

[root@W1 rpmbuild]# yum install gcc pcre openssl-devel -y

2)rpmbuild创建RPM软件包

 [root@W1 rpmbuild]# rpmbuild -ba SPECS/nginx.spec
[root@W1 rpmbuild]# ls RPMS/x86_64/
nginx-1.8.0-1.rhel7.x86_64.rpm nginx-debuginfo-1.8.0-1.rhel7.x86_64.rpm

创建RPM软件包后在查看RPMS就能看到封装好的包了

6.测试RPM包是否可使用

rpm -qpi RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //查看封装信息

rpm -qpl RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //查看安装路径

rpm -ivh RPMS/x86_64/nginx-1.8.0-1.rhel7.x86_64.rpm //装包

rpm -qa |grep nginx //查看是否安装

OK到这里就大功告成了。

最后就总结下:

1.准备封装工具

2.改安装配置文件,在里面添加所需要的模块,附加一些安装信息。

3.然后就是测试了

详解封装源码包成RPM包的更多相关文章

  1. SpringBoot之DispatcherServlet详解及源码解析

    在使用SpringBoot之后,我们表面上已经无法直接看到DispatcherServlet的使用了.本篇文章,带大家从最初DispatcherServlet的使用开始到SpringBoot源码中Di ...

  2. Spring Boot启动命令参数详解及源码分析

    使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...

  3. 基于双向BiLstm神经网络的中文分词详解及源码

    基于双向BiLstm神经网络的中文分词详解及源码 基于双向BiLstm神经网络的中文分词详解及源码 1 标注序列 2 训练网络 3 Viterbi算法求解最优路径 4 keras代码讲解 最后 源代码 ...

  4. Android应用AsyncTask处理机制详解及源码分析

    1 背景 Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个知识点.前面我们分析了Handler异步机制原理(不了解的可以阅读我的<Android异步消息处理机 ...

  5. Java SPI机制实战详解及源码分析

    背景介绍 提起SPI机制,可能很多人不太熟悉,它是由JDK直接提供的,全称为:Service Provider Interface.而在平时的使用过程中也很少遇到,但如果你阅读一些框架的源码时,会发现 ...

  6. 【转载】Android应用AsyncTask处理机制详解及源码分析

    [工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果] 1 背景 Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个 ...

  7. 详解HashMap源码解析(下)

    上文详解HashMap源码解析(上)介绍了HashMap整体介绍了一下数据结构,主要属性字段,获取数组的索引下标,以及几个构造方法.本文重点讲解元素的添加.查找.扩容等主要方法. 添加元素 put(K ...

  8. 详解ConCurrentHashMap源码(jdk1.8)

    ConCurrentHashMap是一个支持高并发集合,常用的集合之一,在jdk1.8中ConCurrentHashMap的结构和操作和HashMap都很类似: 数据结构基于数组+链表/红黑树. ge ...

  9. 详解 QT 源码之 Qt 事件机制原理

    QT 源码之 Qt 事件机制原理是本文要介绍的内容,在用Qt写Gui程序的时候,在main函数里面最后依据都是app.exec();很多书上对这句的解释是,使 Qt 程序进入消息循环.下面我们就到ex ...

随机推荐

  1. Effective Java要点笔记

    第一章: 创建和销毁对象 类可以通过静态工厂方法来提供客户端,而不是通过构造器 优点: 自定义工厂名称,提高可读性 可以工厂里搞单例 控制实例类是哪种子类 总之是更加灵活,可读性更高 缺点: 有可能会 ...

  2. Flutter 不可错过的学习资源

    老孟导读:今天给大家分享一下我在学习Flutter的过程中整理的资料,这些文章或者开源项目都是精挑细选的,希望可以帮助到到家.另外相关资料会在Github一直更新,欢迎大家fork,如果喜欢的话给个小 ...

  3. JavaScript 进阶入门

    17:56:11 2019-08-09 如题所见 还是入门 23:10:17 2019-08-11 继续学习 16:34:59 2019-08-14 虽然入了门 但还是缺少实践 本文资料来源: 慕课网 ...

  4. web日志分析的重要性

    虽然不可能对庞大的日志文件进行逐条的阅读,但是在这些日志文件中,确实会包含一些非常重要的信息.例如,在什么时间.有哪些ip地址访问了网站中的什么资源,等等. 通过对日志文件的分析,可以获得如下信息. ...

  5. .Net微服务实践(五)[服务发现]:Consul介绍和环境搭建

    目录 介绍 服务发现 健康检查.键值存储和数据中心 架构 Consul模式 环境安装 HTTP API 和Command CLI 示例API介绍 最后 在上篇.Net微服务实践(四)[网关]:Ocel ...

  6. python爬虫两个影院的实例

    主要两个的python代码如下: import requests from bs4 import BeautifulSoup url = 'https://www.17k.com/' headers ...

  7. 玩转redis-延时消息队列

    上一篇基于redis的list实现了一个简单的消息队列:玩转redis-简单消息队列 源码地址 使用demo 产品经理经常说的一句话,我们不光要有X功能,还要Y功能,这样客户才能更满意.同样的,只有简 ...

  8. .net跨域接口服务器端配置

    在项目Config文件中添加一下节点配置 <system.webServer> <httpProtocol> <customHeaders> <add nam ...

  9. matplotlib formatters

      Tick formatting is controlled by classes derived from Formatter. The formatteroperates on a single ...

  10. AJ学IOS 之微博项目实战(4)微博自定义tabBar中间的添加按钮

    AJ分享,必须精品 一:效果图 自定义tabBar实现最下面中间的添加按钮 二:思路 首先在自己的tabBarController中把系统的tabBar设置成自己的tabBar(NYTabBar),这 ...