定制化rpm包及本地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仓库搭建的更多相关文章
- fpm定制化RPM包之nginx rpm包的制作
		
fpm定制化RPM包之nginx rpm包的制作 1.安装ruby模块 # yum -y install ruby rubygems ruby-devel 2.添加阿里云的Rubygems仓库,国外资 ...
 - Linux定制化RPM包
		
定制化RPM包 1.Linux安装软件方法 1- rpm/yum安装 简单.速度快,但是不能定制安装 RPM RedHat Package Manager(RPM软件包管理器) 2- 二进制安装 解压 ...
 - 自动化部署必备技能—定制化RPM包[转载]
		
回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...
 - 自动化部署必备技能—定制化RPM包
		
回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化 ...
 - linux运维、架构之路-rpm定制、本地yum仓库搭建
		
一.定制rpm包 1.环境 [root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [root@m01 ~]# uname - ...
 - linux 下载rpm包到本地,createrepo:创建本地YUM源
		
如何下载rpm包到本地 设置yum安装时,保留rpm包. 1.编辑 /etc/yum.conf 将keepcache的值设置为1; 这样就可以将yum安装时的rpm包保存在 /var/cache/yu ...
 - Firewalld共享上网及本地yum仓库搭建
		
1.firewalld共享上网 1.服务端操作(有外网的服务器) 1.开启防火墙并加入开机自启动 [root@zeq ~]# systemctl start firewalld [root@zeq ~ ...
 - 制定RPM包和加入YUM源
		
##################################################### ##如有转载,请务必保留本文链接及版权信息 ##欢迎广大运维同仁一起交流linux/unix ...
 - 本地yum仓库搭建及rpm软件包定制
		
环境内核信息: [root@zabbix-01 ~]# uname -a Linux lodboyedu-01 2.6.32-696.el6.x86_64 #1 SMP Tue Mar 21 19:2 ...
 
随机推荐
- Tensorflow object detection API 搭建物体识别模型(三)
			
三.模型训练 1)错误一: 在桌面的目标检测文件夹中打开cmd,即在路径中输入cmd后按Enter键运行.在cmd中运行命令: python /your_path/models-master/rese ...
 - 解决phpmyadmin 遇见的问题
			
1.phpmyadmin4.8.3 上传到网站目录后提示解决phpmyadmin mysqli_real_connect(): (HY000/2002): No such file or direct ...
 - 12.代理模式(Proxy Pattern)
			
直接与间接: 人们对复杂的软件系统常有一种处理手法,即增加一层间接层,从而对系统获得一种更为灵活.满足特定需求的解决方案. ...
 - C语言数据类型的转换(隐式转换)
			
算术运算符中的转换规则: double ←── float 高↑long↑unsigned↑int ←── char,short 低 注意: 图中横向箭头表示必须的转换,如两个float型数参加运算, ...
 - 批量获取oracle的表和表字段注释【原】
			
批量获取oracle的表和表字段注释 --用户表注释表 SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME LIKE 'WEB_ISC_%'; --显示指 ...
 - POJ - 2057 The Lost House(树形DP+贪心)
			
https://vjudge.net/problem/POJ-2057 题意 有一只蜗牛爬上某个树枝末睡着之后从树上掉下来,发现后面的"房子"却丢在了树上面,.现在这只蜗牛要求寻找 ...
 - LR与SVM的异同
			
原文:http://blog.sina.com.cn/s/blog_818f5fde0102vvpy.html 在大大小小的面试过程中,多次被问及这个问题:“请说一下逻辑回归(LR)和支持向量机(SV ...
 - Vertica系列:Vertica和Hadoop的互操作性
			
Vertica 8和 Hadoop 集群的互操作性已经很不错的, 但这块肯定是Vertica研发的重点, 将来可能还有较大的变动. Vertica 集群 和 Hadoop 集群的两种布局方式 集群布局 ...
 - VS Code使用 Vue工程配置 eslint
			
首先确保VS Code 安装了 Vetur 和 Eslint 插件. VS CODE :文件 =>首选项 => 设置 (有3个点 或 {} 这样的大括号,打开setting.json) ...
 - nginx静态资源反向代理
			
server { listen 80; server_name music.didi365.com; index index.php index.html index.htm; root /alida ...