自动化部署必备技能—搭建YUM仓库

目录

1. YUM仓库介绍

1.1 YUM是什么

1.2 YUM源是什么?

1.3 YUM源工作原理

2. YUM安装步骤

3. YUM服务配置文件及命令介绍

3.1 yum主配置文件yum.conf

3.2 yum命令使用.

4. 镜像同步公网yum源

1. YUM仓库介绍

参考博文:http://blog.oldboyedu.com/autodeploy-yum/

YUM主要用于自动安装、升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系。要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源。网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败。特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受。因此我们在优化系统时,都会更换国内的源。

相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性。有了局域网中的YUM源服务器,即便在Internet连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

1.1 YUM是什么

YUM(Yellow Dog Updater
Modified)为多个Linux发行版的软件包管理器,例如RedhadRHEL CentOS & Fedora。YUM主要用于自动安装,升级rpm软件包,他能自动查找并解决rpm包的依赖关系

YUM自动下载YUM包并安装,类似软件管家的一键安装功能:

1.2 YUM源是什么?

(1)要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源,

(2)网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败,特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受,因此我们在优化系统时,都会更换国内的源

(3)相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性,有了局域网中的YUM源服务器,即便在Internel连接中断的情况下,也不会影响其他YUM客户端的软件安装和升级。

2. YUM安装步骤

yum源配置文件存放路径:/etc/yum.repos.d

-----------------------yum仓库服务端配置----------------------

1. 安装createrepo软件,用于生成yum仓库数据库的软件

yum -y install createrepo

rpm -qa install createrepo

2. 创建yum仓库目录

mkdir -p /application/yum/centos6/x86_64/

cd /application/yum/centos6/x86_64/

获取rpm软件包方法:

  1. 自己制作rpm包

2. yumdownloaderpcre-devel openssl-devel   # 只下载软件不安装

平时yum安装软件时不删除安装包,对yum主配置文件做如下两项更改

vim /etc/yum.conf

cachedir=/var/cache/yum/$basearch/$releasever  yum缓存的目录,存储下载的rpm包和数据库

keepcache=1   安装完成后是否保留软件包,0:不保留(默认);1:保留

3. 将自己收集的软件包复制到/application/yum/centos6/x86_64/目录下

4. 初始化repodata索引文件

createrepo -pdo /application/yum/centos6/x86_64/ .

5. 每加入一个新rpm包就要更新一下

createrepo --update /application/yum/centos6/x86_64/

6. 如果有一个服务器占用80端口,需要将其关掉,防止80端口冲突

netstat -tunl|grep 80        # 检测80端口是都存在,存在就关闭该服务或者pkill掉

7. 将软件包发布到浏览其上,命令如下

cd /application/yum/centos6/x86_64/      必须在这个目录下

python -m SimpleHTTPServer 80 &>/dev/null&

8. 提供web服务,查看80端口是否开启

[[email protected] ~]# lsof -i :80            检查80端口是否开启

COMMAND  PID USER  FD   TYPE DEVICE SIZE/OFF NODENAME

python  4171 root   3u  IPv4  19675     0t0  TCP *:http (LISTEN)

python命令是通过80端口发布当前路径下的内容到浏览器上,所以要先cd到该目录下,然后可以用过浏览其输入本机的IP(10.0.0.61)地址,结果如下图

-----------------------yum仓库客户端配置----------------------

8. 检查YUM发布的页面客户端是否可以访问

[[email protected] ~]# curl -I 10.0.0.61     #<== 检查

HTTP/1.0 200 OK                #<== 200 ok 成功(下面的内容就省略咯)

9. 配置客户端yum源

cd /etc/yum.repos.d/

mkdir yum_bak && mv *repo yum_bak  #<== 在该创建新目录,并将该目录原有文件移动到该目录下

---------------继续在该路径下编辑文件(配置新的yum源)-----------------------------

vim oldboyedu.repo        #<== 继续在该路径下编辑文件(配置新的yum源)

[oldboy]             #<== yum名称

name=Server            #<== 自行定义

baseurl=http://10.0.0.61     #<== yum源服务器的IP地址

enable=1                 #<== 1是激活源,0表示不适用

gpgcheck=0                #<== 校验机制,检查rpm包是否是官网,0:关闭;1:开启

-------------------------------------------------------------------------------------------

yum clean all              #<== 清空本机已有yum缓存

yum list                 #<== 列表显示yum仓库软件包

