• linux运维、架构之路-rpm定制、本地yum仓库搭建


    一、定制rpm包

    1、环境

    [root@m01 ~]# cat /etc/redhat-release 
    CentOS release 6.9 (Final)
    [root@m01 ~]# uname -r
    2.6.32-696.el6.x86_64
    [root@m01 ~]# /etc/init.d/iptables status
    iptables: Firewall is not running.
    [root@m01 ~]# getenforce 
    Disabled
    [root@m01 ~]# hostname -I
    172.19.5.61 172.16.1.61 

    2、安装FPM

    yum install ruby rubygems ruby-devel -y #安装ruby模块
    gem sources -a http://mirrors.aliyun.com/rubygems/ #添加国内源
    gem sources --remove http://rubygems.org/          #移除原生的Ruby仓库
    gem install fpm                                    #安装fpm
    gem install fpm -v 1.4.0
    错误:
    Building native extensions.  This could take a while...
    Building native extensions.  This could take a while...
    ERROR:  Error installing fpm:
    解决:安装旧版本的fpm
    gem install fpm -v 1.4.0

    3、FPM命令参数介绍

    fpm --help
    -s 指定源类型
    -t 指定目标类型,既想要制作成什么包
    -n 指定包的名字
    -v 指定包的版本号
    -C 指定打包的相对路径
    -d 指定依赖于哪些包
    -f 第二次打包时目录下如果有同名安装包存在,则覆盖它
    -p 输出安装包的目录,不想放在当前目录下就需要指定 

    二、FPM实战打包NMP

    1、实战打包Nginx

    fpm -s dir -t rpm -n nginx -v 1.10.3 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh /application/nginx-1.10.3

    2、实战打包PHP

    fpm -s dir -t rpm -n php -v 5.5.32 -d 'zlib libjpeg freetype libpng gd curl zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel libjpeg-turbo-devel libcurl-devel libxslt-devel libmcrypt-devel mhash mcrypt' --post-install /server/scripts/php_rpm.sh -f /application/php-5.5.32/

    3、实战打包MySQL

    fpm -s dir -t rpm -n mysql -v 5.6.36 -d 'ncurses-devel libaio-devel cmake' --post-install /server/scripts/mysql_rpm.sh /application/mysql-5.6.36 /etc/init.d/mysqld /etc/my.cnf /etc/profile

    4、脚本文件

    #nginx_rpm.sh#
    useradd -s /sbin/nologin -M www
    ln -s /application/nginx-1.10.3/ /application/nginx
    ln -s /application/nginx/sbin/nginx  /usr/local/sbin/
    
    #php_rpm.sh#
    #!/bin/sh
    ln -s /application/php-5.5.32/ /application/php
    
    #mysql_rpm.sh#
    #!/bin/sh
    useradd -s /sbin/nologin -M mysql
    ln -s /application/mysql-5.6.36/ /application/mysql
    chown -R mysql.mysql /application/mysql-5.6.36/

    5、其它机子测试

    yum localinstall nginx-1.6.2-1.x86_64.rpm -y

    三、yum仓库搭建

    1、安装createrepo

    yum install createrepo -y #创建yum源软件

    2、创建yum仓库目录并初始化repodata索引文件

    mkdir -p /application/yum/centos6.9/x86_64/
    cd /application/yum/centos6.9/x86_64/ #拷贝rpm包到此目录
    createrepo -pdo /application/yum/centos6.9/x86_64/ /application/yum/centos6.9/x86_64/

    3、提供yum服务

    python -m SimpleHTTPServer 80 &>/dev/null & #python的http模块

    4、如果有新的rpm包放入必须更新

    createrepo --update /application/yum/centos6.9/x86_64/

    5、客户端修改yum源

    cd /etc/yum.repos.d/
    vi local.repo
    [onlylady]
    name=Server
    baseurl=http://172.19.5.61
    enable=1
    gpgcheck=0
    
    yum clean all  #清除本地缓存
    yum --enablerepo=local --disablerepo=base,extras,updates list #显示本地yum源列表
    #安装nginx为例#
    yum --enablerepo=local --disablerepo=base,extras,updates,epel install nginx -y

    6、yum命令参数

    成功最有效的方法就是向有经验的人学习!
  • 相关阅读:
    IDEA使用Git传放项目
    前端自适应知识点
    数据可视化
    vue调用Moment显示时间
    java判断通常的逻辑
    java常用的逻辑
    java匿名内部类练习
    java 匿名内部类
    java 内部类定义在局部时需要注意的情况
    java内部类的定义原则
  • 原文地址:https://www.cnblogs.com/yanxinjiang/p/8109933.html
Copyright © 2020-2023  润新知