yum
# YUM基本介绍
# 什么是YUM
yum
是RedHat
及centos
系统中的软件包管理器。它能够通过互联网下载.rpm
格式包进行安装,并能自动处理其依赖间关系,无须繁琐地一次次下载安装。
# 什么是YUM源
要使用yum
命令工具安装更新软件,需要有一个包含各种rpm
软件包的仓库,这个软件仓库我们一般称为yum
源。当然这个源可以是本地仓库、也可以是网络仓库。
# YUM配置文件
centoS7
的配置文件[root@web ~]# vim /etc/yum.conf cachedir=/var/cache/yum/$basearch/$releasever #缓存目录 keepcache=0 #缓存软件包,1启动0关闭 debuglevel=2 #调试级别 logfile=/var/log/yum.log #日志记录位置 exactarch=1 #检查平台是否兼容 obsoletes=1 #检查包是否废弃 gpgcheck=1 #检查来源是否合法,需要有制作者的公钥信息 plugins=1 installonly_limit=5 #同时可以安装5个软件包、最小为2,设置为0或者1则不限制 # metadata_expire=60m #每小时手动检查元数据 # in /etc/yum.repos.d #包含repos.d目录中的.repo文件
1
2
3
4
5
6
7
8
9
10
11
12
13
# 配置YUM源示例
系统默认的源是国外提供,需要替换为国内的源
配置阿里
yum
源[root@web ~]# wget -o /etc/yum .repos.d/CentOS-Base.repo \ http://mirrors.aliyun.com/repo/Centos-7.repo
1
2配置第三方
yum
源(EPEL
)[root@web ~]# wget -O /etc/yum.repos.d/epel.repo \ http://mirrors.aliyun.com/repo/epel-7.repo
1
2Nginx
官方源,Nginx
最好使用官方的yum
源来安装软件[root@web ~]# vim /etc/yum.repos.d/nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/7/$basearch/ gpgcheck=0 enabled=1
1
2
3
4
5
6
PS:源查找方式基本一致,
Docker
、Nginx
.openstack
、ELKStack
# YUM日常操作
# yum查询软件包
使用
yum list
查询所有仓库中的所有软件包[root@web ~]# yum list [root@web ~]# yum list |grep ftp
1
2使用
yum list installed
查询所有已安装至系统中的软件包[root@web ~]# yum list installed
1使用
yum provides
查询系统命令来自于哪个软件包[root@web ~]# yum provides cd [root@web ~]# yum provides sl
1
2
# yum安装软件包
使用
yum install
通过仓库获取软件包进行安装# 交互 [root@web ~]# yum install vsftpd # 非交互 [root@web ~]# yum install vsftpd -y
1
2
3
4
5使用
yum localinstall
安装本地的rpm
包,如果rpm
包存在依赖,会自动查找当前系统上已有的仓库解决依赖关系[root@web ~]# yum install https://mirrors.aliyun.com/centos/7.6.1810/os/x86_64/Packages/samba-4.8.3-4.el7.x86_64.rpm # yum localinstall直接安装本地的rpm包,会自动查找当前系统上已有的仓库解决依赖关系 [root@web ~]# yum localinstall samba-4.8.3-4.el7.x86_64.rpm -y
1
2
3
4
# yum重装软件包
当我们安装好服务后,如果不小心删除了服务的配置文件,此时可以通过重装的方式修复。
首先删除
vsftpd
配置主文件[root@web ~]# rpm -qc vsftpd [root@web ~]# rm -f /etc/vsftpd/vsftpd.conf
1
2使用
yum reinstall
对软件进行重新安装[root@web ~]# yum reinstall vsftpd
1检查
vsftpd
服务配置文件是否恢复,以及软件是否能正常使用。[root@web ~]# rpm -qc vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf
1
2
3
4
5
6
# yum更新软件包
对比
Linux
已安装的软件和yum
仓库中的软件,有哪些需要升级[root@web ~]# yum check-update
1更新
acl
软件[root@web ~]# yum update acl -y
1更新整个系统所有的软件,包括内核(通常刚装完系统会进行执行)
[root@web ~]# yum update -y
1
# yum删除软件包
[root@web ~]# yum remove samba -y
# yum管理组包
使用
yum groups install
安装一整个组的软件[root@web ~]# yum groups list [root@web ~]# yum groups install Development tools Compatibility libraries Base Debugging Tools
1
2使用
yum groups remove
删除包组[root@web ~]# yum groups remove -y Base
1
# yum管理仓库
列出
yum repolist
源可用的软件仓库[root@web ~]# yum repolist [root@web ~]# yum repolist all #查看所有的仓库
1
2通过
yum-config-manager
启用和禁用仓库# Centos7 [root@web ~]# yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm -y [root@web ~]# yum repolist all | grep mysql [root@web ~]# yum-config-manager --disable mysql80-community # 关闭仓库 [root@web ~]# yum-config-manager --enable mysql80-community # 启用仓库
1
2
3
4
5
6
PS:本质都是在修改
repo
文件中的enable
参数值0不启用1启用
# yum管理历史记录
当我们删除了某个软件时,希望撤销删除的操作,可以使用yum history undo
删除
httpd
软件,然后查看操作记录[root@web ~]# yum remove httpd -y [root@web ~]# yum history
1
2使用
yum history undo Number
撤销[root@web ~]# yum history info N [root@web ~]# yum history undo N
1
2
# yum缓存软件包
缓存rpm包方式一、通过修改yum全局配置文件
[root@web ~]# vim /etc/yum.conf [main] cachedir=/var/cache/yum/$basearch/$releasever keepcache=1 #启动缓存 [root@web ~]# yum install lrzsz -y [root@web ~]# find /var/cache/yum/ -type f -name "*.rpm"
1
2
3
4
5
6
7缓存rpm包方式二、通过yum下载该软件包至本地,不进行安装
[root@web ~]# yum install httpd -y \ --downloadonly \ --downloaddir=/opt
1
2
3如果缓存的数据包太多,可以使用yum清除缓存
# 清理所有yum缓存信息,包括缓存的软件包 [root@web ~]# yum clean all # 仅清理所有缓存的软件包 [root@web ~]# yum clean packages
1
2
3
4
5