为方便本地yum的管理,一般都是在公司局域网内搭建本地yum仓库,实现公司内部快速安装常用软件。
步骤如下:
1、搭建要实现本地yum管理的软件,测试该软件搭建成功与否;
2、定制rpm包及其相关依赖;
3、搭建本地yum源
4、配置客户端yum,实现局域网取包安装。
 
首先声明:该本地yum仓库中的包要尽量全,不然有些定制包可能安装不上。原因很简单,该包原本就需要一些其他的依赖包,而你的本地仓库没有。
 
安装nginx,测试安装是否成功
1.
#先保留平常下载下来的rpm包
sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf
这样当我们yum安装软件的时候,文件就是被保存下来:
/var/cache/yum/
#部署nginx,提供80端口服务
#安装依赖包
yum install  -y pcre-devel openssl-devel ;
rpm -qa  pcre-devel openssl-devel
#下载nginx-10.0.2
mkdir /tmp/tools
cd /tmp/tools/
tar xf nginx-1.10.2.tar.gz
cd nginx-1.10.2
mkdir /application
#配置
./configure  --user=www --group=www --prefix=/application/nginx-1.10.2 --with-http_stub_status_module  --with-http_ssl_module
#编译
make && make install
#做软连接
ln -s /application/nginx-1.10.2 /application/nginx
添加www用户:
useradd -u 789 www -s /sbin/nologin  -M
#启动nginx进行测试
/applicaton/nginx/sbin/nginx
 
lsof -i:80
关闭nginx 为定制rpm包做准备:
pkill   nginx
 
#定制rpm包
####下载工具及配置
FPM安装
#fpm是ruby写的,因此系统环境需要ruby,且ruby版本号大于1.8.5
#安装ruby模块
yum -y install ruby rubygems ruby-devel
检查安装成功与否
rpm -qa ruby rubygems ruby-devel
#添加阿里云的rubygems仓库,外国的源太慢
gem sources -ahttp://mirrors.aliyun.com/rubygems/ http://mirrors.aliyun.com/rubygems/ added to sources
#移除原生的Ruby仓库
gem sources --remove http://rubygems.org/ http://rubygems.org/ removed from sources
#安装fpm
#指定安装fpm1.3.3版本的软件,fpm这个工具升级很频繁,而且在每次升级后会出现各种各样的问题。但是老版本的fpm工具能够满足我们的需求,因此就用这个版本了。
#这里一定要指定fpm的版本,不然会报错,报错原因可追溯到版本频繁升级的问题导致。
gem install fpm -v 1.3.3
开始定制nginx 的rpm包
#创建nginx的rpm包要执行的脚本
cat  >  /server/scripts/nginx_rpm.sh   << eof
#!/bin/bash
 
useradd -u 789 www -M -s /sbin/nologin
ln -s /application/nginx-1.10.2/ /application/nginx
eof
#通过fpm命令打包rpm
fpm -s dir -t rpm -n nginx -v 1.10.2 -d 'pcre-devel,openssl-devel' --post-install /server/scripts/nginx_rpm.sh  -f /application/nginx-1.10.2/
#fpm相关命令说明
#    fpm -h #查看命令的帮助,下面对常用的参数进行简单的说明
#    -s:指定源类型
#    -t:指定目标类型
#    -n:指定名字
#    -v:指定版本号
#    -C:指定打包的相对路径
#    -d:指定依赖于哪些包
#    -f:第二次打包时目录下如果有同名安装包存在,则覆盖它
#    -p:输出的安装包的目录,不想放在当前目录下就需要指定
#    --post-install  软件包安装完成之后所要运行的脚本;同--after-install
#    --pre-install  软件包安装完成之前所要运行的脚本;同--before-install
#    --post-uninstall   软件包卸载完成之后所要运行的脚本;同--after-remove
#    --pre-uninstall    软件包卸载完成之前所要运行的脚本;同--before-remove
#查看rpm包信息
rpm -qpi nginx-1.10.2-1.x86_64.rpm
#查看rpm包内容
rpm -qpl nginx-1.10.2-1.x86_64.rpm
#查看rpm的包依赖
rpm -qpR nginx-1.10.2-1.x86_64.rpm
#查看rpm自带的执行脚本,执行脚本不是以文件的形式存在rpm包中
rpm -qp --scripts nginx-1.10.2-1.x86_64.rpm
 
创建本地yum仓库
创建仓库目录
mkdir /application/yum/centos6/x86_64 -p
将生成的nginx  rpm包放到该目录
mv nginx-1.10.2-1.x86_64.rpm /application/yum/centos6/x86_64/
安装createrepo
yum -y install createrepo
初始化repodata索引文件
createrepo -pdo /application/yum/centos6/x86_64/  /application/yum/centos6/x86_64/
#修改nginx配置文件,让它默认访问浏览器找到/application/yum/centos6/x86_64/目录
cat  >/application/nginx/conf/nginx.conf<<EOF
worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  localhost;
        location / {
            root   /application/yum/centos6/x86_64/;
            autoindex on;         ##开启目录
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}
EOF
检查nginx配置问,启动nginx:
/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx
使用yum下载nginx依赖包,拷贝到本地yum源目录:
yumdownloader pcre-devel openssl-devel
mv openssl* pcre* /application/yum/centos6/x86_64/
#每加入一个rpm包就要执行一下如下命令,用来更新索引
createrepo --update /application/yum/centos6/x86_64
 
