一、YUM概述

1、Linux软件的安装方式

在CentOS系统中,软件管理方式通常有三种方式:rpm安装yum安装以及编译安装

编译安装,从过程上来讲比较麻烦,包需要用户自行下载,下载的是源码包,需要进行编译操作,编译好了才能进行安装,这个过程对于刚接触Linux的人来说比较麻烦,而且还容易出错。好处在于是源码包,对于有需要自定义模块的用户来说非常方便。(就业班会着重讲解)

2、什么是yum

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。

基于rpm包管理,能够从指定的服务器(yum源)自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

yum配置文件位置

#cd /etc/yum.repos.d/
#ll

yum 安装的redis 配置文件在哪 linux yum redis_linux

-rw-r–r–. 1 root root 1991 Mar 28 2017 CentOS-Base.repo 网络yum源配置文件
-rw-r–r–. 1 root root 647 Mar 28 2017 CentOS-Debuginfo.repo 内核相关的更新包
-rw-r–r–. 1 root root 289 Mar 28 2017 CentOS-fasttrack.repo 快速通道
-rw-r–r–. 1 root root 630 Mar 28 2017 CentOS-Media.repo 本地yum源配置文件
-rw-r–r–. 1 root root 7989 Mar 28 2017 CentOS-Vault.repo 最近版本加入老本的YUM配置

3、配置阿里yum源

使用阿里yum源代替系统默认的yum源

① 备份默认源
#cd /etc/yum.repos.d/
#mv CentOS-Base.repo CentOS-Base.repo.bak

② 下载新CentOS-Base.repo
#wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
含义:使用阿里云的yum源代替默认的yum源,下载软件更快


③ 清除所有缓存
#yum clean all 

④ 重新生成缓存
#yum makecache

yum 安装的redis 配置文件在哪 linux yum redis_yum 安装的redis 配置文件在哪_02

yum 安装的redis 配置文件在哪 linux yum redis_运维_03

yum 安装的redis 配置文件在哪 linux yum redis_linux_04

4、yum命令

① 查询操作

语法:# yum search 关键词

yum 安装的redis 配置文件在哪 linux yum redis_linux_05

② 安装操作

语法:# yum [-y] install 关键词

yum 安装的redis 配置文件在哪 linux yum redis_linux_06

③ 卸载操作

语法:# yum [-y] remove 关键词

yum 安装的redis 配置文件在哪 linux yum redis_mysql_07

④ 更新操作

语法:#yum [-y] update [包的关键词]

特别注意:包的关键词如果不写,则表示更新整个系统(全局更新,也包含内核)

yum 安装的redis 配置文件在哪 linux yum redis_linux_08


㈡ yum源的优点

能够解决软件包之间的依赖关系,提高运维人员的工作效率。

㈢ yum源的分类

1、本地yum源

yum仓库在本地(系统光盘/镜像文件)

2、网络yum源

yum仓库不在本地,在远程

  • 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等)
    阿里源:https://opsx.alibaba.com/mirror
    网易源:http://mirrors.163.com/
    搜狐源:http://mirrors.sohu.com/
    清华源:https://mirrors.tuna.tsinghua.edu.cn/
  • 国外较知名的网络源(centos源、redhat源、扩展[1]源等)
  • 特定软件相关的网络源(Nginx、MySQL、Zabbix等)

二、yum源配置(重点)

㈠ 本地yum源配置

1、本地需要有仓库
① 虚拟光驱装载镜像文件
② 将光盘挂载到本地目录
/mnt	操作系统默认的挂载点

mount [挂载选项] 需要挂载的设备  挂载点

手动挂载光盘到/mnt
lsblk		查看当前系统所有的设备文件
mount -o ro /dev/sr0 /mnt
注意:手动挂载后,系统重启需要再次手动挂载
③ 开机自动挂载
修改/etc/rc.local文件

/etc/rc.local	操作系统开机最后读取的一个文件
echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local
2、修改配置文件指向本地仓库
① 知道配置文件存放路径
[root@yunwei yum.repos.d]# pwd
/etc/yum.repos.d
② 修改配置文件
注意:文件名必须以.repo结尾
[root@yunwei yum.repos.d]# vi local.repo
[local]					仓库的名字,不要有特殊符号(自定义)
name=local yum			仓库描述
baseurl=file:///mnt	指定yum仓库的路径(重要);file://表示本地仓库;ftp://或者http://
enabled=1			   启用仓库,1表示启用;0表示不启用
gpgcheck=0			   不用校验软件包的签名,0表示不校验;1表示校验

===================================================================
# man 5 yum.conf
[repositoryid]
name=Some name for this repository
baseurl=url://server1/path/to/repository/
        url://server2/path/to/repository/
        url://server3/path/to/repository/
enabled=1
gpgcheck=0

测试验证:
yum clean all		清空yum缓存
yum makecache 		创建yum缓存
yum list				查看仓库里的软件包

㈡ 网络yum源配置

1、主机需要访问互联网

说明:如果配置的是外网源,当前主机需要访问互联网。

