搭建yum仓库

1.1 导言

YUM英文全称是Yellow Dog Updater Modified。

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

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

http://mirrors.aliyun.com/ #<==阿里云开源镜像站点

http://mirrors.163.com/   #<==网易开源镜像站点


1.2 yum工作原理

实质其实是更换下载地址而已!

当我们用yum命令安装apache时,工作流程如下:

1.yum -y install httpd

2.查找yum仓库配置文件:/etc/yum.repos.d/CentOS-Base.repo,这个文件里面就有下载地址

3.CentOS系统默认会到国外的软件仓库下载rpm软件包

4.但是,国外的源比较慢,因此,系统优化时会换成阿里云的源

5.如果内网的网速带宽有限时,阿里云的源下载也会慢,因此,搭建内网的yum源,把公网的和自己做的rpm都放进去,可以完美的解决rpm包下载慢的问题了。


1.3 获取rpm软件包的三种方法

1.自己制作

2.yumdownloader pcre-devel #<==只下载软件不安装

3.平时yum安装软件时不删除安装包,需要修改配置文件

[root@backup ~]# cat /etc/yum.conf#<==修改yum源配置文件
#cachedir=/var/cache/yum/$basearch/$releasever#<==yum缓存目录
cachedir=/application/yum/centos6.7/x86_64/#<==yum缓存目录
keepcache=0#<==值为1,代表开启yum缓存


1.4 制作yum仓库

1.4.1 创建yum仓库目录

yum -y install createrepo
mkdir -p /application/yum/centos6.7/x86_64/
cd /application/yum/centos6.7/x86_64/
rz -y
tar xf nginx_yum.tar.gz


上传定制的 nginx rpm包到此目录,此目录下面还可以包括文件夹

[root@m01 /application/yum/centos6.7/x86_64]# ll
总用量 7260
-rw-r--r-- 1 root root 2273466 2017-05-30 13:40 nginx-1.6.3-1.x86_64.rpm
-rw-r--r-- 1 root root 5153058 2017-05-30 13:26 nginx_yum.tar.gz


1.4.2 初始化repodata索引文件

createrepo -pdo /application/yum/centos6.7/x86_64/ /application/yum/centos6.7/x86_64/
#每加入一个rpm包就要更新一下
createrepo --update /application/yum/centos6.7/x86_64/


1.4.3 提供yum服务

可以用Apache或nginx提供web服务,但用Python的http模块更简单,适用于内网环境。

注意:必须确保80端口没有被占用。

cd /application/yum/centos6.7/x86_64/
python -m SimpleHTTPServer 80 &>/dev/null &
lsof -i :80


用IE输入网址:10.1.8.33,可看到下面的内容,说明可提供给内网用户下载了。

wKiom1ktXMGj83g1AACU91DWylc874.png-wh_50

 

1.4.4 将本地光盘的rpm包复制到对应目录

