笔者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. HTTP 首部字段详细介绍

    本文是HTTP解析系列第二篇,如果对http协议不是很了解,可以选去看第一篇:带新手走进神秘的HTTP协议,本文主要是对Http的首部字段进行详细解析. HTTP 协议的请求和响应报文中必定包含 HT ...

  2. C#学习笔记-备忘录模式

    什么是备忘录模式? 备忘录模式(Memento):在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态. 这样以后就可将该对象恢复到原先保存的状态. 备忘录模式的组成   Orig ...

  3. java调用c++函数的简单笔记

    java使用jni调用c++动态库函数. 步骤: 1.编写java测试代码如下: public class CallNativeDemo { native void func(); native do ...

  4. 使用mysql乐观锁解决并发问题

    案例说明: 银行两操作员同时操作同一账户.比如A.B操作员同时读取一余额为1000元的账户,A操作员为该账户增加100元,B操作员同时为该账户扣除50元,A先提交,B后提交.最后实际账户余额为1000 ...

  5. CTF---隐写术入门第一题 SB!SB!SB!

    SB!SB!SB!分值:20 来源: 西普学院 难度:中 参与人数:4913人 Get Flag:1541人 答题人数:1577人 解题通过率:98% LSB 解题链接: http://ctf5.sh ...

  6. 【Java学习笔记之十六】浅谈Java中的继承与多态

    1.  什么是继承,继承的特点? 子类继承父类的特征和行为,使得子类具有父类的各种属性和方法.或子类从父类继承方法,使得子类具有父类相同的行为. 特点:在继承关系中,父类更通用.子类更具体.父类具有更 ...

  7. [bzoj2288][POJ Challenge]生日礼物

    用堆维护双向链表来贪心... 数据范围显然不容许O(nm)的傻逼dp>_<..而且dp光是状态就n*m个了..显然没法优化 大概就会想到贪心乱搞了吧...一开始想贪心地通过几段小的负数把正 ...

  8. ThinkPHP基础知识

    1.入口文件中定义的内容 // 检测PHP环境if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 ! ...

  9. 判断标签是否包含class的方法

    if ($(this).find('i').hasClass('l-icon-wuxing')) { //取消收藏 $(this).find('i').removeClass('l-icon-wuxi ...

  10. Oracle_单行函数

    Oracle_单行函数 --dual是一张虚拟表,用于做测试 select sysdate from dual; select  from dual;   字符函数initcap(),lower(), ...