zoukankan      html  css  js  c++  java
  • 定制RPM包

    根据自己需求编译软件--->定制rpm包---->搭建内网yum仓库---->yum安装

    打包工具FPM打包工具

    镜像修改成阿里云

    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
    FPM是ruby写的,环境需要ruby并且版本要大于1.8.5
    yum install -y ruby rubygems ruby-devel

    添加阿里云的rubygems仓库,外国的慢

    gem sources -a http://mirrors.aliyun.com/rubygems/

    移除原生的ruby仓库

    gem sources --remove http://rubygems.org/

    安装fpm

    gem install fpm -v 1.3.3

    指定安装fpm 1.3.3版本的软件,fpm这个工具升级频率,升级后就不能用

    (如果这里报错)

    gem install fpm -v 1.3.3 
    ERROR: Error installing fpm:
    ffi requires Ruby version >= 1.9.

    解决办法就是升级ruby(2.0以上版本也适用)

    安装RVM
    
    gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB 
    curl -sSL https://get.rvm.io | bash -s stable
    find / -name rvm -print
    /usr/local/rvm
         /usr/local/rvm/src/rvm
         /usr/local/rvm/src/rvm/bin/rvm
         /usr/local/rvm/src/rvm/lib/rvm
         /usr/local/rvm/src/rvm/scripts/rvm
         /usr/local/rvm/bin/rvm
         /usr/local/rvm/lib/rvm
         /usr/local/rvm/scripts/rvm
    
    source /usr/local/rvm/scripts/rvm
    查看rvm库中已知的ruby版本
    rvm list known
    安装一个ruby版本
    rvm install 1.9.3
    使用一个ruby版本:
    rvm use 1.9.3
    设置默认版本
    rvm use 1.9.3 --default
    查看ruby版本
    ruby --version

     fpm参数简介(fpm --help)

    -s   指定源类型

    -t  指定目标类型,想要制作什么包

    -n  指定包的名字

    -v  指定报的版本号

    -C 指定打包的相对路径

    -d 指定依赖于那些包

    -f 第二次打包时目录下如果有相同名安装保存在,覆盖

    -p  输出的安装包的目录,不想放在当前目录下就需要指定

    --description  描述

    --post-install  软件包安装完成之后所需要运行的脚本,同--after-install

    --pre-install   软件包安装完成之前所需要运行的脚本,同--before-install

    --post-uninstall 软件包卸载完成之后所需要运行的脚本,同--after-remove

    --pre-uninstall  软件包卸载完成之前所需要运行的脚本,同--befort-remove

    实战定制nginx的RPM包

    先检查自己selinux关闭,iptables关闭

    getenforce
    Disabled

     /etc/init.d/iptables stop

    准备好nginx安装包,放在/application/tools下面

    mkdir /application/tools -p

    上传nginx.1.6.3.tar.gz

    开启yum缓冲

    vim /etc/yum.conf 

    keepcache=1

    缓存地址/var/cache/yum/......

    如果使用的是虚拟机,就做个镜像,如果使用KVM也做一个镜像吧

    先安装nginx的依赖包(包多包少,看自己服务器的配置了)

    yum install pcre-devel openssl-devel -y

    cd /var/cache/yum/x86_64/6/base/packages

    ls

    openssl-1.0.1e-57.el6.x86_64.rpm

    pcre-devel-7.8-7.el6.x86_64.rpm

    openssl-devel-1.0.1e-57.el6.x86_64.rpm

    拷贝走

    find /var/cache -type f -name "*.rpm"|xargs cp -t /tmp/

    将这些包打包

    tar zcvf nginx_yum.tar.gz *.rpm

    下载到本地或者推送到别的服务器

    编译安装nginx

    cd /application/tools/

    useradd nginx -M -s /sbin/nologin 

    tar xf nginx-1.6.3.tar.gz

    cd nginx-1.6.3

     ./configure --prefix=/application/nginx-1.6.3 --user=nginx --group=nginx --with-http_ssl_module --with-http_stub_status_module

    make && make install

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

    编写脚本

    mkdir /server/scripts/ -p

    cd /server/scripts/

    vim nginx_rpm.sh

    #!/bin/sh
    useradd nginx -M -s /sbin/nologin
    ln -s /application/nginx-1.6.3/ /application/nginx

    打包

    安装遇到问题:(一定要使用绝对路径)

     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/

    1
    2
    3
    4
    5
    6
    7
    1.Need executable 'rpmbuild' to convert dir to rpm {:level=>:error}
    解决方法:
    yum install -y rpm-build
     
    2.如果里面有gcc make的错误.
    解决方法:
    yum install -y gcc  

    然后把包推送走,或者下载到本地

    PRM包命令讲解

    q query

    p packge

    i info

    l list

    #查看rpm包信息

    rpm -qpi 

    #查看rpm包内容

    rpm -qpl 

    #查看rpm包的依赖

    rpm -qpb

    #查看rpm包带的执行脚本,执行脚本不是以文本形式存在的

    rpm -qp --scripts

    #安装rpm包

    rpm -ivh

    rpm -ivh --aid *.rpm(--aid参数解决rpm包循环依赖的问题)

    如果把所有包都下载到本地,或者推送到别的服务器,可以恢复镜像了(或者新的服务器)

    上传

    nginx_yum.tar.gz

    nginx-1.6.3-1.x86_64.rpm

    安装rpm 三种方式

    yum 安装rpm

    yum localinstall nginx-1.6.3-1.x86_64.rpm

    这个命令会优先从网络安装rpm包的依赖包,然后在安装nginx的rpm包

    rpm命令安装

    rpm -vih nginx-1.6.3-1.x86_64.rpm

    会报错

    error:falied dependencies;/.....pcre-develis need....openssl....(没有依赖包)

    解决,yum install pcre-develis  openssl-devel -y(先不用)

    yum仓库

    YUM仓库搭建过程

     

    yum -y install nginx

  • 相关阅读:
    Viewpager的用法
    Android上下文菜单
    Android开机自启动程序
    微信小程序踩过的坑
    Sublime Text 配置python文件
    Pandas速查手册中文版
    scrapy架构设计分析
    爬虫服务集群处理nginx返回504
    phantomjs 无法打开https网站
    Selenium判断获取的元素是否可见(display:none)
  • 原文地址:https://www.cnblogs.com/sky00747/p/8568949.html
Copyright © 2011-2022 走看看