mount /dev/cdrom /mnt/
df -h
\cp /mnt/Packages/* /application/yum/centos6.7/x86_64/base/packages/
du -sh /application/yum/centos6.7/x86_64/base/packages/
createrepo --update /application/yum/centos6.7/x86_64/


1.5 客户端配置

cd /etc/yum.repos.d
mkdir repo-bak && mv CentOS-* repo-bak/
cat >>local.repo<<EOF
[chen] 
name=c6.7-repo
baseurl=http://10.1.8.33
enable=1
gpgcheck=0
EOF

yum clean all #<==清空本机已有yum缓存
yum repolist #<==列出可用的yum仓库
yum list #<==列表显示yum仓库里的rpm包

[root@node4 /etc/yum.repos.d]# cat local.repo #<==自定义yum仓库
[chen] #<==仓库标识
name=c6.7-repo#<==仓库名称
baseurl=http://10.1.8.33#<==访问该仓库的方式
enable=1#<==启用这个软件仓库
gpgcheck=0#<==下载的rpm包不进行gpg校验

[root@node4 /etc/yum.repos.d]# yum repolist
仓库标识           仓库名称                 状态
chen               c6.7-repo                18
repolist: 18


1.5.1 安装定制好的nginx包(见证奇迹)

前面所有的操作,就是为了这一步。

yum install -y nginx
总计        6.5 MB/s | 7.7 MB     00:01   #<==内网的下载速度非常快!

ll /application/
lrwxrwxrwx 1 root root   25 2017-05-30 16:57 nginx -> /application/nginx-1.6.3/ #<==软链接也有
drwxr-xr-x 6 root root 4096 2017-05-30 16:57 nginx-1.6.3#<==文件目录已定制好

id nginx
uid=888(nginx) gid=888(nginx) 组=888(nginx) #<==用户也自动创建好

1.6 yum配置文件及命令


1.6.1 yum配置文件详解

[root@m01 ~]# head -5 /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever#<==yum下载的RPM包的缓存目录
keepcache=1#<==缓存是否保存,1保存,0不保存,默认为0
debuglevel=2#<==调试级别(0-10),默认为2
logfile=/var/log/yum.log#<==yum的日志文件所在的位置


1.6.2 yum命令详解

功能                   命令

安装软件包           yum install lrzsz -y

列出软件包           yum list lrzsz

搜索软件包           yum search lrzsz

查找某个特定文件属于哪个软件包 yum provides /etc/my.cnf

列出所有可用包组      yum grouplist

安装包组           yum groupinstall 'Web Server' -y

列出启用的yum仓库      yum repolist

列出所有的yum仓库      yum repolist all

清除yum缓存内容           yum clean all

生成缓存           yum makecache

查看yum历史记录※      yum history

安装来自特定软件库的软件包 yum --enablerepo=local install LNMP

不安装来自特定软件库的软件包 yum--enablerepo=local --disablerepo=base,extras,updates install LNMP

1.7 镜像yum源


1.7.1 镜像同步公网yum源

上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。

http://mirrors.ustc.edu.cn/status/ 

CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/

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


1.7.2 同步命令

/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/os/x86_64/ /data/yum_data/centos/6/os/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/extras/x86_64/ /data/yum_data/centos/6/extras/x86_64/
/usr/bin/rsync -av rsync://mirrors.ustc.edu.cn/centos/6/updates/x86_64/ /data/yum_data/centos/6/updates/x86_64/
# epel源
/usr/bin/rsync -av --exclude=debug rsync://mirrors.ustc.edu.cn/epel/6/x86_64/ /data/yum_data/epel/6/x86_64/


1.8 epel源

  • yum源称为默认的软件仓库

  • epel源称为扩展的软件仓库(Extra Packages for Enterprise Linux)


1.8.1 CentOS-Base源的优化

1、备份Base源

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/(阿里云)

3、之后运行yum makecache生成缓存

mv /etc/yum.repos.d/CentOS-Base.repo{,.ori}
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
yum clean all
yum makecache


1.8.2 epel源的配置

1、备份(如有配置其他epel源)

2、下载新repo 到/etc/yum.repos.d/

mv /etc/yum.repos.d/epel.repo{,.ori}
mv /etc/yum.repos.d/epel-testing.repo{,.ori}
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo


2. 配置本地yum源-使用系统ISO镜像

如果我们的电脑上不了网,就无法连网下载软件包了,这时可以利用光盘ISO镜像作为内网的yum源。


2.1 导入ISO镜像

先在虚拟机那里,导入ISO镜像。

wKioL1ktXlLiX_AMAAAwPwtlH7E618.png-wh_50

 

2.2 挂载光驱镜像

mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom/
df -h


2.3 自定义yum仓库文件

cat /etc/yum.repos.d/chen.repo #<==注意这里的baseurl写法!
[chen]
name=chen-repo
baseurl=file:///mnt/cdrom
enabled=1
gpgcheck=0


2.4 测试

yum repolist 
仓库标识        仓库名称                  状态
chen            chen-repo                 6,518
repolist: 6,518
相关文章
相关标签/搜索