centos的yum源的更改

· 为什么要更换源?有时候系统自带的yum源有点不太好用,里面的网址资源是国外的,那么从国内下载国外的rpm包会很慢,影响效率。这时候可以更改为国内的源

yum的工作原理:YUM的工作原理并不复杂,每一个 RPM软件的头(header)里面都会纪录该软件的依赖关系,那么如果可以将该头的内容纪录下来并且进行分析,可以知道每个软件在安装之前需要额外安装 哪些基础软件。也就是说,在服务器上面先以分析工具将所有的RPM档案进行分析,然后将该分析纪录下来,只要在进行安装或升级时先查询该纪录的文件,就可 以知道所有相关联的软件。所以YUM的基本工作流程如下:
服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。
客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

1.使用yum命令yum repolist可以查看到当前linux现有的源信息
在这里插入图片描述
2.cd /etc/yum.repos.d进入到该目录,该目录就是一个yum源的配置文件夹,yum源如果想能用, 必须放在/etc/yum.repos.d的文件夹下,才能生效,yum配置文件必须.repo结尾的。repo文件是Fedora中yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用
ls查看一下文件夹内容,其中:
CentOS-Media.repo 这个是使用光盘挂载后的本地源
CentOS-Base.repo 这个是联网后基础的源,一般都用这个
一般我们下载安装软件都是从网络上下载,因此只需要配置CentOS-Base源,这里只展示配置源为阿里云,其余源例如网易云的源都是类似的配置方法。
在这里插入图片描述
(1)首先我们可以进入到阿里云的镜像网站链接mirrors.ailiyun.com.然后根据不同的源点击开不同的页面,我需要的是centos的源,所以点开centos,然后可以看见相对应的替换源的教程。在这里插入图片描述
在这里插入图片描述
(2)按照教程,我们最好先将原来的yum源进行备份,可以使用mv命令对CentOS-Base.repo进行重命名或者移动到其他的目录中。
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup此处是将CentOS-Base.repo重命名为CentOS-Base.repo.backup。
(3)然后我们需要下载阿里云镜像对应的yum源的.repo文件,下载需要使用wget命令,因此如果之前没有安装过wget需要先yum install -y wget下载安装这个命令。然后就可以复制教程中的wget命令到centos命令台中执行,从而将.repo包下载下来,注意保存的路径为/etc/yum.repos.d/。此处其实也可以不使用wget命令,直接下载相应的.repo文件,放到对应的目录下即可。
(4)然后执行命令yum clean all.
因为yum会将下载下来的 包文件rpm和头文件header存盘在 本地机器的硬盘 缓存中,
这个将占用 硬盘空间, 可以将这些内容清除掉, 以释放磁盘空间:。其中header文件中包含了包与包,应用与应用之间的依赖关系,以便在yum时自动找到对应的依赖包并下载。由于现在已经更换了源,每一个镜像的依赖关系可能不一样,因此需要清除以往源所留下的依赖关系。
yum clean headers: // 释放头文件
yum clean packages: // 清除包文件
yum clean all: // 清除所有
(5)执行makecache命令
把服务器的包信息下载到本地电脑缓存起来,makecache建立一个缓存,以后用install时就在缓存中搜索,提高了速度。不然的话下次执行yum install时,需要先向源服务器请求,然后源服务器返回对应的包信息,然后再发起对源服务器的请求响应的具体的包,过程就比较慢。makecache执行完会显示
在这里插入图片描述
(6)最后再次通过yum repolist查看yum源,更换源完成
在这里插入图片描述

!使用yum中可能出现的问题
(1)注意,因为在yum命令时会逐一检索每一个.repo文件,因此如果有两个相同的.repo文件就会报错,例如我这里Centos-7.repo和Centos-Base.repo其实是同一个文件的不同命名,就报如下错了。

在这里插入图片描述
在这里插入图片描述
(2)我在使用yum install openssh-server时出现了提示公钥尚未安装,公钥不匹配的问题。
先解释一下这个公钥是什么意思:
GPG在Linux上的应用主要是实现官方发布的包的签名机制。
GPG分为公钥及私钥。
公钥:顾名思意,即可共享的密钥,主要用于验证私钥加密的数据及签名要发送给私钥方的数据。
私钥:由本地保留的密钥,用于签名本地数据及验证用公钥签名的数据。

实现原理(以Red Hat签名为例):
1>RH在发布其官方的RPM包时(如本地RHEL光盘及FTP空间包),会提供一个GPG密钥文件,即所谓的公钥。
2>用户下载安装这个RPM包时,引入RH官方的这个RPM GPG公钥,用来验证RPM包是不是RH官方签名的。
解决这个问题有几种方法:
(1)导入GPG-KEY:
可以去https://www.redhat.com/security/team/key/或https://www.centos.org/keys/或/etc/pki/rpm-gpg查找相应的GPG密钥,并导入到RPM:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY
(2)使用 yum install xxx.rpm --nogpgcheck跳过公钥检查(临时)
(3)在相应的.repo文件中修改gpgcheck值为0,gpgcheck=0(长期),同样是为了跳过公钥的检查。哪个.repo文件要看安装的包来源于哪个源,在安装时会有相应的提示。

另外
!其实yum 的配置文件分为两部分:main 和repository
main 部分定义了全局配置选项,整个yum 配置文件应该只有一个main。常位于/etc/yum.conf 1中,应该是属于没有特殊需要不需要配置,默认应该够用了通过,需要的可以通过vim命令修改。
repository 部分定义了每个源/服务器的具体配置,可以有一到多个。常位于/etc/yum.repo.d 目录下的各文件中。
!CentOS-Base.repo配置的是基础源,应该就是一些常用的的源,而除此之外还可以配置epel.repo(Extra Packages for Enterprise Linux),这个是扩展源,有着base源中没有的包,可以为操作系统提供额外的软件包。安装方法和上面像类似。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值