获取YUM源的三种方法,一篇就够

安装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]# 

======================================================================================================================================================================================================================================================================================================
辛苦浏览观看,请顺手点个赞吧 (σ゚∀゚)σ…:*☆

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

king config

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值