zoukankan      html  css  js  c++  java
  • 自制rpm包


    自制rpm包


    为什么要打rpm包,一个下载下来的源码包,需要各种依耐才能安装好,而且安装过程繁琐,如果把安装好的源码包制作成rpm包就可以一键的完成安装,一次打包,永久解决问题,在工作中也能更加的省时省力。


    实验环境


    主机名:yum_repo IP1:10.0.0.88 (yum仓库) vsftpd做yum仓库

    主机名:yum_client IP2:10.0.0.99 (vim /etc/yum.repos.d/yum.repo)

    2.准备一台新的虚拟机,源码安装nginx并且打成RPM,修改欢迎页面

    3.将rpm包和依赖包,放到 yum仓库中

    4.client 直接执行 yum install nginx -y

    10.0.0.100打包nginx的主机


    步骤一 : 源码安装nginx


    安装过程
    - 解压
    - 生成
    - 编译
    - 安装

    环境的准备

    1、 下载nginx源码包

    也可直接到nginx的官网下载,由于官网的更新,链接地址可能会失效。

    [root@gong /data]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
    

    2、解压

    [root@gong /data]# tar xf nginx-1.16.1
    [root@gong /data]# cd nginx-1.16.1
    

    3、创建要安装到的目录

    [root@gong /data/nginx-1.16.1]# mkdir /app
    

    4、创建指定启动程序的用户

    [root@gong /data/nginx-1.16.1]# useradd nginx -s /sbin/nologin -M
    

    5、安装编译安装需要的依耐(补充步骤)

    [root@gong ~]# vi /etc/yum.conf 
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=1
    
    [root@qls nginx-1.16.1]# yum install -y gcc gcc-c++ glibc zlib-devel pcre-devel openssl-devel
    
    或者
    yum -y install gcc gcc-c++ 
    glibc zlib-devel pcre-devel openssl-devel  --downloadonly --downloaddir=/opt
    
    # 把下载的依耐复制到/opt中备份
    [root@yum_repo /data/nginx-1.16.1]# find /var/cache/yum -name '*.rpm'| xargs cp -t /opt
    

    6、指定安装的信息 - 生成

    [root@gong /data/nginx-1.16.1]# ./configure --prefix=/app/nginx-1.6.1 --user=nginx --group=nginx
    

    7、编译

    [root@gong /data/nginx-1.16.1]# make
    

    8、安装

    [root@gong /data/nginx-1.16.1]# make install
    

    9、检查配置文件是否有误

    [root@gong /app/nginx-1.6.1/sbin]# /app/nginx-1.6.1/sbin/nginx -t
    nginx: the configuration file /app/nginx-1.6.1/conf/nginx.conf syntax is ok
    nginx: configuration file /app/nginx-1.6.1/conf/nginx.conf test is successful
    
    #注: 注意使用nginx
    

    10、启动nginx

    [root@gong /app/nginx-1.6.1/sbin]# /app/nginx-1.6.1/sbin/nginx
    注意:使用绝对路径
    

    11、访问测试

    12、创建链接-便于升级

    [root@gong /app]# ln -s /app/nginx-1.6.1/ nginx
    

    步骤二 : 个性化nginx


    [root@qls html]# vim /app/nginx-1.16.1/html/index.html
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8"/>
    <title>龚晓廖的主页</title>
    <style>
        body {
             35em;
            margin: 0 auto;
            font-family: Tahoma, Verdana, Arial, sans-serif;
        }
    </style>
    </head>
    <body>
    
    <h1 style="color:red;">欢迎来到龚晓廖的主页</h1>
    <a href="http://www.baidu.com/">友链,百度</a></p>
    
    </body>
    </html>
    
    

    步骤三 : 打包nginx


    1、安装打包rpm的工具-----fpm

    [root@gong ~]# /fpm
    上传fpm的安装包
    [root@gong /fpm]# tar xf fpm-1.3.3.x86_64.tar.gz
    [root@gong /fpm]# ll
    total 2572
    -rw-r--r-- 1 root root   15360 Jun 27  2016 arr-pm-0.0.10.gem
    -rw-r--r-- 1 root root   88064 Jun 27  2016 backports-3.6.8.gem
    -rw-r--r-- 1 root root   21504 Jun 27  2016 cabin-0.8.1.gem
    -rw-r--r-- 1 root root   29184 Jun 27  2016 childprocess-0.5.9.gem
    -rw-r--r-- 1 root root   24576 Jun 27  2016 clamp-0.6.5.gem
    -rw-r--r-- 1 root root  881664 Jun 27  2016 ffi-1.9.10.gem
    -rw-r--r-- 1 root root  114176 Jun 27  2016 fpm-1.3.3.gem
    -rw-r--r-- 1 root root 1288103 Apr 16 12:14 fpm-1.3.3.x86_64.tar.gz
    -rw-r--r-- 1 root root  152064 Jun 27  2016 json-1.8.2.gem
    
    

    2、安装ruby,安装gpm包的命令。

    [root@gong fpm]# yum -y install ruby rubygems ruby-devel rpm-build
    

    3、更换gem的源

    # 1.查看gem的源
    [root@gong fpm]# gem sources --list
    *** CURRENT SOURCES ***
    
    https://rubygems.org/
    
    # 2.更换阿里云的源 先移除国外源
    [root@qls fpm]# gem sources --remove https://rubygems.org/
    
    # 3.更换阿里云的源, 添加阿里云的源
    [root@qls fpm]# gem sources -a https://mirrors.aliyun.com/rubygems/
    

    4、安装gem文件

    [root@gong /fpm]# gem install *.gem
    

    5、编辑安装程序之后要执行的脚本

    [root@gong /fpm]# vim /fpm/nginx.sh
    #!/bin/bash
    useradd nginx -s /sbin/nologin -M
    ln -s /app/nginx-1.16.1 /app/nginx
    

    6、使用fpm打包

    执行这步之后就会生成一个rpm包,里面包含了依耐关系。就可以直接安装了。

    fpm -s dir -t rpm -n nginx -v 1.16.1 -d 'zlib-devel,gcc,gcc-c++,glibc,pcre-devel,openssl-devel' --post-install /fpm/nginx.sh -f /app/nginx-1.6.1/
    
    fpm:打rpm包命令
    -s:dir     # 打目录
    -t:rpm     # 把目录打成rpm包
    -n:nginx   # 软件名字叫nginx
    -v:1.16.1  # 软件的版本号
    -d:        # 指定nginx的依赖包,安装的时候会找到他们并安装
    -f:        # 指定要达成rpm包的目录路径
    --post-install # 指定rpm包安装完成之后要执行的脚本
    --pre-install  # 指定rpm包安装之前,要执行的脚本
    
    

    10.0.88服务端配置

    1、yum_repo服务端安装服务
    [root@yum_server ~]# yum -y install vsftpd createrepo
    
    2、启动ftp服务
    [root@yum_server ~]# systemctl start vsftpd
    
    3、10.0.0.100打包nginx的主机,把rpm包和依耐上传到yum_repo服务端
    [root@yum_eve fpm]# scp /opt/* root@10.0.0.88:/var/ftp/pub
    [root@yum_eve fpm]# scp /fpm/nginx-1.16.1-1.x86_64.rpm root@10.0.0.88:/var/ftp/pub
    
    4、生成yum仓库
    [root@yum_server /var/ftp/pub]# createrepo /var/ftp/pub/
    
    

    10.0.0.99客户端配置

    1、客户端访问,编辑配置文件
    [root@yum_client yum.repos.d]# vi /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx
    baseurl=ftp://10.0.0.88/pub/
    enabled=1
    gpgcheck=0
    
    2、客户端安装nginx
    [root@yum_client app]# yum -y install nginx
    
    3、启动访问测试
    [root@yum_client app]# /app/nginx/sbin/nginx
    

  • 相关阅读:
    sync 解释
    USB枚举详细过程剖析(转)
    内核早期内存分配器:memblock
    LTE:eMBMS架构
    对linux内核中jiffies+Hz表示一秒钟的理解
    android的USB MTP && USB CDC/USBnet(ECM, NCM, ACM) && USB gardget
    Install Shield中调用devcon自动安装硬件驱动程序
    利用 devcon.exe实现自动安装驱动(转)
    linux系统IO调度算法
    ZooKeeper原理详解及常用操作
  • 原文地址:https://www.cnblogs.com/gshelldon/p/13276415.html
Copyright © 2011-2022 走看看