一.简介

可以将编译完成的服务打成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包的更多相关文章

  1. Linux基于FPM制作RPM包(以Nginx为例)

    1.搭建Epel  Yum源  安装在线yum源 [root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm //安装扩展源 [root@ ...

  2. 制作rpm安装包

    1.安装rpmbuild软件 sudo apt-get install rpmbuild2.配置工作路径 在制作 rpm 包之前,首先要配置工作路径,也就是制作 rpm 包所在的目录.制作 rpm 包 ...

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

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

  4. linux制作RPM包

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

  5. 制作RPM包

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

  6. CentOS系统制作RPM包

    打包编译好的命令,即可直接安装使用 #使用yum可解决依赖问题 [root@localhost ~]# yum -y localinstall *.rpm 一.使用fpm工具直接打包. Fpm安装 f ...

  7. 手动制作rpm包

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

  8. 一步步制作RPM包

    一步步制作RPM包 来源 http://blog.51cto.com/laoguang/1103628 一.RPM制作步骤 我们在企业中有的软件基本都是编译的,我们每次安装都得编译,那怎么办呢?那就根 ...

  9. 制作自己的rpm包,并为其制作patch包。

    本文分为两个部分,第一部分是制作一个简单的自己的rpm包,并安装运行它.第二部分是为其制作一个patch包,并通过spec配置文件去打补丁,安装.运行打补丁后的程序. 一.安装工具 [yh@local ...

随机推荐

  1. linux python2.6.6升级到python2.7

    升级 python 2.6.6 系统到 2.7.10 版本 CentOS 6 系统默认 Python 版本是:2.6.6 平时在使用中遇到很多的库要求是 2.7.x 版本的库,比如使用 ConfigP ...

  2. [hdu7078]Pty with card

    显然问题被分为两部分,先考虑如何求$F(n)$-- 令第一次所选的人编号为1,其之后所有人按顺时针依次编号为$2,3,...,n$,那么用一个序列来描述状态,其中第$i$个元素为当前存在的人中编号第$ ...

  3. 如何解决 ASP.NET Core 中的依赖问题

    依赖性注入是一种技术,它允许我们注入一个特定类的依赖对象,而不是直接创建这些实例. 使用依赖注入的好处显而易见,它通过放松模块间的耦合,来增强系统的可维护性和可测试性. 依赖注入允许我们修改具体实现, ...

  4. 消息抽象层设计和实现-OSS.DataFlow

    前面已经介绍了消息生产消费中间类库(OSS.DataFlow)的简单使用,这篇主要介绍内部的设计实现.主要内容包含: 1. 消息生产消费的抽象设计. 2. 具体使用示例 一. 消息生产消费的抽象设计. ...

  5. 【Tool】IntelliJ IDEA 使用技巧

    IntelliJ IDEA 使用技巧 2019-11-06  20:51:43  by冲冲 1.快捷键 Ctrl+w //括出相关范围 Ctrl+shift+f //按照代码段在全局搜索 Ctrl+f ...

  6. Apache ShardingSphere 5.0.0 内核优化及升级指南

    经过近两年时间的优化和打磨,Apache ShardingSphere 5.0.0 GA 版终于在本月正式发布,相比于 4.1.1 GA 版,5.0.0 GA 版在内核层面进行了大量的优化.首先,基于 ...

  7. html+css第三篇

    css reset 原则: 但凡是浏览默认的样式,都不要使用. body,dl,dd,p,h1,h2,h3,h4,h5,h6{margin:0;font-size:12px;} ol,ul{margi ...

  8. GoF23种(部分)软件设计模式【核心理解】

    设计模式复习 1. 面向对象设计原则 1.1 可维护性较低的软件设计 过于僵硬 过于脆弱 复用率低 黏度过高 1.2 一个好的系统设计 可扩展性 灵活性 可插入性 复用:一个软件的组成部分可以在同一个 ...

  9. Nginx pid文件找不到 nginx: [error] open() "/run/nginx/nginx.pid" failed (2: No such file or directory)

    Nginx pid文件找不到 nginx: [error] open() "/run/nginx/nginx.pid" failed (2: No such file or dir ...

  10. 40-3Sum Closest

    3Sum Closest My Submissions QuestionEditorial Solution Total Accepted: 76185 Total Submissions: 2621 ...