首页 > 编程知识 正文

centos7安装阿里源,centos7国内yum源

时间:2023-05-06 13:57:27 阅读:141290 作者:4537

一.概念/区分: yum源什么是yum源:

yum是在CentOS、RedHat和Fedora操作系统中使用的外壳的前端包管理器。 yum主要管理基于rpm的软件包,Centos首先将发布的软件放在yum服务器中,然后分析这些软件的依赖属性问题,写入软件中的记录信息。 然后分析这些信息并将其记录在软件相关性清单列表中。 这些列表数据和软件所在的位置可以称为仓库(repository )。 如果客户端需要安装软件,客户端主机可以将清单下载到网络上YUM服务器的仓库网站,然后将清单列表中的数据与本机RPM数据库中的现有软件数据进行比较

yum的基本工作流程

服务器端

将所有RPM程序包存储在服务器上,使用相关功能分析每个RPM文件的依赖关系,并将这些数据作为文件存储在服务器上的特定目录中。

客户端

如果需要安装某个软件,请首先下载服务器上记录的依赖项文件,分析服务器端下载的记录数据,获取所有相关软件,然后一次下载并安装所有。

yum客户端的配置文件:

repo文件是CentOS、RedHat和Fedora操作系统中yum源(软件仓库)的配置文件,通常在一个repo文件中定义一个或多个软件源。

yum 的客户端配置文件分为两部分main 和repository:

main :定义了全局配置选项。 整个yum配置文件中必须只有/etc/yum.conf中的一个主。 该文件为所有仓库提供了通用配置,包括yum下载的RPM包的缓存目录、日志位置以及是否允许更新不同版本的RPM包。

存储库—定义每个源/服务器的具体配置,可以是一个或多个。 在/etc/yum.repo.d目录下的每个文件中,该文件构成对仓库的说明。

yum 的配置方式也分两种:

直接配置/etc目录中的yum.conf文件并添加repository片段

将. repo文件添加到/etc/yum.repos.d目录中

/etc/yum.conf文件详解:

[main]cachedir=/友好的鞋垫/cache/yum # cachedir:yum缓存的目录。 yum在这里存储下载的rpm包和数据库。 一般为/友好型鞋垫/cache/yum debug level=2# debug level缺省为logfile=/友好型鞋垫/log/yum.log #日志加载pkg policy 有两个选择: newest和last。 此角色表示如果设置了多个存储库,并且同一软件同时存在于不同的存储库,yum应该安装哪一个。 对于newest,yum将安装最新版本。 对于last,yum按字母顺序对服务器id进行排序,并选择最后一台服务器上安装的软件。 一般选择newest。 distroverpkg=centos-release #指定包。 yum根据这个包判断你的发行版。 默认值为redhat-release。 或者,它可以是任何已安装的用于自己发行的rpm软件包。 tolerant=1 # tolerent还提供1和0两个选项,用于指示yum是否允许在命令行中发生与程序包相关的错误。 例如,安装1、2、3这3个软件包,但其中3个是以前安装过的。 如果设置为1,yum将不会显示错误消息。 默认值为0。 exactarch=1 # exactarch包含两个选项1和0,指示是否仅升级与安装软件包的cpu体系匹配的软件包。 如果设置为1,则如果安装了i386 rpm,yum将不会使用1686软件包进行升级。 retries=20 # retries,发生网络连接错误后的重试次数。 如果设置为0,将无限重试。 obsoletes=1 #这是update的参数,具体请参见yum(8)。 简单来说,它相当于upgrade,有两种选择:旧RPM数据包的gpgcheck=1 # gpgchkeck=和0,它们分别进行gpg检查,表示是否确定RPM数据包的来源用空格分隔列表中的每个项目。 这对安装了美化包和中文补丁等的朋友特别有用。 设置keepcache=[1or0]#keepcache=1,yum在软件包安装成功后保留缓存的头文件(headers )和软件包。 默认值为keepcache=0,repos dir=[包含. repo文件的目录的绝对路径] #此选项用于指定. repo文件的绝对路径。 repo文件包含软件仓库信息(

与 /etc/yum.conf 文件中的 [repository] 片段相同)。

repo文件详解:

我们以Centos-Base.repo仓库基础配置文件为例
一个标准的centos的repo文件内容如下:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

