前期环境准备:
关闭SELINUX  :   setenforce 0
关闭SELINUX  :   sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
停止防火墙    :     /etc/init.d/iptables stop 
停止防火墙开机启动:   chkconfig --level 3 off
更改为保存安装包   keepcache=1


调试命令:curl 10.0.0.3
启动命令:/application/nginx/sbin/nginx
可选安装:   yum -y iinstall lrzsz

mkdir -p /application/tools
  #创建目录
cd /application/tools            #进入目录




1. fpm安装:(因为fpm是用ruby写的,因此需要有ruby的系统环境,版本需要大于1.8.5)     ruby rubygems  ruby-devel 3个软件  需要安装
1. [root@localhost ~]# yum -y install ruby rubygems ruby-devel   ## 这里面貌似要安装1.8.7的ruby 

2. [root@localhost ~]# yum install lrzsz        //----如果系统没有安装这个软件就需要安装一下 

3    gem install fpm -v 1.3.3   ## 安装 fpm工具

4.  gem install json -v 1.8.3   ## 安装json

5.   gem install ffi -v 1.9.18  安装 ffi

6. find /var/cache/ -type f -name '*rpm' |xargs cp -t /tmp/   ## 临时包拷贝到 tmp

7. cd /tmp/ && tar zcf nginx_yum.tar.gz *.rpm   ### 打包位rpm包

8. sz nginx_yum.tar.gz   ## 下载到本地

2. 下载阿里云的源,更换新的源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo     ## 下载源

gem source -a http://mirrors.aliyun.com/rubygems/              ## 添加新yum源 (https中 http应该改成https)


gem source --remove http://rubygems.org/                          ## 移除老yum源


gem source --list                                   //查看源地址  gem命令无法使用请安装下面的ruby

3.创建用户
useradd nginx -M -s /sbin/nologin

cd /application/tools/

tar xf nginx-1.6.3.tar.gz



4. 编译安装nginx
1.    ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module

2.     make && make install


5. 创建软连接
ln -s /application/nginx-1.6.3/ /application/nginx

mkdir -p /server/scripts/



6.编写脚本,创建相关用户
cd /server/scripts/      ##脚本写学 该目录
vi nginx_rpm.sh


内容:
useradd nginx -M -s /sbin/nologin

ln -s /application/nginx-1.6.3/ /application/nginx



7. fpm 安装打包
fpm -s dir -t rpm -n nginx -v 1.6.3 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh -f /application/nginx-1.6.3/



8. 下载到其他服务器安装后效果:

完成!!:

出现以下瑕疵待解决:

里程碑1: 能够一键执行后  创建用户和 软连接
yum -y localinstall nginx-1.6.2-1.x86_64.rpm
   ## 必须 使用 yum -y localinstall nginx-1.6.2-1.x86_64.rpm
  
里程碑2:   配置 chkconfig 和 安装完成后立即启动

待完成!

###里程碑1的思路
初步是想在创建用户的那个脚本里直接添加 创建用户领命和 软连接操作
以及完成yum安装这两个rpm包的操作

###l里程碑2的 chkconfig 思路 
在/etc/init.d/rc3.d/   创建一个名为 nginx 的文件 文件中写入: 
# chkconfig: 2345 100 200
# description: SSH is a protocol for secure remote shell access.
 . /application/nginx 

然后使用chkconfig --add  nginx   添加入系统服务中
那么他开机就会启动了

里程碑1和2  会在近期进行测试.完成后会在这个帖子中进行更新.  
2018年4月16日 2:06:46 