2、修改配置文件指向网络仓库
① 特定软件网络源
[root@yunwei yum.repos.d]# vi nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/x86_64/
gpgcheck=0
enabled=1
说明:
baseurl=http://nginx.org/packages/centos/6/$basearch/
$basearch表示当前系统cpu架构,如果系统是32位会找32位软件包;如果64位会找64位软件包
② 基础软件网络源
[root@yunwei yum.repos.d]# vi 163.repo 
[163]
name=163 network yum
baseurl=http://mirrors.163.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.163.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6

[root@yunwei yum.repos.d]# vi aliyun.repo 
[aliyun]
name=aliyun
baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64/
enabled=1
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/6/os/x86_64/RPM-GPG-KEY-CentOS-6
3、通过安装相应软件包直接配置

说明:该方法是通过安装软件包,自动在相应目录里创建.repo文件(自动配置)

epel源:
https://mirrors.aliyun.com/epel/6/x86_64/epel-release-6-8.noarch.rpm
mysql源:
https://repo.mysql.com/mysql-community-release-el6.rpm
https://repo.mysql.com/mysql-community-release-el7.rpm
4、总结

yum配置(重点):

  1. 本地yum源配置核心
  • 本地需要有软件仓库——>光盘挂载到系统某个目录上(mount -o ro /dev/sr0 /mnt)
  • 告诉yum工具去哪个仓库找软件包——>修改配置(/etc/yum.repos.d/xxx.repo
  1. 网络yum源配置核心
  • 当前主机必须能够访问互联网(外网源)
  • 告诉yum工具去哪个仓库找软件包——>修改配置(/etc/yum.repos.d/xxx.repo
  • 配置方法2种:直接修改配置文件;下载rpm包,安装软件包自动帮我配置
  1. 如果多个仓库里有相同的软件包,高版本优先
  2. 多个yum源,可以指定优先级,但是需要安装插件,修改配置文件完成【参考扩展补充】

㈢ 缓存安装的软件包

1、什么时候需要缓存软包?
  • 下次还需要安装相同版本的软件包
  • 由于网络原因导致网络安装非常慢,将软件包缓存下来,配置本地仓库
2、如何缓存软包?

修改配置文件/etc/yum.conf

# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever	定义软件包的缓存路径
keepcache=1			1开启缓存;0关闭
debuglevel=2
logfile=/var/log/yum.log
...

㈣ 自建yum仓库

**思考1:**什么情况下需要自建yum仓库?

思路:

  1. 创建一个目录来保存相应的软件
  2. 需要在该目录下生成repodata目录
  3. 修改配置文件指向本地自建仓库

步骤:

  1. 创建一个目录来保存相应软件
[root@yunwei soft]# mkdir /soft
  1. 将你准备的所有软件包拷贝到/soft目录里
说明:以下只是演示举例,以后根据自己的实际情况,将你准备的软件包考到本地目录就行
[root@yunwei soft]# pwd
/soft
[root@yunwei soft]# cp /mnt/Packages/samba* /soft/
[root@yunwei soft]# cp /mnt/Packages/libtevent-0.9.26-2.el6_7.x86_64.rpm /soft
[root@yunwei soft]# cp /mnt/Packages/libtalloc-2.1.5-1.el6_7.x86_64.rpm /soft/
  1. 扫描软件包所在目录生成repodata目录
[root@yunwei soft]# yum -y install createrepo
[root@yunwei soft]# createrepo /soft
验证是否多了repodata目录
[root@yunwei soft]# ls /soft
  1. 关闭本地仓库和所有网络仓库,配置自己创建的yum仓库
1) 根据自己配置情况,打开本地和网络源的配置文件
将enabled=1修改为enabled=0
2) 创建自建源配置文件
[root@yunwei soft]# vim /etc/yum.repos.d/myself.repo
[myself]
name=myself yum
enabled=1
baseurl=file:///soft			路径就是自己之前创建的目录,里面有软件包也有repodata目录
gpgcheck=0
3) 清空yum缓存重新创建
[root@yunwei soft]# yum clean all
[root@yunwei soft]# yum makecache
  1. 测试验证安装samba软件
[root@yunwei soft]# yum install samba
注意:安装samba软件包来自myself仓库,同时会自动安装其他依赖关系软件包

任务实施

一、配置本地yum源

㈠ 挂载镜像到本地

手动挂载
[root@yunwei ~]# mount -o ro /dev/sr0 /mnt/
开机自动挂载
[root@yunwei ~]# echo "mount -o ro /dev/sr0 /mnt" >> /etc/rc.local

㈡ 修改配置文件指向本地仓库

[root@yunwei ~]# cd /etc/yum.repos.d/
[root@yunwei yum.repos.d]# cat local.repo
[local]
name=local yum
baseurl=file:///mnt
enabled=1
gpgcheck=0

二、配置MySQL官方yum源

㈠ 下载官方提供的yum仓库软件包

通过浏览器找到适合自己系统的软包下载
https://dev.mysql.com/downloads/repo/yum/

㈡ 安装软件包来自动配置yum源

