安装YUM源的三种方法
前言
1.什么是yum:
① yum 主要功能是更方便的添加/删除/更新RPM 包,什么是RPM包呢,就好像是windos的exe安装包,不过使用yum进行RPM安装,一方面自动安装,另一方面自动解决包的倚赖性问题,便于管理大量系统的更新问题。
② yum 的理念是使用一个中心仓库(repository)管理一部分甚至一个distribution 的应用程序相互关系,根据计算出来的软件依赖关系进行相关的升级、安装、删除等等操作,减少了Linux 用户一直头痛的dependencies 的问题。这一点上,yum 和apt 相同。apt 原为debian 的deb 类型软件管理所使用,但是现在也能用到RedHat 门下的rpm 了。
③ yum 可以同时配置多个资源库(Repository),简洁的配置文件(/etc/yum.conf),自动解决增加或删除rpm 包时遇到的依赖性问题,保持与RPM 数据库的一致性。
2.如何配置添加yum源:
本文将使用3种最常见的方法进行模拟添加
1. 本机yum源配置
2. 局域网yum源配置
3. 第三方yum源配置
一、本机yum源配置
适用场景:特殊环境,单机模式下
大致思路:原镜像或者其他渠道提取到PRM包,通过U盘、光盘光驱挂载方式挂载本地yum源。
测试环境:cetos7系统,使用挂载光驱,挂载一个centos7的镜像光驱
1.查看光驱镜像是否识别
这里我已经把带有CentOS-7-x86_64-DVD-2009.iso镜像的光驱识别
[root@localhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 19G 0 part
├─centos-root 253:0 0 17G 0 lvm /
└─centos-swap 253:1 0 2G 0 lvm [SWAP]
sr0 11:0 1 4.4G 0 rom
2.将承载CentOS-7-x86_64-DVD-2009.iso镜像的光盘sr0挂载到 /mnt/cdrom
在mnt下创建一个cdrom用于挂载光盘
[root@localhost ~]# mkdir /mnt/cdrom
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 979M 0 979M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 9.7M 981M 1% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 2.5G 15G 15% /
/dev/sda1 xfs 1014M 168M 847M 17% /boot
tmpfs tmpfs 199M 0 199M 0% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /mnt/cdrom
3. 查看光盘内容,是否有rpm包
可以看到光盘 Packages目录下有4072个RPM包
[root@localhost cdrom]# ll /mnt/cdrom/Packages/ | tail -n 3
-rw-rw-r--. 3 root root 51128 11月 12 2018 zlib-devel-1.2.7-18.el7.x86_64.rpm
-rw-rw-r--. 3 root root 2497380 4月 8 2020 zsh-5.0.2-34.el7_8.2.x86_64.rpm
-rw-rw-r--. 3 root root 84460 4月 4 2020 zziplib-0.13.62-12.el7.x86_64.rpm
[root@localhost cdrom]# ll /mnt/cdrom/Packages/ | wc -l
4072
4. 在/etc/yum.repos.d/里创建一个配置文件
名字可以随便,但一定是.repo
后缀结尾的,这里我创建了一个cd.repo的文件。
顺便vim来配置下。
vim /etc/yum.repo.d/cd.repo
#配置以下内容
[cdrom] # 是自己随便取的名字,文件名和文件内容不要求一样。
name=cdrom
baseurl=file:///mnt/cdrom/Packags # 指定yum源的地址。本次指定的是光驱挂载的PRM包的位置
enabled=1 # 是否开启这个yum源,0为关闭,1为开启
gpgcheck=0 # 是否做校验,0为不检查,1为检查。
5.将/etc/yum.repos.d/ 其他的源改名备份
[root@localhost yum.repos.d]# ls
cd.repo CentOS-Base.repo epel.repo
[root@localhost yum.repos.d]# mv CentOS-Base.repo CentOS-Base.repo.buck
[root@localhost yum.repos.d]# ls
cd.repo CentOS-Base.repo.buck epel.repo
[root@localhost yum.repos.d]# mv epel.repo epel.repo.buck
[root@localhost yum.repos.d]# ls
cd.repo CentOS-Base.repo.buck epel.repo.buck
6. 查看本地新的RPM包
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
cdrom | 3.6 kB 00:00:00
(1/2): cdrom/group_gz | 153 kB 00:00:00
(2/2): cdrom/primary_db | 3.3 MB 00:00:00
源标识 源名称 状态
cdrom cdrom 4,070
repolist: 4,070
二、局域网yum源配置
适用场景:特殊环境,本都局域网模式下
大致思路:有两种模式,一种是通过ftp,另一种是nginx+htppd 。这里选择ftp模式
测试环境:两台centos7的虚拟机,分享鸡地址:10.8.161.75 用来分享rpm包,测试鸡:10.8.161.76
1.分享鸡操作
①关闭防火墙
systemctl stop firewalld
②挂载光盘到mnt下
mount /dev/sr0 /mnt
③ 进入挂载目录
cd /mnt/Packages
④ 先安装下 vsftpd 用来提供 ftp服务。启动这个服务并查看状态
[root@localhost Packages]# rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm
[root@localhost Packages]# systemctl start vsftpd.service
[root@localhost Packages]# ps aux | grep vsftpd
root 8023 0.0 0.0 53288 700 ? Ss 19:01 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
root 72088 0.0 0.0 112824 976 pts/3 S+ 20:02 0:00 grep --color=auto vsftpd
⑤ 把 挂载 /mnt 下的 内容拷贝到ftp的目录下
[root@localhost pub]# cp /mnt/* /var/ftp/pub/
[root@localhost pub]# ls
CentOS_BuildTag EULA images LiveOS repodata RPM-GPG-KEY-CentOS-Testing-7
EFI GPL isolinux Packages RPM-GPG-KEY-CentOS-7 TRANS.TBL
⑥进入刚拷贝到指定的目录,进入Packages 里,里面都是即将分享得rpm包,我们需要安装一个createrepo软件,用来构建索引目录。
这里可能会遇到两个问题:
1、找不到这个包,以自己挂载的rpm包里的版本为准,那个版本都可以。
2、安装时会提示缺少依赖包,提示缺少那个,安装那个就可以了。
[root@localhost Packages]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
错误:依赖检测失败:
deltarpm 被 createrepo-0.9.9-28.el7.noarch 需要
python-deltarpm 被 createrepo-0.9.9-28.el7.noarch 需要
[root@localhost Packages]# rpm -ivh deltarpm-3.6-3.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:deltarpm-3.6-3.el7 ################################# [100%]
[root@localhost Packages]# rpm -ivh python-deltarpm-3.6-3.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:python-deltarpm-3.6-3.el7 ################################# [100%]
[root@localhost Packages]# rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
准备中... ################################# [100%]
正在升级/安装...
1:createrepo-0.9.9-28.el7 ################################# [100%]
⑦ 安装完 createrepo,我们把 pub的目录给建下索引。
createrepo /var/ftp/pub
如果以后有新加包,我们都需要更新下才能用
createrepo --update /var/ftp/pub
⑧做完索引,我们就可以模拟访问下。
2.测试鸡操作
①把系统自带的原包全部移走,只剩一个CentOS-Media.repo 用作修改
mv /etc/yum.repos.d/* /opt/yumbak
mv /opt/yumbak/CentOS-Media.repo /etc/yum.repos.d/
②编辑CentOS-Media.repo,地址指向分享机的ftp地址
vim /etc/yum.repos.d/CentOS-Media.repo
改成如下,ip更变下就可以了
③刷新下,可以看到已经获取到rpm包,模拟结束
。
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
c7-media | 2.9 kB 00:00:00
c7-media/primary_db | 3.3 MB 00:00:00
源标识 源名称 状态
c7-media CentOS-7 - Media 4,070
repolist: 4,070
三、第三方yum源配置
适用场景:联网环境下
大致思路:下载第三方源的repo配置包到本地,获取时直接到第三方平台获取。平台大致有:阿里系、华为系、网易163、各大高校开源站。据说各平台的速度也会有差异,本文不进行速度测试,感兴趣可以搜索下。本次测试选择阿里开源站。
测试环境:cetos7联网机器
1.清空或备份本机自带的配置包
[root@localhost pub]# rm -rf /etc/yum.repos.d/*
[root@localhost yum.repos.d]# ls
[root@localhost yum.repos.d]#
2.去阿里镜像开源站获取最新地址。
地址:
##这个地址可能会变,最好去官网获取最新的
3. 下载到本地 yum.repos.d/目录下
[root@localhost /]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
--2020-12-02 20:42:53-- https://mirrors.aliyun.com/repo/Centos-7.repo
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 111.6.207.242, 111.6.252.114, 111.6.126.219, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|111.6.207.242|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2523 (2.5K) [application/octet-stream]
正在保存至: “/etc/yum.repos.d/CentOS-Base.repo”
100%[=================================================================================================>] 2,523 --.-K/s 用时 0s
2020-12-02 20:42:53 (559 MB/s) - 已保存 “/etc/yum.repos.d/CentOS-Base.repo” [2523/2523])
[root@localhost yum.repos.d]# ls
CentOS-Base.repo
4. 刷新下包,可以看到已经获取到rpm包,模拟结束。
[root@localhost yum.repos.d]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
源标识 源名称 状态
!base/7/x86_64 CentOS-7 - Base - mirrors.aliyun.com 10,072
!extras/7/x86_64 CentOS-7 - Extras - mirrors.aliyun.com 448
!updates/7/x86_64 CentOS-7 - Updates - mirrors.aliyun.com 773
repolist: 11,293
[root@localhost yum.repos.d]#
======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,请顺手点个赞吧 (σ゚∀゚)σ…:*☆