1、搭建Epel  Yum源

 安装在线yum源

[root@localhost ~]# rpm -ivh epel-release-latest-.noarch.rpm      //安装扩展源
[root@localhost yum.repos.d]# ls
a epel-release-latest-.noarch.rpm epel-testing.repo Centos-.repo epel.repo

[root@localhost ~]# ls /etc/yum.repos.d/
backup CentOS-Base.repo CentOS-Media.repo epel.repo epel-testing.repo
修改epel.repo
[root@Crushlinux yum.repos.d]# yum clean all && yum makecache //清除并新建yum缓存

2、安装ruby环境和gem命令(gem命令是从rubygem仓库安装软件,类似yum从yum仓库安装软件)

安装软件包,安装时要出现3个安装的软件
[root@localhost yum.repos.d]# yum -y install ruby rubygems ruby-devel [root@localhost ~]# gem update --system //升级rubygems版本
[root@localhost ~]# gem install rubygems-update -v 2.3. //安装新版本
[root@localhost ~]# gem update --system //升级 [root@localhost ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ //添加国内源
[root@localhost ~]# gem sources --remove https://rubygems.org/ //移除国外源
[root@localhost ~]# gem sources -l //查看当前源 [root@localhost ~]# gem install fpm //安装fpm工具

3、编译nginx,在保证nginx安装完的基础上打包,查看nginx的80端口

[root@localhost ~]# netstat -anpt | grep :    //查询nginx的接口

4、打包nginx包生成rpm包

脚本
[root@localhost ~]# vim nginx.sh
#!/bin/bash useradd -M -s /sbin/nologin nginx //创建用户
ln -s /usr/local/nginx/sbin/nginx/ /sbin //设置软连接
echo www.crushlinux.com > /usr/local/nginx/html/index.html //在网页文件中写入测试内容
/usr/local/nginx/sbin/nginx //开启nginx

打包时报错,修改

[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.16. -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx/
报错信息
Need executable 'rpmbuild' to convert dir to rpm {:level=>:error} 修改
[root@localhost ~]# yum list | grep build
[root@localhost ~]# yum -y install rpm-build
[root@localhost ~]# fpm -s dir -t rpm -n nginx -v 1.16. -d 'pcre-devel,zlib-devel' -f --post-install /root/nginx.sh /usr/local/nginx/
打包成功,在当前目录下生成一个rpm包
Created package {:path=>"nginx-1.16.1-1.x86_64.rpm"}

5、安装自己制作的软件包,并查看端口

安装之前需要卸载之前安装的nginx

rm -rf /usr/local/nginx

rm -rf /usr/src/nginx-1.16.1/

rm -rf /usr/local/nginx/sbin/nginx

userdel -r nginx

[root@localhost ~]# rpm -ivh nginx-1.16.-.x86_64.rpm    //安装自己制作的包
[root@localhost ~]# netstat -anpt | grep //查看端口
 

Linux基于FPM制作RPM包(以Nginx为例)的更多相关文章

  1. fpm制作rpm包

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

  2. 利用fpm制作rpm包

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

  3. fpm 制作rpm包

    使用fpm命令制作rpm包并安装 工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 ...

  4. fpm 制作 rpm 包

    支持的 源类型包 ① dir : 将目录打包成所需要的类型, 可用于源码编译安装软件包 ② rpm : 对 rpm 包进行转换 ③ gem : 对 rubygem 包进行转换 ④ python : 将 ...

  5. 基于FPM制作RPM软件包!

    工作中有如下情况需要将文件打包rpm: 避免重复工作,将源码程序打包为rpm 使用yum发布项目,项目打包为rpm 将自己写好的程序打包为rpm,提供给用户下载 其他 以前打包rpm是一个非常复杂的一 ...

  6. linux制作RPM包

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

  7. 制作RPM包

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

  8. fpm定制化RPM包之nginx rpm包的制作

    fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...

  9. 编译制作Linux 3.18内核rpm包(升级centos6.x虚拟机内核)

    介绍 openstack平台需要使用各种Linux发行版模板镜像,其制作方法主要有两种,要么是基于各大Linux发行版ISO光盘手动制作,要么是使用官方提供的模板镜像再做修改 之前制作的opensta ...

随机推荐

  1. Springboot使用ehcache缓存

    本文部分步骤继承于springboot使用cache缓存,如果有不清楚的,请移驾springboot使用cache缓存 ehcache是一种广泛使用的开源Java分布式缓存.主要面向通用缓存,Java ...

  2. VMware exsi虚拟机磁盘扩容

    创建Linux时分配磁盘空间随着使用的增加,使用率逐渐升高,需要对/root进行扩容,此时需要在添加或者扩展一下磁盘. 查看Linux版本信息 [root@localhost ~]# cat /etc ...

  3. JavaScript DOM 常用操作

    1.理解DOM: DOM(Document Object Model ,文档对象模型)一种独立于语言,用于操作xml,html文档的应用编程接口. 怎么说,我从两个角度理解: 对于JavaScript ...

  4. jQuery 源码解析(六) $.each和$.map的区别

    $.each主要是用来遍历数组或对象的,例如: var arr=[11,12,13,14]; $.each(arr,function(element,index){ //遍历arr数组 console ...

  5. SqLite踩的坑

    一.修改表名称.增加字段.查询表结构.修改表结构字段类型 .修改表名称 ALTER TABLE 旧表名 RENAME TO 新表名 eg: ALTER TABLE or_sql_table RENAM ...

  6. js函数定义及一些说明

    1.javascript定义函数的三种方法一.function语句//这个方法比较常用function fn(){ alert("这是使用function语句进行函数定义");}f ...

  7. 分布式Redis深度历险-Cluster

    本文为分布式Redis深度历险系列的第三篇,主要内容为Redis的Cluster,也就是Redis集群功能. Redis集群是Redis官方提供的分布式方案,整个集群通过将所有数据分成16384个槽来 ...

  8. JavaScript全局属性和全局函数

    JavaScript全局属性和全局函数可以与所有内置JavaScript对象一起使用. JavaScript全局属性 属性 描述 Infinity 表示正/负无穷大的数值 NaN "Not- ...

  9. Violet音乐社区 - 总结报告

    目录 一.项目概述 1.1 项目背景 1.2 编写目的 1.3 项目文档 1.4 项目源码 1.5 项目成果 二.个人工作总结 1.1 工作概览 1.1.1 作为项目组组长 1.1.2 作为项目组成员 ...

  10. spring boot的异常处理

    原文:https://blog.csdn.net/tianyaleixiaowu/article/details/70145251 全局异常处理是个比较重要的功能,一般在项目里都会用到. 我大概把一次 ...