rpm-build方式制作rpm包
一.简介
可以将编译完成的服务打成rpm包放到私有仓库了,用于自定义的各种软件进行安装部署配置。
二.具体操作
1.安装软件,这个命令将构建rpm包
yum -y install rpm-build
2.开始初始化,如下命令必定报错,他会在当前生成一个文件夹
rpmbuild -ba nginx.spec
文件夹内容如下
ls rpmbuild

将源码tar包复制到SOURCES目录
cp nginx-1.8.0.tar.gz rpmbuild/SOURCES/
3.修改spec配置文件,根据这个文件内容进行打包,默认存在
vim rpmbuild/SPECS/nginx.spec
Name:nginx #name用来定义软件包的名称,后面可以使用%{name}的方式引用
Version:1.8.0 #version用来定义软件的实际版本号,后面可以使用%{version}
Release:1 #release用来定义发布序列号,后面可以使用%{release}使用
Summary:nginx-test #summary软件包的内容摘要
Group:web-nginx #group定义软件分组
License:GPL #license定义软件授权方式
URL:www.52wiki.cn #软件官网地址
Source0:nginx-1.8.0.tar.gz #source制定源代码包,后面可以用%{source1}引用
%define nginx_datadir /usr/local/nginx #下面定义了nginx的安装目录,后面使用%{nginx_datadir}引用
%description #%description用来定义描述软件的详细说明
test toooo
%prep #%prep段后定义脚本预处理的一些操作,如解包打补丁等
%setup -q #%setup -q 将tar.gz包解压出来
%build #构建部分
#以下为编译nginx时使用的参数
export DESTDIR=%{buildroot}
./configure --prefix=%{nginx_datadir} --conf-path=%{nginx_datadir}/conf/nginx.conf --error-log-path=%{nginx_datadir}/logs/error.log --http-log-path=%{nginx_datadir}/logs/access.log
make
%install #%install段开始把软件安装到虚拟的根目录中
make install DESTDIR=%{buildroot} INSTALLDIRS=vendor
%clean #%clean清理临时文件
rm -rf %{buildroot}
%files #%file段定义哪些文件和目录会放入rpm中
%defattr(-,root,root,-) #%defattr指定包装文件的属性
%{nginx_datadir}
%changelog #%changelog 变更日志
4.开始打包
rpmbuild -ba rpmbuild/SPECS/nginx.spec
以下exit0 表示成功

打包后会在 rpmbuild/RPMS/x86_64/ 下生产rpm包


5.安装
yum -y localinstall rpmbuild/RPMS/x86_64/nginx-1.8.0-1.el7.centos.x86_64.rpm
因为打包时,没有将nginx脚本复制出来,所以要进到目录

用rpm -qi 可以看到打包的信息

rpm-build方式制作rpm包的更多相关文章
- Linux基于FPM制作RPM包(以Nginx为例)
1.搭建Epel Yum源 安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@ ...
- 制作rpm安装包
1.安装rpmbuild软件 sudo apt-get install rpmbuild2.配置工作路径 在制作 rpm 包之前,首先要配置工作路径,也就是制作 rpm 包所在的目录.制作 rpm 包 ...
- 烂泥:Linux源码包制作RPM包之Apache
本文由秀依林枫提供友情赞助,首发于烂泥行天下 公司服务器比较多,需要把apache源码包制作成rpm包,然后放到公司内网yum源上进行下载安装.apache的rpm包安装方式比源码安装方式比较快,这能 ...
- linux制作RPM包
制作rpm包 1.制作流程1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制 ...
- 制作RPM包
RPM包制作过程 1.1 前期工作 1)创建打包用的目录rpmbuild/{BUILD,SPECS,RPMS, SOURCES,SRPMS} 建议使用普通用户,在用户家目录中创建 2)确定好制作的对象 ...
- CentOS系统制作RPM包
打包编译好的命令,即可直接安装使用 #使用yum可解决依赖问题 [root@localhost ~]# yum -y localinstall *.rpm 一.使用fpm工具直接打包. Fpm安装 f ...
- 手动制作rpm包
制作RPM包的过程,简单的说,就是为制作过程提供一个“工作车间”,即一个目录,里面需要包含以下几个子目录: BUILD ————编译相关源码包时的工作目录: RPMS — ...
- 一步步制作RPM包
一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...
- 制作自己的rpm包,并为其制作patch包。
本文分为两个部分,第一部分是制作一个简单的自己的rpm包,并安装运行它.第二部分是为其制作一个patch包,并通过spec配置文件去打补丁,安装.运行打补丁后的程序. 一.安装工具 [yh@local ...
随机推荐
- 一文分析 Android现状及发展前景
Coding这些年,一直低头"搬砖",好像从未仔细审视过Android的发展现状,亦未好好思考Android的发展前景."低头干活,还要抬头看路",写一篇文章简 ...
- 算法学习->递归典例N皇后问题
00 问题 在NN(这个N==N皇后的N)的方格棋盘上放置n个皇后,要求:1.每个皇后在不同行不同列:2.每个皇后在不同左右对角线 输出要求:输出符合条件的所有解,解以皇后的坐标的形式. 01 思路 ...
- [loj3462]括号路径
对于两条边$(x_{1},y,c)$和$(x_{2},y,c)$,不难发现$x_{1}$与$x_{2}$完全等价,因此可以合并 重复此过程,合并之后用启发式合并来合并边集(注意自环也可以参与合并,即$ ...
- JavaWeb 请求转发重定向
请求转发和重定向 request除了可以作为请求对象之外,还可以作为域对象,但是该域对象的取值范围,是一次请求范围之内(浏览器地址栏没有发生跳转访问别的资源) 作用:将servlet中的数据通过req ...
- 洛谷 P6276 - [USACO20OPEN]Exercise P(组合数学+DP)
洛谷题面传送门 废了,又不会做/ll orz czx 写的什么神仙题解,根本看不懂(%%%%%%%%% 首先显然一个排列的贡献为其所有置换环的乘积.考虑如何算之. 碰到很多数的 LCM 之积只有两种可 ...
- 数据仓库分层中的ODS、DWD、DWS
1.数据仓库DW 1.1简介 Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经大量存在的情况下,为了进一步挖掘数据资源.为了决策需要而产生的,它是一整套包括了etl.调度 ...
- Redis队列跟MQ的区别
Redis队列:Redis队列是一个Key-Value的NoSQL数据库,开发维护很活跃,虽然是一个Key-Value数据库存储系统,但它本身支持MQ功能,所以完全可以当做一个轻量级的队列服务来使用 ...
- Macbook pro进入恢复模式以及无法进入恢复模式解决方案
看网上很多说用Command+R进入恢复模式,但是,大部分都反馈说,此命令并不能进入恢复模式.我自己也尝试发现了同样问题,最终发现解决方案: 问题出在,[是重新启动电脑,而不是关机+按开机键,否则会造 ...
- 使用 JDBC 驱动程序
本部分提供使用 Microsoft JDBC Driver for SQL Server 与 SQL Server 数据库建立简单连接的快速入门指导.在连接到 SQL Server 数据库之前,必须首 ...
- 业务逻辑审批流、审批流、业务、逻辑、面向对象、工作方式【c#】
------需求分析:--------1.先按照实际线下流程说这是什么事情,实际要干什么.2.再转换为面向对象-页面的操作流程,演示demo3.再与相关人员沟通是否可行需要什么地方修正.4.最终:线上 ...