yum --enablerepo=oldboy --disablerepo=base,extras,updates,epellist

#给服务器指定新的yum源

------搭建完成,现在就可以使用yum下载咯------哈哈哈-------

3. YUM服务配置文件及命令介绍

3.1 yum主配置文件yum.conf

[[email protected] /]# vim /etc/yum.conf

[main]

cachedir=/var/cache/yum/$basearch/$releasever  yum缓存的目录,存储下载的rpm包和数据库

keepcache=0   安装完成后是否保留软件包,0:不保留(默认);1:保留

debuglevel=2  Debug信息输出等级,范围为0-10.,缺省为2

logfile=/var/log/yum.log  日志文件位置

exactarch=1   有0/1两个选项,默认为1,则yum只会安装和系统架构匹配的软件包

obsoletes=1    update的参数。相当于upgrade,允许更新陈旧的RPM包。

gpgcheck=1

plugins=1    是否启用插件,默认1为允许,0为不允许

installonly_limit=5

bugtracker_url=http://bugs.centos.org/set_project.php?project_id=19&ref=http://bugs.centos.org/bug_report_page.php?category=yum

distroverpkg=centos-release  指定一个软件包,yum会根据这个包判断发行版本。

3.2 yum命令使用


功  能


命       令


安装软件包     *****


yum  install httpd

yum  -y install httpd


将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度


yum makecache


更新yum源    *****


yum repolist


列出软件包


yum  list httpd

# 用list函数,可搜索带名称的特定软件包


搜索软件包


yum  search httpd

# 不记得软件名称,可以使用search函数,搜索与指定软件包的名称想匹配的所有可用软件包


查找某个特定文件属于哪个软件包


yum  provides /etc/my.cnf


列出所有可用群组


yum  grouplist


安装群组软件包


yum  groupinstall ‘MySQL Database‘


列出启用的软件库


yum  repolist all      # 包括禁用的也列出


安装来自特定软件库的软件包


yum  --enablerepo=local install LNMP


不安装来自特定软件库的软件包


yum --enablerepo=local --disablerepo=base,extras,updates  install LNMP


清理yum缓存内容  *****


yum  clean all


查看yum历史记录   ***


yum  history

4. 镜像同步公网yum源

前面是将自己制作的rpm包,放入yum源,但还有一种企业需求,说的更加具体一点,平时学生上课yum安装软件都是从公网下载的,占用带宽,因此在学校里搭建一个内网的yum服务器,但又考虑到学生回家也要使用yum安装软件,如果yum软件的数据库文件repodata不一样,就会有问题,因此我想到的解决方法就是直接使用公网yun源的repodata。上游yum源必须支持rsync协议,否则不能使用raync进行同步

http://http//mirrors.ustc.edu.cn/status/    科技大学开源的yum源

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

# epel源

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

# 阿里云源

CentOS官方标准源:

rsync://mirrors.ustc.edu.cn/centos/  epel源:rsync://mirrors.ustc.edu.cn/epel/

同步命令

# 使用rsync同步yum源,为了节省带宽、磁盘和下载时间,我只同步了CentOS6的rpm包,这样所有的rpm包只占用了21G,全部同步需要300G左右。

# 同步base源,小技巧,我们安装系统的光盘镜像含有部分rpm包,大概,这些就不用重新下载。

---http://rsync.mirrors.ustc.edu.cn/centos/6/---------------

---http://mirrors.ustc.edu.cn/centos/6/--以下就是在这两个网站同步的----

# 创建同步的系统基本软件目录

mkdir -p/data/yum_data/centos/6/os/x86_64/

# 开始同步

/usr/bin/rsync -avzrsync://mirrors.ustc.edu.cn/centos/6/os/x86_64//data/yum_data/centos/6/os/x86_64/

----------------------------------------------------------------------

# 创建同步的附加软件目录

mkdir -p/data/yum_data/centos/6/extras/x86_64/

# 开始同步

/usr/bin/rsync -avzrsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64//data/yum_data/centos/6/extras/x86_64/

----------------------------------------------------------------------

# 创建同步的更新的目录

mkdir -p/data/yum_data/centos/6/updates/x86_64/

# 开始同步

/usr/bin/rsync -avzrsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64//data/yum_data/centos/6/updates/x86_64/


#epel

/usr/bin/rsync -av --exclude=debugrsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/


使用内网yum源方法

# 可以自建一个内网dns,如果没有,可使用hosts解析。

echo ‘192.168.0.200 mirrors.aliyun.com‘>>/etc/hosts

