一、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
-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
mirrors.aliyun.com/repo/选择不同ce…
4、yum命令
① 查询操作
语法:# yum search 关键词
② 安装操作
语法:# yum [-y] install 关键词
③ 卸载操作
语法:# yum [-y] remove 关键词
④ 更新操作
语法:#yum [-y] update [包的关键词]
特别注意:包的关键词如果不写,则表示更新整个系统(全局更新,也包含内核)
㈡ yum源的优点
能够解决软件包之间的依赖关系,提高运维人员的工作效率。
㈢ yum源的分类
1、本地yum源
yum仓库在本地(系统光盘/镜像文件)
2、网络yum源
yum仓库不在本地,在远程
- 国内较知名的网络源(aliyun源,163源,sohu源,知名大学开源镜像等) 阿里源:opsx.alibaba.com/mirror 网易源:mirrors.163.com/ 搜狐源:mirrors.sohu.com/ 清华源: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配置(重点):
-
- 本地需要有软件仓库——>光盘挂载到系统某个目录上(
mount -o ro /dev/sr0 /mnt
) - 告诉yum工具去哪个仓库找软件包——>修改配置(
/etc/yum.repos.d/xxx.repo
)
- 本地需要有软件仓库——>光盘挂载到系统某个目录上(
-
- 当前主机必须能够访问互联网(外网源)
- 告诉yum工具去哪个仓库找软件包——>修改配置(
/etc/yum.repos.d/xxx.repo
) - 配置方法2种:直接修改配置文件;下载rpm包,安装软件包自动帮我配置
㈢ 缓存安装的软件包
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仓库?
思路:
步骤:
[root@yunwei soft]# mkdir /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/
[root@yunwei soft]# yum -y install createrepo
[root@yunwei soft]# createrepo /soft
验证是否多了repodata目录
[root@yunwei soft]# ls /soft
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
[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
三、安装MySQL-5.6.43版本软件包
[root@yunwei ~]# yum install mysql-community-server
说明:
任务总结
扩展补充
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 +包名
直接校验第三方提供的软件包