详解封装源码包成RPM包
源码编译安装是最常用安装软件方式,可是面对工作量巨大时候就需要我们的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包的更多相关文章
- SpringBoot之DispatcherServlet详解及源码解析
在使用SpringBoot之后,我们表面上已经无法直接看到DispatcherServlet的使用了.本篇文章,带大家从最初DispatcherServlet的使用开始到SpringBoot源码中Di ...
- Spring Boot启动命令参数详解及源码分析
使用过Spring Boot,我们都知道通过java -jar可以快速启动Spring Boot项目.同时,也可以通过在执行jar -jar时传递参数来进行配置.本文带大家系统的了解一下Spring ...
- 基于双向BiLstm神经网络的中文分词详解及源码
基于双向BiLstm神经网络的中文分词详解及源码 基于双向BiLstm神经网络的中文分词详解及源码 1 标注序列 2 训练网络 3 Viterbi算法求解最优路径 4 keras代码讲解 最后 源代码 ...
- Android应用AsyncTask处理机制详解及源码分析
1 背景 Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个知识点.前面我们分析了Handler异步机制原理(不了解的可以阅读我的<Android异步消息处理机 ...
- Java SPI机制实战详解及源码分析
背景介绍 提起SPI机制,可能很多人不太熟悉,它是由JDK直接提供的,全称为:Service Provider Interface.而在平时的使用过程中也很少遇到,但如果你阅读一些框架的源码时,会发现 ...
- 【转载】Android应用AsyncTask处理机制详解及源码分析
[工匠若水 http://blog.csdn.net/yanbober 转载烦请注明出处,尊重分享成果] 1 背景 Android异步处理机制一直都是Android的一个核心,也是应用工程师面试的一个 ...
- 详解HashMap源码解析(下)
上文详解HashMap源码解析(上)介绍了HashMap整体介绍了一下数据结构,主要属性字段,获取数组的索引下标,以及几个构造方法.本文重点讲解元素的添加.查找.扩容等主要方法. 添加元素 put(K ...
- 详解ConCurrentHashMap源码(jdk1.8)
ConCurrentHashMap是一个支持高并发集合,常用的集合之一,在jdk1.8中ConCurrentHashMap的结构和操作和HashMap都很类似: 数据结构基于数组+链表/红黑树. ge ...
- 详解 QT 源码之 Qt 事件机制原理
QT 源码之 Qt 事件机制原理是本文要介绍的内容,在用Qt写Gui程序的时候,在main函数里面最后依据都是app.exec();很多书上对这句的解释是,使 Qt 程序进入消息循环.下面我们就到ex ...
随机推荐
- Hadoop入门之hdfs
大数据技术开篇之Hadoop入门[hdfs] 学习都是从了解到熟悉的过程,而学习一项新的技术的时候都是从这个技术是什么?可以干什么?怎么用?如何优化?这几点开始.今天这篇文章分为两个部分.一. ...
- Java并发基础09. 多个线程间共享数据问题
先看一个多线程间共享数据的问题: 设计四个线程,其中两个线程每次对data增加1,另外两个线程每次对data减少1. 从问题来看,很明显涉及到了线程间通数据的共享,四个线程共享一个 data,共同操作 ...
- CF633(div.2)C. Powered Addition
题目描述 http://codeforces.com/contest/1339/problem/C 给定一个长度为 \(n\) 的无序数组,你可以在第 \(x\) 秒进行一次下面的操作. 从数组选取任 ...
- 使用css动画实现领积分效果
最近项目中要做一个领积分的效果,根据老板的描述,这个效果类似于支付宝蚂蚁森林里的领取能量.整体效果是就是在树周围飘着几个积分元素,上下滑动,类似星星闪烁,点击领取后,沿着树中心的位置滑动并消失,树上的 ...
- MyBatis(一):第一个MyBatis程序
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...
- json文件操作
1.把字典或list转换成字符串方法 json.dumps() 2.把字符串转换成字典方法 json.loads() 3.indent 存储文件时每行加缩进数 4.ensere_asci 文件中有中文 ...
- 37 net 网络编程
InetAddress:此类表示互联网协议 (IP) 地址. Stringbuilder getHostAddress() 返回 IP 地址. Stringbuilder getHostName() ...
- Array(数组)对象-->push() 方法
1.定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法: array.push(item1, item2, ..., itemX) 参数:item1, item2, ...
- Apache Hudi 设计与架构最强解读
感谢 Apache Hudi contributor:王祥虎 翻译&供稿. 欢迎关注微信公众号:ApacheHudi 本文将介绍Apache Hudi的基本概念.设计以及总体基础架构. 1.简 ...
- Java中都通用文件下载(ContentType、文件头、response、out四步骤)
Java中都通用文件下载(ContentType.文件头.response.out四步骤) 新浪微博:IT国子监(记得关注噢) http://weibo.com/itguozijian 我们就直接 ...