各个选项说明如下:
[base]:代表仓库的名字,中括号一定要存在,里面的名称可以随意,但是不能有两个相同的容器名称。
name:说明一下仓库的意义。
mirrorlist:这个是仓库的镜像站点列表。一般情况下默认是使用此选项。
baseurl:这个最重要,因为后面接的就是仓库的实际地址。mirrorlist是由yum程序自行去找镜像站点,baseurl则是指定固定的一个仓库网址。一个repo文件可以定义多个软件源。
enable=1:就是让这个容器启动,如果不想启动可以使用enable=0.
gpgcheck=1:指定是否需要查阅RPM文件内的数字证书。
gpgkey:就是数字证书的公钥文件所在的位置。

在Centos-Base.repo中还定义的其它的名称的仓库,如:[updates]、[extras]、[centosplus]等等,这些仓库都为YUM服务器额外附加或者是升级是用到的软件仓库,分别指向不同的路径软件仓库。

epel源

EPEL源是什么:

EPEL (Extra Packages for Enterprise Linux)是基于Fedora的一个项目,为“红帽系”的操作系统提供额外的软件包,适用于RHEL、CentOS和Scientific Linux。说白了,有些组件yum源没有,epel里面有

如何获取 EPEL 的软件包:

EPEL 包含一个叫做 ‘epel-release’ 的包,其中包含了用于软件包签名的 gpg 密钥和软件源的信息。安装这个包到您的企业版 Linux 上之后,您将可以通过使用类似于 yum 的工具来安装软件包和它们的依赖。在默认情况下,EPEL 仓库的稳定版本是开启的。除了 epel-release 源,还有一个叫做 ‘epel-testing’ 仓库 包含尚未被视作稳定的软件,请自行斟酌开启的风险。 CentOS 用户可以直接通过 yum install epel-release 安装并启用 EPEL 源。

二、部署 部署阿里yum源

1.备份本地yum源

[root@75-124 yum.repos.d]# mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak

2.获取阿里yum源配置文件

[root@75-124 yum.repos.d]#  wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 部署阿里epel(RHEL 7)源

两种方案:
一、yum安装

1.安装 epel 配置包

[root@75-124 yum.repos.d]# yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

2.将 repo 配置中的地址替换为阿里云镜像站地址

sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*

多了两个文件:epel.repo 和epel-testing.repo

二、wget下载直接用

[root@75-124 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

3.两个都要更新yum缓存

[root@75-124 yum.repos.d]# yum clean all   [root@75-124 yum.repos.d]# yum makecache

讲解:

yum clean all:清除YUM缓存,清除所有已下载的包文件。yum 会把下载的软件包和header存储在cache中,而不会自动删除。并且如果觉得它们占用了磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all 全部清除

yum makecache:就是把服务器的包信息下载到本地电脑缓存起来,yum安装的时候,会先从本地缓存中调用,其实即使没有yum makecache,yum检测本地无包,会从yum拉取,所以可执行可不执行,不过最好还是再执行一下yum makecache命令。其实即使没有yum makecache,如果yum安装的时候会将安装包进行缓存,不过最好还是再执行一下yum makecache命令

4.(可不执行) yum源更新命令

[root@75-124 yum.repos.d]# yum update -y(升级所有包同时也升级软件和系统内核)

讲解:

其实更推荐用yum upgrade取代yum update,yum update只更新系统中已有的软件包,不会更新内核软件包(kernel-这个包),yum upgrade是更彻底的update,会分析包的废弃关系,可以跨小版本升级(比如从centos 7.1升级到centos 7.4),除了做了yum update完全相同的事之外,还会更新kernel-的包,也会卸载掉已经废弃的包。

新部署系统需要yum update/upgrade是因为yum不会给你解决依赖冲突(但是apt会)。所以yum update 是为了解决跟换yum源之后,rpm包之间的依赖关系,以免后面yum 安装某些服务报错。
因为拿到的服务器都是软件包版本比较低的操作系统,安装上层应用的时候可能会告诉你依赖不能满足,此时你需要用yum update/upgrade更新下系统的软件包,以满足安装依赖

举个例子,你的系统中已经安装了kernel-2.6.32.500,但是你要安装的某个软件包依赖于kernel-2.6.32.600,此时yum会报错退出,告诉你依赖不满足,并不会升级kernel包(只是举个例子而已,实际上几乎没有软件包直接依赖于kernel包),所以你只能yum update/upgrade一次,把系统中所有的软件包全部更新,这样满足新部署的软件包的依赖。

在debian/ubuntu的系统中,apt会对这种情况自动处理,会自动升级依赖的软件包。
换句话来说,对于新部署的服务器,也是推荐upgrade全部的软件包,已获得最新的安全补丁。即使对于已经上线的服务器,也是推荐定期打安全漏洞补丁,减少漏洞带来的侵害。

5.查看当前yum源

[root@75-124 yum.repos.d]# yum repolist

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。