结果展示

[[email protected] data]# du -sh yum_data

21G    yum_data

[[email protected] data]# tree -L 3 yum_data/

yum_data/

├── centos

│  ├── 6

│  │   ├── extras

│  │   ├── os

│  │   └── updates

│  └── RPM-GPG-KEY-CentOS-6

├── epel

│  └── 6

│      └── x86_64

时间: 2024-10-24 17:16:39

自动化部署必备技能—搭建YUM仓库的相关文章

自动化部署必备技能——搭建YUM仓库

yum主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源.网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败.特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受.因此我们在优化系统时,都会更换国内的源. 相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性.有了局域网中

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

回顾下安装软件的三种方式: 1.编译安装软件,优点是可以定制化安装目录.按需开启功能等,缺点是需要查找并实验出适合的编译参数,诸如MySQL之类的软件编译耗时过长. 2.yum安装软件,优点是全自动化安装,不需要为依赖问题发愁了,缺点是自主性太差,软件的功能.存放位置都已经固定好了,不易变更. ===>如果你现在还为是使用编译安装软件还是使用yum安装软件发愁,那你就out了. 3.编译源码,根据自己的需求做成定制RPM包–>搭建内网yum仓库–yum安装.结合前两者的优点,暂未发现什么缺点.

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

这里也不介绍rpmbuild这个打包工具了,想了解的朋友自行谷歌百度.但我不建议大家花太多的时间去学习这个命令,比较晦涩,而且我会在下面介绍更简单的命令. FPM打包工具 FPM的作者是jordansissel FPM的github:https://github.com/jordansissel/fpm FPM功能简单说就是将一种类型的包转换成另一种类型. 安装fpm依赖: yum install -y  openssl* yum install -y gcc* yum install -y r

如何搭建yum仓库与定制rpm包

当我们自动仳部署集群的时候,想要快速的安装所有服务,搭建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 in

定制rpm包及搭建yum仓库

定制rpm包及搭建yum仓库 第1章 定制rpm包 1.FPM打包工具 FPM的作者是jordansisselFPM的github:https://github.com/jordansissel/fpmFPM功能简单说就是将一种类型的包转换成另一种类型. 支持的源类型包: dir         将目录打包成所需要的类型,可以用于源码编译安装的软件包 rpm         对rpm进行转换 gem         对rubygem包进行转换 python      将python模块打包成相应

搭建yum仓库远程登陆Win7系统

实验目的:Linux实现镜像文件自动挂载,搭建yum仓库,配置远程桌面功能,可以远程控制win7系统 1.找到/dev目录下的cdrom并挂载(自己创建挂载路径本实验用的是/mnt)2.安装远程连接所需软件包如下图所示:3.检查/etc/yum.repos.d目录下内容,将该目录下内容删除干净,否则会影响yum仓库的搭建:配置yum仓库:4.使用"yum install rdesktop -y"命令检查yum软件仓库是否已经可用.(中间省略部分内容)5.对win7 IP进行设置,并检查

Linux服务器上搭建yum仓库

概述 YUM主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源.网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败.特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受.因此我们在优化系统时,都会更换国内的源.相比较而言,本地YUM源服务器最大优点是局域网的快速网络连接和稳定性.有了局域

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

yum配置文件解释: [ ]:定义仓库,base为仓库的名字,可任意 name:仓库的简短文字描述 baseurl:仓库的位置,file://表示本地路径,/mnt为本地光盘路径,网络路径为:http,ftp enabled :是否启用仓库,1为启用,0为禁用 gpgcheck :是否检查GPG签名(用来验证安装包是否为红帽子官方的) GPGKEY :指定GPG签名的秘钥文件存放路径 一.本地搭建yum仓库 1.1首先挂载光盘,并查看是否挂载成功,   #sr0是光盘  以前的是cdrom 1.

搭建yum仓库

1.1 导言 YUM英文全称是Yellow Dog Updater Modified. YUM主要用于自动安装.升级rpm软件包,它能自动查找并解决rpm包之间的依赖关系.要成功的使用YUM工具安装更新软件或系统,就需要有一个包含各种rpm软件包的repository(软件仓库),这个软件仓库我们习惯称为yum源.网络上有大量的yum源,但由于受到网络环境的限制,导致软件安装耗时过长甚至失败.特别是当有大量服务器大量软件包需要安装时,缓慢的进度条令人难以忍受.因此在优化系统时,都会更换国内的源.