安装软件包
[root@yunwei ~]# rpm -ivh mysql80-community-release-el6-2.noarch.rpm
warning: mysql80-community-release-el6-2.noarch.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
Preparing...                ########################################### [100%]
   1:mysql80-community-relea########################################### [100%]

查看自动配置的mysql源仓库配置文件
[root@yunwei ~]# ls /etc/yum.repos.d/mysql-community*
/etc/yum.repos.d/mysql-community.repo  /etc/yum.repos.d/mysql-community-source.repo

注意:
1.默认情况下,官方提供最新版本的软件,我们需要根据自己的情况进行修改配置文件
2.我们需要安装mysql-5.6版本,所以关闭其他版本的仓库,只打开5.6的仓库

[root@yunwei ~]# cd /etc/yum.repos.d/
[root@yunwei yum.repos.d]# vim mysql-community.repo
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1				将0改为1,开启5.6版本仓库
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
....
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/6/$basearch/
enabled=0			将1改改为0,关闭默认的8.0版本仓库
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

以下两个仓库也关闭,暂时用不到
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/6/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/6/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

㈢ 清空yum缓存重新创建缓存

[root@yunwei yum.repos.d]# yum clean all
[root@yunwei yum.repos.d]# yum makecache

yum 安装的redis 配置文件在哪 linux yum redis_yum 安装的redis 配置文件在哪_09

三、安装MySQL-5.6.43版本软件包

[root@yunwei ~]# yum install mysql-community-server

yum 安装的redis 配置文件在哪 linux yum redis_linux_10

yum 安装的redis 配置文件在哪 linux yum redis_yum 安装的redis 配置文件在哪_11

yum 安装的redis 配置文件在哪 linux yum redis_运维_12

说明:

  1. 通过网络安装,可能会由于网络原因安装不成功,多试几次即可
  2. 一台机器安装好后,如果另外一台也需要安装,可以通过开启缓存下载下来,做成本地仓库安装

yum 安装的redis 配置文件在哪 linux yum redis_运维_13

任务总结

  1. 明白需求
  2. 拆解任务
  3. 知识储备
  4. 落地实现
  5. 总结验证

扩展补充

1、yum仓库优先级

:如果有多个仓库,是否可以设置yum源的优先级设定?

  • 可以设置,但是需要安装插件yum-plugin-priorities
  • 安装完插件后,只需要在yum源配置文件*.repo里指定优先级即可,如:
添加priority=n的配置项,n值越小优先级越高,默认99.
[local]
name=local yum
baseurl=file:///mnt
enabled=1
gpgcheck=0
priority=1

2、yum缓存软件包

**问:**如果想把从网络源安装的软件包下载到本地方便后续使用,怎么做呢?

  • 只需要开启yum缓存功能即可
  • 通过修改配置文件开启yum缓存功能,如下:
[root@yunwei ~]# vim /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever		软件包的缓存路径
keepcache=1			将0变成1,表示缓存安装软件包到本地
debuglevel=2
logfile=/var/log/yum.log
....

课后强化

  • rpm工具使用
rpm -ivh	package
安装  
rpm -e package
卸载
rpm -Uvh
升级,如果已安装老版本,则升级;如果没安装,则直接安装
rpm -Fvh
升级,如果已安装老版本,则升级;如果没安装,则不安装
rpm -ivh --force
强制安装
rpm --nodeps
忽略依赖关系
rpm -ql
查看已经安装的软件的文件列表
rpm -qlp  package.rpm 
查看未安装的rpm包里的文件列表
rpm -qa  查看已经安装的所有rpm包
rpm -qd  查看软件的文档列表
rpm -qc  查看软件的配置文件
rpm -qi  查看软件的详细信息
rpm -qf  filename
查看文件来自哪个rpm包
rpm --import    key_file
导入公钥用于检查rpm文件的签名
rpm -checksig   package.rpm
检查rpm包的签名
  • yum工具使用
# yum install package -y
默认是安装来自仓库里的软件,指定的是软件名字。多个包空格隔开;-y (取消交互)
# yum install ./xlockmore-5.31-2.el6.x86_64.rpm
或者
# yum localinstall ./xlockmore-5.31-2.el6.x86_64.rpm
安装来自本地指定路径下的rpm包,而不是来自仓库
# yum remove 或者 erase package
卸载软件包
# yum update
更新仓库里所有比本机已经安装过的软件要的软件	
# yum update package
指定升级的软件
# yum search mysql
搜索出所有软件名字或者软件描述包含“mysql”关键字的软件
# yum provides  "*libmysqlclient.so*"
找出模块由哪些软件包提供
# yum provides "*xeye*"
搜索一个包含xeye关键字的软件包
# yum clean all
清空之前的yum列表缓存
# yum makecache
创建新的缓存
# yum list
列出仓库里的所有软件包
# yum repolist
列出已配置的软件仓库
# yum list|tail
查看未安装的软件包
# yum list |grep 关键字
@代表已经安装成功
# yum list installed
查看已安装的包
# yum grouplist
查看包组
# yum groupinstall  "包组"
安装包组
# yum groupremove "包组"
# md5sum +包名
直接校验第三方提供的软件包