FPM包定制完成 (等待实现 里程碑 1 和 2) 2018年4月13日 2:18:32的更多相关文章

  1. [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 )

    [分享] 从定制Win7母盘到封装详细教程 By BILL ( 10月23日补充说明 ) billcheung 发表于 2011-10-23 00:07:49 https://www.itsk.com ...

  2. pycharm2018.1.4激活破解方法与汉化包-2018年6月19日

    记录下来备用,顺便分享给大家,有能力的还是希望能够支持正版!支持正版!支持正版! 方法1:激活服务器,最简单快速(截止2018年6月19日可用) 在激活Jetbrains旗下任意产品的时候选择激活服务 ...

  3. FPM简介(定制rpm包)

    FPM简介 fpm是生成rpm包的工具.rpm包的制作,采用fpm工具完成,FPM非常易用,此命令可以把rpm包的安装.卸载做得更加优雅,在安装前可以做一些准备工作,安装后可以做一些收尾工作,在卸载前 ...

  4. RPM包定制

    概述 问题:当领导给你 100 台已经安装好系统的服务器,然后让优化,让你提出一个快速部署方案.解答: 1.tar 打包 先编译安装 打包-->分发-->解包(比如 mysql 打包后直接 ...

  5. 96、linux之rpm包定制

    96.1.rpm包定制介绍: 编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. yum安装软件,优点是全自动化安装, ...

  6. Android ROM包定制(解包,增删模块,打包)

    1. 解包 假设有一个名为update.zip的ROM包,我们要在Ubuntu下对它进行定制.首先把system.transfer.list和system.new.dat.br(有些旧版的系统的镜像可 ...

  7. 4月8日 python学习总结 模块与包

    一.包 #官网解释 Packages are a way of structuring Python's module namespace by using "dotted module n ...

  8. 2019年9月3日安卓凯立德全分辨率(路况)夏季版C3551-C7M24-3K21J25懒人包

    拷贝懒人包NaviOne文件夹到机器根目录或内存卡根目录下:安装其中的apk程序 2019凯立德C3551-C7M24-3K21J25新组合懒人包 [分辨率]:自适应 [适用系统]:Android2. ...

  9. 连接池设置导致的“血案” 原创: 一页破书 一页破书 5月6日 这个问题被投诉的几个月了,一直没重视——内部客户嘛😿 问题现象: 隔几周就会出现 A服务调用B服务超时 脚趾头想就是防火墙的问题,A、B两服务之间有防火墙 找运维查看防火墙日志确实断掉了tcp连接,但是是因为B服务5分钟没有回包,下面这个表情就是我当时的心情——其实我们在防火墙、A服务、B服务都抓包了,几十个G的t

    连接池设置导致的“血案” 原创: 一页破书 一页破书 5月6日 这个问题被投诉的几个月了,一直没重视——内部客户嘛

随机推荐

  1. 2、配置Selenium RC

    1.相关Jar包:链接: https://pan.baidu.com/s/1YLp-_5t7heyzPg550BWTGg 密码: w7ne 2.启动Selenium的方法 (1)cmd命令进入sele ...

  2. rabbitmq -- networking

    RabbitMQ大名鼎鼎, 其networking 部分经常被众多Erlang 程序员, 爱好者分析. 小的时候就见到很多人写过这方面的blog, 比如: 1, http://www.blogjava ...

  3. hihoCoder1304:24点

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 周末,小Hi和小Ho都在家待着. 在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑克来打发时间. 小Ho:玩 ...

  4. SpringBoot之二:部署Spring Boot应用程序方式

    衡量多种部署方式 Spring Boot应用程序有多种构建和运行方式,其中一些你已经使用过了. 在IDE中运行应用程序(涉及Spring ToolSuite或IntelliJ IDEA). 使用Mav ...

  5. spring--AOP--权限---demo1---bai

    AOP权限DEMO1: 实体类: package com.etc.entity; import org.aspectj.lang.annotation.Pointcut; public class U ...

  6. Celery-4.1 用户指南: Daemonization (系统守护进程)

    Generic init-scripts 查看Celery发布里的 extra/generic-init.d/ 文件夹. 这个文件夹中包含了celery worker 程序的通用bash初始化脚本,可 ...

  7. Ubuntu中vi命令的使用

    指今说明: 进入 vi 的命令vi filename: 打开或新建文件,并将光标置于第一行首 vi +n filename: 打开文件,并将光标置于第n行首 vi + filename: 打开文件,并 ...

  8. python中引号中有双引号

    #/usr/bin/python import os name = "ABC" #ABC是具体的模块名,产品经理每一次给的模块名字都不一样 os.environ['name'] = ...

  9. java 多线程系列基础篇(四)之 synchronized关键字

    1. synchronized原理 在java中,每一个对象有且仅有一个同步锁.这也意味着,同步锁是依赖于对象而存在.当我们调用某对象的synchronized方法时,就获取了该对象的同步锁.例如,s ...

  10. NULL、0、nullptr

    C的NULL 在C语言中,我们使用NULL表示空指针,也就是我们可以写如下代码: int *i = NULL;foo_t *f = NULL; 实际上在C语言中,NULL通常被定义为如下: #defi ...