笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

当我们自动化部署集群的时候,想要快速的安装所有服务,搭建yum仓库与定制rpm包是我们首先要做的

原创作品,转载请注明出处。http://www.cnblogs.com/Csir/  本人导师---悠久之翼

#服务端
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 -p /home/oldboy/tools
cd /home/oldboy/tools
wget -q http://nginx.org/download/nginx-1.10.2.tar.gz

#配置

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

#编译

make && make install

#做软连接

ln -s /application/nginx-1.10. /application/nginx

#启动nginx进行测试

/applicaton/nginx/sbin/nginx 

lsof -i:

#======================================

#==================================
#定制rpm包
####下载工具

yum install fpm-1.6.-.x86_64.rpm -y
rpm -qa fpm

#将nginx打包

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

#错误说明:

#.[root@m01 application]# fpm -s dir -t rpm -n mysql -v 5.6.   -f /application/mysql-5.6.-linux-glibc2.-x86_64  --post-install /server/scripts/mysql_rpm.sh
All flags should be before the first argument (stray flags found: ["--post-install"] {:level=>:warn}
Invalid package configuration: Cannot package the path './--post-install', does it exist? {:level=>:error}

解决方法: --post-install不能放到最后,选项的顺序最好不要随意变换

#这样。。将定制好的nginx-1.10.2-1.x86_64 放入下面yum仓库对应目录,客户端配置一下就可以进行yum安装了
#fpm相关命令说明
#    fpm -h #查看命令的帮助,下面对常用的参数进行简单的说明
#    -s:指定源类型
#    -t:指定目标类型
#    -n:指定名字
#    -v:指定版本号
#    -C:指定打包的相对路径
#    -d:指定依赖于哪些包
#    -f:第二次打包时目录下如果有同名安装包存在,则覆盖它
#    -p:输出的安装包的目录,不想放在当前目录下就需要指定
#    --post-install  软件包安装完成之后所要运行的脚本;同--after-install
#    --pre-install  软件包安装完成之前所要运行的脚本;同--before-install

#=================================
#=================================

#安装createrepo软件(创建存储库)

yum -y install createrepo

#创建yum仓库目录

mkdir -p /application/nginx/html/yumcache/

#将保存好的rpm包放入/application/nginx/html/yumcache/

#初始化yum仓库

createrepo -pdo /application/nginx/html/yumcache/ /application/nginx/html/yumcache/

##当有新的rpm放到/application/nginx/html/yumcache里时,执行更新

createrepo --update /application/nginx/html/yumcache/

#修改nginx配置文件,让它默认访问浏览器找到html/yumcache/目录

cat  >/application/nginx/conf/nginx.conf<<EOF
worker_processes ;
events {
worker_connections ;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout ;
server {
listen ;
server_name localhost;
location / {
root html/yumcache;
autoindex on; ##开启目录
index index.html index.htm;
}
error_page /50x.html;
location = /50x.html {
root html;
}
}
}
EOF

#检查语法重启nginx服务

/application/nginx/sbin/nginx -t
/application/nginx/sbin/nginx

#访问ip可以查看yum仓库内容,下面会多个一个repodata/目录,是createrepo生成的。
#这是一个简单的yum仓库就搭建完成了,但是现在只有nginx的功能,以后可以增加更多的内容,放进来目录即可

==========================================
==========================================

##客户端部署

cd /etc/yum.repos.d/
mkdir yum_bak

#把之前的yum源移动到刚创建的目录做备用
mv *.repo yum_bak

#新建一个本地yum源文件

cat >/etc/yum.repos.d/myyum.repo<<EOF
[myyum]
name=Server
baseurl=http://10.0.0.61
enabled=
gpgcheck=
EOF #清空之前的缓存
yum clean all

==================================================
==================================================

错误排查

Error: Package: nginx (myyum)
Requires: libxslt-develpcre

#在提示类似错误的时候,是缺少某个依赖包,下来放到yum仓库即可。
#仓库执行update的命令;客户端执行yum clean all

#如果确认仓库有包,但是客户端没有,排查思路
#1、yum仓库createrepo --update /application/nginx/html/yumcache/
#2、客户端,yum clean all;
#3、如何还不可以,服务端删除生成的repodata目录,重新createrepo -pdo /application/nginx/html/yumcache/ /application/nginx/html/yumcache/,然后执行第二步;
#在客户机安装的时候总提示没有可用的安装包,最后发现是/etc/yum.repos.d/下的文件名后缀写错了。

==============================================================
在客户机安装的时候总是提示文件找不到,什么都不能安装

error was [Errno ] Local file does not exist: /root/pdate/libiconv-devel-1.14-.x86_64.rpm
libxml2-devel-2.7.-.el6_8..x86_64: failed to retrieve libxml2-devel-2.7.-.el6_8..x86_64.rpm from m01
error was [Errno ] Local file does not exist: /root/pdate/libxml2-devel-2.7.-.el6_8..x86_64.rpm
libX11-devel-1.6.-.el6.x86_64: failed to retrieve libX11-devel-1.6.-.el6.x86_64.rpm from m01
error was [Errno ] Local file does not exist: /root/pdate/libX11-devel-1.6.-.el6.x86_64.rpm
libXt-1.1.-6.1.el6.x86_64: failed to retrieve libXt-1.1.-6.1.el6.x86_64.rpm from m01
error was [Errno ] Local file does not exist: /root/pdate/libXt-1.1.-6.1.el6.x86_64.rpm
mhash-0.9.9.9-.el6.x86_64: failed to retrieve mhash-0.9.9.9-.el6.x86_64.rpm from m01
error was [Errno ] Local file does not exist: /root/pdate/mhash-0.9.9.9-.el6.x86_64.rpm
libmcrypt-2.5.-.el6.x86_64: failed to retrieve libmcrypt-2.5.-.el6.x86_64.rpm from m01
error was [Errno ] Local file does not exist: /root/pdate/libmcrypt-2.5.-.el6.x86_64.rpm

解决方法:在服务端在/application/nginx/html/yumcache/下删除repodata    这个目录然后执行
createrepo --update /application/nginx/html/yumcache即可

rpm的常用命令

rpm -qpi your.rpm #查看rpm包信息
rpm -qpl your.rpm #查看rpm包内容
rpm -qpR your.rpm #查看rpm包的依赖
rpm -qp --scripts your.rpm #查看rpm包要执行的脚本,存的不是文件了。
rpm -ivh your.rpm #安装rpm包

搭建yum仓库与定制rpm包的更多相关文章

  1. 自动化部署必备技能—部署yum仓库、定制rpm包

    部署yum仓库.定制rpm包 目录 第1章 扩展 - yum缓存 1.1 yum缓存使用步骤... 1 1.1.1 导言... 1 1.1.2 修改配置文件... 1 1.1.3 使用缓存... 1 ...

  2. 其他综合-搭建本地yum仓库及自制rpm包

    搭建本地yum仓库及自制rpm包 实验目的 为方便本地 yum 的管理,建本地 yum 仓库,实现局域网内部快速安装常用软件 实验环境 VMware:12版本 系统版本:CentOS Linux re ...

  3. 定制rpm包---Yum环境搭建

    1.1 在yum服务器上创建yum仓库命令 mkdir -p /application/nginx/html/yum cd /application/nginx/html/yum rz #上传rpm包 ...

  4. FPM定制RPM包实践

    1.1 快速部署方案 ✔ 问题:当领导给你 100 台已经安装好系统的服务器,然后让优化,让你提出一个快速部署方案. 解答: 1.tar 打包 先编译安装 打包-->分发-->解包(比如 ...

  5. 使用ftp搭建yum仓库

    此次操作在VMware Workstation虚拟机的CentOS7.5下进行 这里使用两台Linux主机,下表是它们所使用的操作系统以及IP地址. 两台Linux主机所使用的操作系统以及IP地址 操 ...

  6. linux局域网搭建yum仓库(本地(file)、网络(ftp、http))

    linux局域网搭建yum仓库(本地(file).网络(ftp.http)) yum配置文件解释: [ ]:定义仓库,base为仓库的名字,可任意 name:仓库的简短文字描述 baseurl:仓库的 ...

  7. yum localinstall 解决本地 rpm 包的依赖问题

    yum localinstall 解决本地 rpm 包的依赖问题 本文原始地址:https://sitoi.cn/posts/13384.html 使用命令: sudo rpm -ivh xxx.rp ...

  8. VMware15.5版本通过挂载系统光盘搭建yum仓库

    VMware15.5版本通过挂载系统光盘搭建yum仓库一.1.打开CentOS 7虚拟机. 2.登录虚拟机,选择未列出  用户名:root 密码:输入自己设置的密码 点击登录. 3.右键单击打开终端. ...

  9. yum 保存下载的rpm 包

    yum 保存下载的rpm 包 1 [root@bogon pluginconf.d]# vim /etc/yum.conf [main]cachedir=/var/cache/yum/$basearc ...

随机推荐

  1. HTTPS协议开通,Apache服务器CSR签名申请

    登录您的服务器终端 (SSH). 在命令提示符下,键入以下命令: openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -ou ...

  2. Linux批量处理文件脚本

    Linux shell字符串截取与拼接 一 Linux 的字符串截取很有用.有八种方法. 假设有变量 var=http://www.linuxidc.com/123.htm 1  # 号截取,删除左边 ...

  3. JavaSE(十一)之异常处理详解

    一.异常概述 在我们日常生活中,有时会出现各种各样的异常,例如:职工小王开车去上班,在正常情况下,小王会准时到达单位.但是天有不测风云,在小王去上班时,可能会遇到一些异常情况,比如小王的车子出了故障, ...

  4. 学习笔记-express路径问题

    在页面渲染成功之后,报错出现静态文件css样式引用路径出错,于是我就根据express api文档,托管静态文件作出修改,最后全是徒劳.于是我又从引用开始找起,<link rel="s ...

  5. Codeforces Round #356 (Div. 1) C. Bear and Square Grid

    C. Bear and Square Grid time limit per test 3 seconds memory limit per test 256 megabytes input stan ...

  6. html dl dt dd标签元素语法结构与使用

    dl dt dd认识及dl dt dd使用方法 标签用于定义列表类型标签. dl dt dd目录 dl dt dd介绍 结构语法 dl dt dd案例 dl dt dd总结 一.dl dt dd认识 ...

  7. 邓_ Jqery·笔记本【照片】

    -------------------------------------------------------------------------------------------- [PHP] - ...

  8. @ property 与@ synthesize 的作用 VS @interface

    表示声明了一个实例属性和它的getter和setter器 只在@interface中定义变量的话,你所定义的变量只能在当前的类中访问,在其他类中是访问不了的:而用@property声明的变量可以在外部 ...

  9. DALI解码模块

    DALI-MOD2接口模块使用手册 一.概述(联系人:张先生,电话:13923882807,QQ:813267849) 一.概述 欢迎使用本公司的DALI解码模块,该模块支持"DALI第一套 ...

  10. J.U.C JMM. pipeline.指令重排序,happen-before(续MESI协议)

    缓存(Cache)       CPU的读/写(以及取指令)单元正常情况下甚至都不能直接访问内存——这是物理结构决定的:CPU都没有管脚直接连到内存.相反,CPU和一级缓存(L1 Cache)通讯,而 ...