笔者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. 解决前端开发sublime text 3编辑器无法安装插件的问题

    今天在笔记本电脑上安装了个sublime,但是却出现无法装插件的问题.于是稍微在网上查了些资料,并试验了一番,写了如下文章. 安装插件的步骤: 弹出 选中install package 如果出现如下问 ...

  2. Android基础_一次上传多张图片

    获取权限 <uses-permission android:name="android.permission.CAMERA"/> <uses-permission ...

  3. IntelliJ IDEA 17和Maven构建javaWeb项目

    前言 电脑又断电了,眼看着写好的东西就没有了,这是第二次犯这个错误了.很难受呀!还是回到正题吧,我们来使用IDEA和Maven构建一个JavaWeb项目 软件环境: IDEA:2017.2.1 JDK ...

  4. Java集合源码分析(三)Vevtor和Stack

    前言 前面写了一篇关于的是LinkedList的除了它的数据结构稍微有一点复杂之外,其他的都很好理解的.这一篇讲的可能大家在开发中很少去用到.但是有的时候也可能是会用到的! 注意在学习这一篇之前,需要 ...

  5. RAC+ASM 添加控制文件

    环境介绍:11g RAC 使用 ASM 磁盘组,控制文件只有一个,需要进行添加 参照 MOS 文档 How to Multiplex Control File In RAC Database (文档 ...

  6. Codeforces 777C Alyona and Spreadsheet

    C. Alyona and Spreadsheet time limit per test:1 second memory limit per test:256 megabytes input:sta ...

  7. 2017 Multi-University Training Contest - Team 9 1004&&HDU 6164 Dying Light【数学+模拟】

    Dying Light Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Tot ...

  8. hdu_1018(斯大林公式/n!的位数)

    题意:求大数n!的位数. 根据n! = (int)log(n!)+1 方法1: log(n!) = log(1*2*3*...*n) = log1+log2+...+logn 方法2: 斯大林公式: ...

  9. 通过Git Gui Here上传本地项目到GitHub上

    要使用此种方法上传本地项目到GitHub上,前提得是你已安装Git for window工具. Git for window下载地址:http://www.xp510.com/xiazai/Appli ...

  10. 百度编辑器ueditor

    ,怎么将上传的图片路径改到项目的public/uploads文件夹呢?哪位大神改过