目标
软件包安装和删除的具体要求如下:
请你登录实验环境后,立即 在命令行中键入如下命令序列来建立实验环境:
wget http://labfile.oss.aliyuncs.com/courses/818/13.tar.gz
tar -xzf 13.tar.gz
配置 rpmfusion 源;
确保 yum 的优先级(yum-plugin-priorities)插件已经安装并启用;
配置 [base], [extras], [updates] 仓库的 priority=1 ,[epel] 仓库的 priority=10,[rpmfusion] 仓库的 priority=20;
安装 mplayer 播放器。
拓展
yum 仓库 (Repository)
yum 的工作原理并不复杂:由于每一个 rpm 软件包的头(header)里面都会记录录该 rpm 包的各种信息,包括如软件描述,功能,所包含的文件,依赖性等,也就是说,如果能够获取 rpm 包的 header 并加以分析,就可以知道每个软件在安装(卸载)之前需要额外安装(卸载)哪些依赖(被依赖)的软件包,也就可以自动化地完成安装(卸载)任务。
yum 预备好一个 http/ftp 站点或者本地文件目录,其中包含了软件包和索引文件(其中有仓库中的软件列表和依赖关系),这个站点或者目录就被称为 yum 的仓库 (Repository) 。yum 客户端 可以在仓库中自动定位并获取正确的 RPM 软件。
因此为 yum 配置好仓库是头等大事。
默认 yum 仓库
在 Centos 中,yum 一般会预配置如下三个默认仓库:
base: 构成 Centos 发行版 (distributions) 的软件包和安装光盘上的内容一样
updates: base 仓库中软件包的更新版本
extras: 一大批附加的软件包
CentOS 有时还会配置如下两个额外的仓库:
addons: 已编译的但不在发行版 (distributions) 中的软件包
centospuls: 用于增强一些现有软件包的功能(默认未启用)
我们可以使用 yum repolist 命令来查看当前可用的 yum 仓库,yum 默认情况下使用 /etc/yum.repos.d 目录下的一系列。repo 文件指明软件仓库的镜像站点地址。
repo 文件
repo 文件是 Fedora 中 yum 仓库(Repositories))的配置文件,通常一个 repo 文件定义了一个或者多个软件仓库的细节内容,例如我们将从哪里下载需要安装或者升级的软件包,repo 文件中的设置内容将被 yum 读取和应用,在。repo 文件中,配置语法是分段的,每一段配置一个软件仓库,我们以系统中自带的 repo 文件中的一段做为实例来探讨(# 号后面是加的注释):
[base] #方括号里面的是软件源的名称,将被 yum 取得并识别
name=CentOS-$releasever - Base - mirrors.aliyun.com
# 第二行里也定义了软件 仓库的名称,通常是为了方便阅读,一般没什么作用,$releasever 变量定义了发行版本,通常是 8,9,10 等数字,$basearch 变 量定义了系统的架构,可以是 i386、x86_64、ppc 等值,这两个变量根据当前系统的版本架构不同而有不同的取值,这可以方便 yum 升级的时候选择 适合当前系统的软件包
failovermethod=priority
#failovermethod 有两个值可以选择,priority 是默认值,表示从列出的 baseurl 中顺序选择镜像服务器地址,roundrobin 表示在列出的服务器中随机选择
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
# 这一行的意思是指定仓库的两个镜像服务器地址,一般会选择自己访问速度较快的镜像服务器地址放在这里,以便获得较快的更新速度。
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
# 上面的这一行是指定一个镜像服务器的地址列表,通常是开启的,本例中加了注释符号禁用了,我们可以试试,将 $releasever 和 $basearch 替换成自己对应的版本和架构,例如 10 和 i386,在浏览器中打开,我们就能看到一长串镜可用的镜像服务器地址列表,注意,这些镜像有快有慢,有些还可能无法连接。
enable=1 #这个选项表示这个 repo 是启用的,如果是 0 则代表不启用
gpgcheck=1 #这个选项表示这个 repo 中下载的 rpm 将进行 gpg 的校验,已确定 rpm 包的来源是有效和安全的
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
# 定义用于校验的 gpg 密钥
yum.conf 配置文件
yum 的一切配置信息都储存在一个叫 yum.conf 的配置文件中,通常位于 /etc 目 录下,这是整个 yum 系统的重中之重,但我们一般无需修改这个文件。
第三方 yum 仓库
CentOS 官方仓库中去除了很多有版权争议的软件,而且所包含软件也不是最新的稳定版。因此,CentOS 自带的仓库中不包括一些常用软件包,诸如:mplayer 等媒体软件、Eclipse 等开发软件等等,如果用 yum 安装这些软件,必需先添加第三方软件仓库,如 EPEL、RPMFusion 和 Remi 等第三方软件仓库。
配置第三方 yum 仓库非常简单,在这些第三方软件仓库的官方主页上,一般都提供相应的 RPM 包下载,在安装这些 RPM 包后,第三方软件仓库的 repo 文件就被添加到 /etc/yum.repos.d 目录中去了,某些源也直接提供 repo 文件,将文件下载到 /etc/yum.repos.d 目录中即可。
yum-priorities 插件
在添加好第三方 yum 仓后,一般还需要确认系统是否安装了 yum-priority 这个 yum 的插件,这个插件用来保证安装软件时候软件仓库先后次序,一般是默认先从官方 base 或者镜像安装,然后从社区用户 contribute 的软件中安装,再从第三方软件仓库中安装。当然这个次序可以自己更改,为了安全和稳定我们还是建议不要随意改动这个次序。
yum install yum-priorities
安装完以后查看 /etc/yum/pluginconf.d/priorities.conf 文件,确认文件 [main] 范围内有这一行
enabled=1
同时,为了防止一些已经废弃 (obsoletes) 的包的出现,在这个文件 [main] 范围内加上
check_obsoletes=1
在安装配置好 yum-priority 插件后,结下来就可以手动编辑 /etc/yum.repos.d/ 目录中 repos 的文件来设置各个软件仓库的优先级了,在每一个软件仓库配置后添加如下一行就可以设定优先级了:
priority=N # N 是整数,范围从 1-99
优先级由 1 - 99 的 99 个数表示,1 的优先级最高。优先级小的源即使有某软件的较新版本,如果优先级高的源中没有,在启用该插件的情况下,系统也无法安装 / 升级到该较新版本。
官方的推荐配置是:
[base], [addons], [updates], [extras] 等默认仓库的 priority=1
[centosplus],[contrib] 等仓库的 priority=2
第三方的 Repos 例如 rpmfusion 的 priority=N (N 一般大于 10)
网友评论