配置客户端
创建脚本
cat >  /etc/yum.repos.d/local.repo  << eof
[local]
name=Server
baseurl=http://172.16.1.61
enable=1
gpgcheck=0
eof
yum操作、清除缓存、重新建立缓存;
yum clean all
指定指定使用local源,此命令重启linux系统失效:
yum --enablerepo=local --disablerepo=base,extras,updates,epel list
# 这条命令中的local名称一定要对应local.repo中的[local]!
#注意最下面白色的文件列表
永久生效法:
vi CentOS-Base.repo
#在每一个启动的源加上
enabled=0   #改为1就启用,没有此参数也是启用。
安装nginx
yum install nginx
 
~~~~~~~~~~~~~~~~~~~~~~~~~
扩展:
但还有一种企业需求,说的更具体一点,平时大家yum安装软件都是从公网下载的,占用带宽,因此在公司里搭建一个内网yum服务器,但又考虑到如果yum软件的数据库文件repodata不一样,就会有问题。因此我想到的解决方法就是直接使用公网yum源的repodata。
 
 
镜像同步公网yum源
上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。
http://mirrors.ustc.edu.cn/status/
CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/
epel源:rsync://mirrors.ustc.edu.cn/epel/
 
同步命令:
# 使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。
# 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概3G,这些就不用重新下载。
 
#创建四个目录,用于同步公网yum源
mkdir -p /application/yum/centos/6/os/x86_64/
mkdir -p /application/yum/centos/6/extras/x86_64/
mkdir -p /application/yum/centos/6/updates/x86_64/
mkdir -p /application/yum/epel/6/x86_64/
 
#下面四条命令,同时复制执行,就会开始同步官网yum源到本地。
1 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /application/yum/centos/6/os/x86_64/
2 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /application/yum/centos/6/extras/x86_64/
3 /usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /application/yum/centos/6/updates/x86_64/
4 /usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /application/yum/epel/6/x86_64/
 
 
 

定制化rpm包及本地yum仓库搭建的更多相关文章

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

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

  2. Linux定制化RPM包

    定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...

  3. 自动化部署必备技能—定制化RPM包[转载]

    回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...

  4. 自动化部署必备技能—定制化RPM包

    回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...

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

    一.定制rpm包 1.环境 [root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@m01 ~]# uname - ...

  6. linux 下载rpm包到本地,createrepo:创建本地YUM源

    如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...

  7. Firewalld共享上网及本地yum仓库搭建

    1.firewalld共享上网 1.服务端操作(有外网的服务器) 1.开启防火墙并加入开机自启动 [root@zeq ~]# systemctl start firewalld [root@zeq ~ ...

  8. 制定RPM包和加入YUM源

    ##################################################### ##如有转载,请务必保留本文链接及版权信息 ##欢迎广大运维同仁一起交流linux/unix ...

  9. 本地yum仓库搭建及rpm软件包定制

    环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...

随机推荐

  1. JAVA核心技术I---JAVA基础知识(工具类Arrays和Collections类)

    一:工具类 –不存储数据,而是在数据容器上,实现高效操作 • 排序 • 搜索 –Arrays类 –Collection类 二:Arrays类(处理数组) (一)基本方法 –排序:对数组排序, sort ...

  2. @GetMapping(value="/") , "/" 可加可不加 ,是不是一样的

    @GetMapping(value = "/user") 和  @GetMapping(value = "user") 的区别 1.带上 "/&quo ...

  3. Spark RDD基本概念与基本用法

    1. 什么是RDD RDD(Resilient Distributed Dataset)叫做分布式数据集,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具 ...

  4. Centos6下安装中文字体

    先安装字体管理软件 [root@localhost ~]# yum install fontconfig 将需要安装的字体放到/usr/share/fonts/chinese/目录下 如果不存在这个目 ...

  5. vue-cli脚手架笔记

    vue不支持IE8,因为vue使用了IE8无法模拟的 ECMAScript 5特性 使用vue-cli脚手架会让我们的工作非常方便 比如想编译一下es6的语法就使用 babel loader 和 ba ...

  6. SQL Server进阶(十)事务和并发处理

    1 https://www.cnblogs.com/edisonchou/p/6129717.html

  7. 判断闰年(Java)

    package day01; import java.util.Scanner; public class leap_year { public static void main (String[] ...

  8. 四十一、Linux 线程——线程同步之条件变量

    41.1 概念 41.1.1 条件变量的介绍 互斥锁的缺点是它只有两种状态:锁定和非锁定 条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足 条件变量内部是一个等待队列,放置等待 ...

  9. 三十六、Linux 线程——线程基本概念及线程的创建和终止

    36.1 线程介绍 36.1.1 线程的基本概念 进程是资源管理的最小单位,线程是程序执行的最小单位 每个进程都有自己的数据段.代码段和堆栈段. 线程通常叫做轻型的进程,它包含独立的栈和 CPU 寄存 ...

  10. cookie, session, token 是什么 以及相应的安全考量

    Cookie cookie 最常见的是用来保存一些账号信息,比如下图里的 记住账号 就是记录到了cookie里面 cookie 更主要的是针对和server通信的,我们知道http 是无状态的,那如果 ...