admin 管理员组

文章数量: 887021

14.Yum详解,yum安装,查找,info,反向查找,组,依赖,缓存等所有操作

本章详细讲解yum的使用.包含yum源,Repo文件,本地 yum 源,本地iso的YUM源,网络yum源,yum语法,yum 安装包(yum install),yum install pkg(安装),yum install --downloadonly pkg (下载包),yum localinstall pkg(安装本地rpm包),更新升级,update和upgrade区别,yum查找包 (yum list),搜寻包(yum search),yum查询包信息(yum info),查看包的依赖(deplist ),反向查找文件或命令对应的软件包,删除卸载(yum remove),yum缓存,yum管理软件组等知识,每个知识点都会给出实际的操作和案例。

文章目录

  • Yum概览
    • yum介绍
    • 安装yum
  • yum源
    • Repo文件
    • 本地 yum 源
    • 本地iso的YUM源
    • 网络yum源(例如阿里云)
  • yum语法
    • 语法介绍
    • 主要命令:
    • 插件命令:
    • 可选参数
  • yum 安装包(yum install)
    • 常用命令
    • yum install pkg(安装)
    • yum install --downloadonly pkg (下载包)
    • yum localinstall pkg(安装本地rpm包)
  • 更新升级(update/upgrade)
    • 语法介绍
    • update和upgrade区别
  • yum查找包 (yum list)
    • 常用命令
    • yum list
    • yum list http
    • 使用通配符查找
    • yum list updates
    • 查看已安装的包
  • 搜寻包(yum search)
  • yum查询包信息(yum info)
    • 常用命令
    • 输出介绍
  • 查看包的依赖(deplist )
  • 反向查找命令/文件对应的软件包
    • 已安装的命令
    • 未安装的命令
    • 反向查找文件对应的包
  • 删除卸载(yum remove)
  • yum缓存
    • 常见命令
    • yum clean metadata
    • yum clean packages
  • yum管理软件组
    • yum查询软件组包含的软件
    • yum安装软件组
    • yum命令卸载软件组
  • 总结
  • 友情链接


Yum概览

yum介绍

上一讲解使用RPM命令进行包的安装,需要手工解决包之间的依赖性问题,需要自行去网站或本地查找相关的 RPM 包。YUM可自动解决依赖关系进行包的安装。
yum,全称“Yellow dog Updater, Modified”,是专门为解决包依赖关系而存在的软件包管理器。用于实现软件的一键安装、升级和卸载。它很好的解决了RPM 所面临的包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当使用 yum 安装 RPM 包时,yum 会先从下载包的依赖性文件再进行装包。

安装yum

通常服务器默认是已经安装了yum,如果事先没有安装,可通过如下命令在centos7中安装yum
yum 可以用 rpm 命令安装,安装之前可以通过如下命令查看 yum 是否已安装:

rpm -ivh yum-plugin-fastestmirror-1.1.31-50.el7.noarch.rpm yum-3.4.3-161.el7.centos.noarch.rpm可以看到,系统上已经安装了 yum。
[root@node1 Packages]# rpm -qa|grep yum
yum-3.4.3-161.el7.centos.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
yum-plugin-fastestmirror-1.1.31-50.el7.noarch

yum源

在使用yum 安装软件之前,需事先指定yum下载RPM 包的位置,这个目录就称为 yum 源。yum 源指的就是所有软件安装包的位置,也可称为软件仓库。可以有多个yum源,在安装软件时至少需要一个源。yum源可以使用网络yum源,也可以将本地资源作为 yum源。

Repo文件

repo文件是yum源的配置文件,repo文件定义了一个或者多个软件仓库的配置,从这些位置中下载安装或者升级的包,repo文件中的配置在使用yum命令的时候会被读取。
它的工作原理: 每个 RPM包的头部会纪录该包的依赖关系,然后将这些内容纪录下来进行分析,这样可知道每个软件在安装之前的依赖关系。
YUM的基本工作流程如下:
服务器端:上面存放了所有的RPM包,通过repo文件记录每个RPM文件的信息,包括依赖性关系。
客户端:安装包时,通过配置文件找到依赖关系,然后先下载对应的依赖包进行安装。

repo文件位置
yum 源配置在/etc/yum.repos.d/ 目录下,扩展名为"*.repo"

[root@zaishu yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo          epel.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo  CentOS-x86_64-kernel.repo  epel-testing.repo

注意: 可看到多个yum配置文件,在使用yum命令的时候,会读取这个目录下所有repo文件。所以要保证所有的repo文件配置正确,如果配置有问题(例如网络不通,或者目录不存在),通常只保留一份repo文件。

repo文件选项含义
以Ceonts-Base.reop 为例:

[root@zaishu yum.repos.d]# more CentOS-Base.repo 
...
[base]
name=CentOS-$releasever - Base
mirrorlist=/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
#baseurl=/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

这个仓库配置文件中包含4个yum源,通过[]来区分。以base 容器为例,其他容器和 base类似。
base 容器中各参数的含义分别为:

[base]
name=CentOS-$releasever - Base
mirrorlist=/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
选项说明
[base]容器名称,一定要放在[]中,可随便定义。
name容器说明,可以随便填写。
mirrorlistyum 源服务器的地址列表,里面可以有多个服务器地址。可指定变量例如 a r c h , arch, arch,cpu b a s e a r c h , basearch, basearch,cpu等
baseurlyum 源服务器的地址。 这个地址可以是http https 也可以是文件夹目录,例如baseurl=file:///tmp/pkg
gpgcheck如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。
gpgkey数字证书的公钥文件保存位置。不用修改。
enabled此容器是否生效,不写或写成 enabled 则此容器生效,写成 enable=0 则表示容器不生效。

注意: baseurl和mirrorlist都是指向yum源的地址,这两个选项通常只需要设置一个,他们不同的地方在于mirrorlist是指向多个url地址。baseurl是指向一个地址。

本地 yum 源

1、 将下面的目录指定成yum源

[root@zaishu pkg]# ls -l *.rpm
-rw-r--r-- 1 root root    17200 Nov 16 16:22 culmus-stamashkenaz-clm-fonts-0.130-3.el7.noarch.rpm
-rw-r--r-- 1 root root    17760 Nov 16 16:22 culmus-stamsefarad-clm-fonts-0.130-3.el7.noarch.rpm
-rw-r--r-- 1 root root    34396 Nov 16 16:22 culmus-yehuda-clm-fonts-0.130-3.el7.noarch.rpm
....
-rw-r--r-- 1 root root    39844 Nov 16 16:22 cyrus-sasl-plain-2.1.26-23.el7.x86_64.rpm
-rw-r--r-- 1 root root    43820 Nov 16 16:22 cyrus-sasl-scram-2.1.26-23.el7.x86_64.rpm
-rw-r--r-- 1 root root  4184192 Nov 16 16:22 zenity-3.28.1-1.el7.x86_64.rpm
-rw-r--r-- 1 root root   266160 Nov 16 16:22 zip-3.0-11.el7.x86_64.rpm
-rw-r--r-- 1 root root    91960 Nov 16 16:22 zlib-1.2.7-18.el7.x86_64.rpm
-rw-r--r-- 1 root root    51128 Nov 16 16:22 zlib-devel-1.2.7-18.el7.x86_64.rpm
-rw-r--r-- 1 root root  2497380 Nov 16 16:22 zsh-5.0.2-34.el7_8.2.x86_64.rpm[root@zaishu pkg]# ls -l *.rpm |wc -l
938

2、生成软件清单

  1. 安装createrepo命令
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
  1. 针对当前目录的软件包,生成软件清单,使用 createrepo . 命令
[root@zaishu pkg]# createrepo .
Spawning worker 0 with 938 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

执行后生成了一个新的目录,这个目录当中存放生成的软件清单

[root@zaishu pkg]# ls -l repodata/
total 3452
-rw-r--r-- 1 root root  720645 Nov 16 16:31 8c6829df792cf1cbb990322d50c41bf86669262843783cbf264a8b10ae2b7acc-primary.sqlite.bz2
-rw-r--r-- 1 root root  326283 Nov 16 16:31 967b128a7533a69d2927a466813d5980086a15a77cec0defa98c5d7aef2c33dc-other.sqlite.bz2
-rw-r--r-- 1 root root  895713 Nov 16 16:31 b0bfef0795cedb515ce70765fbaacef9cb872d3ee236e7d3a450fefcabc51775-filelists.sqlite.bz2
-rw-r--r-- 1 root root  319345 Nov 16 16:31 b0f77d534abae4961c83a3ad0b2afd522ce1eac3b6ac1f764449266cc2867e36-primary.xml.gz
-rw-r--r-- 1 root root 1030117 Nov 16 16:31 d76a51d1314fbb7b09e74fd6ef3eea6f2881f2500651f5c8c16accb05df1a9c5-filelists.xml.gz
-rw-r--r-- 1 root root  230708 Nov 16 16:31 ea21accbd6d2ff45f163d042ef34e164f2fee1212248658444c0d3d5a142d6e4-other.xml.gz
-rw-r--r-- 1 root root    3001 Nov 16 16:31 repomd.xml
  1. 更新软件清单
    如果删除或添加了rpm包,不需要重新生成,使用createrepo --update . 更新软件清单即可。
[root@zaishu pkg]# cp /mnt/cdrom/Packages/h*.rpm /tmp/pkg/   //添加软件包到目录中[root@zaishu pkg]# createrepo --update .
Spawning worker 0 with 224 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
  1. 配置本地yum源
[root@zaishu ~]# cat /etc/yum.repos.d/local.repo 
[c7-media]
name=CentOS-$releasever - Media
baseurl=file:///tmp/pkg
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
[root@zaishu ~]# yum update //验证
Loaded plugins: fastestmirror
Determining fastest mirrors
local                                                                                                                           | 2.9 kB  00:00:00     
local/primary_db                                                                                                                | 783 kB  00:00:00     
No packages marked for update

本地iso的YUM源

安装盘中含有大部分常用包,可以通过挂载的方式映像iso文件,进入 Packages 目录,该目录包含绝大部分包,因此常使用安装盘映像作为本地 yum 源。另外由于iso的packages目录中已经生成了软件清单,这个步骤就可以省略。

  1. 挂载iso
[root@zaishu~]# mkdir /mnt/cdrom
#创建cdrom目录,作为光盘的挂载点
[root@zaishu~]# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#挂载光盘到/mnt/cdrom目录下
  1. 新建repo文件
    删除其他几个 yum 源配置文件,只保留新建的。
[root@zaishu yum.repos.d]# rm local.repo 
rm: remove regular file ‘local.repo’? y[root@zaishu~]# cd /etc/yum.repos.d/[root@zaishu yum.repos.d]# cat iso.repo 
[iso]
name=iso
baseurl=file:///mnt/cdrom 
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
  1. 验证
[root@zaishu yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: iso
Cleaning up list of fastest mirrors
Other repos take up 317 M of disk space (use --verbose for details)
[root@zaishu yum.repos.d]# yum update
Loaded plugins: fastestmirror
Determining fastest mirrors
iso                                                                                                                             | 3.6 kB  00:00:00     
(1/2): iso/group_gz                                                                                                             | 153 kB  00:00:00     
(2/2): iso/primary_db                                                                                                           | 3.3 MB  00:00:00     
No packages marked for update

iso作为yum源就配置完成。

网络yum源(例如阿里云)

一些大厂的yum源 可以直接在官网下载进行配置,非常方便

  1. 删除现有的repo文件
[root@zaishu yum.repos.d]# rm -rf *.repo
[root@zaishu yum.repos.d]# ls
  1. 下载阿里云yum源的repo文件
[root@node1 Packages]# rpm -ivh wget-1.14-18.el7.x86_64.rpm   //wget命令用于下载
warning: wget-1.14-18.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...1:wget-1.14-18.el7                 ################################# [100%]
[root@zaishu yum.repos.d]# wget  .repo 
--2021-11-16 17:19:59--  .repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 14.29.39.223, 121.9.246.109, 183.60.138.227, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|14.29.39.223|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2523 (2.5K) [application/octet-stream]
Saving to: ‘Centos-7.repo’100%[=============================================================================================================>] 2,523       --.-K/s   in 0s      2021-11-16 17:19:59 (200 MB/s) - ‘Centos-7.repo’ saved [2523/2523][root@zaishu yum.repos.d]# ls  
Centos-7.repo
  1. 查看
[root@zaishu yum.repos.d]# cat Centos-7.repo 
# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=/$releasever/os/$basearch//$releasever/os/$basearch//$releasever/os/$basearch/
gpgcheck=1
gpgkey= updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=/$releasever/updates/$basearch//$releasever/updates/$basearch//$releasever/updates/$basearch/
gpgcheck=1
gpgkey= packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=/$releasever/extras/$basearch//$releasever/extras/$basearch//$releasever/extras/$basearch/
gpgcheck=1
gpgkey= packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=/$releasever/centosplus/$basearch//$releasever/centosplus/$basearch//$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey= - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=/$releasever/contrib/$basearch//$releasever/contrib/$basearch//$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=
  1. 验证
root@zaishu yum.repos.d]# yum clean all
Loaded plugins: fastestmirror
Cleaning repos: base extras updates
Cleaning up list of fastest mirrors
Other repos take up 81 M of disk space (use --verbose for details)
[root@zaishu yum.repos.d]# yum update
Loaded plugins: fastestmirror
Determining fastest mirrors* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
.xml: [Errno 12] Timeout on .xml: (28, 'Connection timed out after 30002 milliseconds')
Trying other mirror.
.xml: [Errno 14] curl#6 - "Could not resolve host: mirrors.cloud.aliyuncs.com; Unknown error"
Trying other mirror.
base                                                                                                                            | 3.6 kB  00:00:00     
extras                                                                                                                          | 2.9 kB  00:00:00     
updates                                                                                                                         | 2.9 kB  00:00:00     
(1/4): base/7/x86_64/group_gz                                                                                                   | 153 kB  00:00:00     
(2/4): extras/7/x86_64/primary_db                                                                                               | 243 kB  00:00:02     
(3/4): base/7/x86_64/primary_db                                                                                                 | 6.1 MB  00:00:28     
(4/4): updates/7/x86_64/primary_db                                                                                              |  12 MB  00:00:41     
Resolving Dependencies
--> Running transaction check
---> Package NetworkManager.x86_64 1:1.18.8-1.el7 will be updated
....
---> Package wpa_supplicant.x86_64 1:2.6-12.el7 will be updated
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================================Package                                    Arch                      Version                                         Repository                  Size
=======================================================================================================================================================
Installing:kernel                                     x86_64                    3.10.0-1160.45.1.el7                            updates                     50 M
Updating:NetworkManager                             x86_64                    1:1.18.8-2.el7_9                                updates                    1.9 MNetworkManager-libnm                       x86_64                    1:1.18.8-2.el7_9                                updates                    1.7 MNetworkManager-team                        x86_64                    1:1.18.8-2.el7_9                                updates                    165 k
....

yum语法

语法介绍

yum [options] [command] [package …]
options:可选,选项包括-h(帮助),-y(安装过程选择为 “yes”),-q(不显示安装的过程)等等。
command:要进行的操作。
package:安装的包名。
[root@es-node1 ~]# yum --help
usage: dnf [options] COMMAND

主要命令:

alias List or create command aliases
autoremove 删除所有原先因为依赖关系安装的不需要的软件包
check 在包数据库中寻找问题
check-update 检查是否有软件包升级
clean 删除已缓存的数据
deplist 列出软件包的依赖关系和提供这些软件包的源
distro-sync 同步已经安装的软件包到最新可用版本
downgrade 降级包
group 显示或使用组信息
help 显示一个有帮助的用法信息
history 显示或使用事务历史
info 显示关于软件包或软件包组的详细信息
install 向系统中安装一个或多个软件包
list 列出一个或一组软件包
makecache 创建元数据缓存
mark 在已安装的软件包中标记或者取消标记由用户安装的软件包。
module 与模块交互。
provides 查找提供指定内容的软件包
reinstall 重装一个包
remove 从系统中移除一个或多个软件包
repolist 显示已配置的软件仓库
repoquery 搜索匹配关键字的软件包
repository-packages 对指定仓库中的所有软件包运行命令
search 在软件包详细信息中搜索指定字符串
shell 运行交互式的DNF终端
swap 运行交互式的 DNF 终端以删除或者安装 spec 描述文件
updateinfo 显示软件包的参考建议
upgrade 升级系统中的一个或多个软件包
upgrade-minimal 升级,但只有“最新”的软件包已修复可能影响你的系统的问题

插件命令:

builddep Install build dependencies for package or spec file
changelog Show changelog data of packages
config-manager 管理 dnf 配置选项和软件仓库
copr 与 Copr 仓库交互
debug-dump 转储已安装的 RPM 软件包信息至文件
debug-restore 恢复调试用转储文件中的软件包记录
debuginfo-install 安装调试信息软件包
download 下载软件包至当前目录
needs-restarting 判断所升级的二进制文件是否需要重启
playground 与 Playground 仓库交互。
repoclosure 显示仓库中未被解决的依赖关系的列表
repodiff List differences between two sets of repositories
repograph 以点线图方式输出完整的软件包依赖关系图
repomanage 管理 RPM 软件包目录
reposync 下载远程仓库中的全部软件包

可选参数

选项含义用途
-h显示帮助信息;
-h显示帮助信息;
-y对所有的提问都回答“yes”;
-c指定配置文件;
-q安静模式;
-v详细模式;
-d设置调试等级(0-10);
-e设置错误等级(0-10);
-R设置yum处理一个命令的最大等待时间;
-C完全从缓存中运行,而不去下载或者更新任何头文件。
–downloadonly仅下载软件包。
-c [config file], --config [config file]配置文件位置
-q, --quiet静默执行
-v, --verbose详尽执行
–version显示 DNF 版本信息并退出
–installroot [path]设置目标根目录
–nodocs不要安装文档
–noplugins禁用所有插件
–enableplugin [plugin]启用指定名称的插件
–disableplugin [plugin]禁用指定名称的插件
–releasever RELEASEVER覆盖在配置文件和仓库文件中 $releasever 的值
–setopt SETOPTS设置任意配置和仓库选项
–skip-broken通过跳过软件包来解决依赖问题
-h, --help, --help-cmd显示命令帮助
–allowerasing允许解决依赖关系时删除已安装软件包
-b, --best在事务中尝试最佳软件包版本。
–nobestdo not limit the transaction to the best candidate
-C, --cacheonly完全从系统缓存运行,不升级缓存
-d [debug level], --debuglevel [debug level]调试输出级别
–debugsolver转储详细解决结果至文件
–showduplicates在 list/search 命令下,显示仓库里重复的条目
-e ERRORLEVEL, --errorlevel ERRORLEVEL错误输出级别
–obsoletes对 upgrade 启用 dnf 的过期处理逻辑,或对 info、list 和 repoquery 显示软件包过期的功能
-y, --assumeyes全部问题自动应答为是
–assumeno全部问题自动应答为否
–enablerepo [repo]生效yum源
–disablerepo [repo]失效yum源
–repo [repo], --repoid [repo]启用指定 id 或 glob 的仓库,可以指定多次
-x [package], --exclude [package], --excludepkgs [package]用全名或通配符排除软件包
–noautoremove禁用删除不再被使用的依赖软件包
–nogpgcheckdisable gpg signature checking (if RPM policy allows)
–color COLOR配置是否使用颜色
–refresh在运行命令之前将元数据标记为过期。
-4仅解析 IPv4 地址
-6仅解析 IPv6 地址
–destdir DESTDIR, --downloaddir DESTDIR设置软件包要复制到的目录
–downloadonly仅下载软件包
–bugfix在更新中包括与 bug 修复有关的软件包
–enhancement在更新中包括与功能增强有关的软件包。
–newpackage在更新中包括与新软件包有关的软件包
–security在更新中包括与安全有关的软件包
–advisory ADVISORY, --advisories ADVISORY在更新中包括修复指定公告所必须的软件包

yum 安装包(yum install)

常用命令

安装包是yum最常见的用途,安装包可以分为如下几类。

命令功能
yum install安装全部包
yum install 包名安装指定包
yum install --downloadonly pkg下载包
yum localinstall 包全名安装本地yum源指定的包
yum groupinsall group安装某个组件的全部软件包

yum install pkg(安装)

yum install 包名: 这里pkg是指包名

[root@zaishu yum jepos.d]#yum -y install gcc
#使用yum安装gcc,-y表示不需要提示直接安装
安装gcc的包涉及很多依赖包,所以是用yum 命令安装。

yum install --downloadonly pkg (下载包)

yum install --downloadonly pkg 仅用于下载包
这条命令用于仅仅只是下载包,而不安装,–downloadonly可以达到这个目的。
以httpd这包为例,当不指定位置的时候,它会放到默认位置,并且它会将它依赖的所有包一并下载

  1. 下载httpd
[root@zaishu ~]# yum install --downloadonly httpd.x86_64
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* extras: mirrors.163.com* updates: mirrors.cn99.com
base                                                                                                                            | 3.6 kB  00:00:00     
extras                                                                                                                          | 2.9 kB  00:00:00     
updates                                                                                                                         | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-97.el7.centos.2 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-97.el7.centos.2 for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-7.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-97.el7.centos.2 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================================Package                            Arch                          Version                                         Repository                      Size
=======================================================================================================================================================
Installing:httpd                              x86_64                        2.4.6-97.el7.centos.2                           updates                        2.7 M
Installing for dependencies:apr                                x86_64                        1.4.8-7.el7                                     base                           104 kapr-util                           x86_64                        1.5.2-6.el7                                     base                            92 khttpd-tools                        x86_64                        2.4.6-97.el7.centos.2                           updates                         94 kmailcap                            noarch                        2.1.41-2.el7                                    base                            31 kTransaction Summary
=======================================================================================================================================================
Install  1 Package (+4 Dependent packages)Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
(1/5): apr-util-1.5.2-6.el7.x86_64.rpm                                                                                          |  92 kB  00:00:00     
(2/5): apr-1.4.8-7.el7.x86_64.rpm                                                                                               | 104 kB  00:00:01     
(3/5): httpd-tools-2.4.6-97.el7.centos.2.x86_64.rpm                                                                             |  94 kB  00:00:00     
(4/5): mailcap-2.1.41-2.el7.noarch.rpm                                                                                          |  31 kB  00:00:01     
(5/5): httpd-2.4.6-97.el7.centos.2.x86_64.rpm                                                                                   | 2.7 MB  00:00:06     
-------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                  440 kB/s | 3.0 MB  00:00:07     
exiting because "Download Only" specified
  1. 查找位置
    下载成功后,它下载的包可以通过 /var/cache/yum/x86_64/[version]/[repository]/packages 来进行查找。
    version : 是指操作系统大版本号。当前实验环境就是7. 。
    repository : 是指通过哪个yum源的配置得到。如下 httpd这个包会下载到updates目录,apr会下载到base目录等。
=======================================================================================================================================================Package                            Arch                          Version                                         Repository                      Size
=======================================================================================================================================================
Installing:httpd                              x86_64                        2.4.6-97.el7.centos.2                           updates                        2.7 M
Installing for dependencies:apr                                x86_64                        1.4.8-7.el7                                     base                           104 kapr-util                           x86_64                        1.5.2-6.el7                                     base                            92 khttpd-tools                        x86_64                        2.4.6-97.el7.centos.2                           updates                         94 kmailcap                            noarch                        2.1.41-2.el7                                    base                            31 k
[root@zaishu /]# ls -l /var/cache/yum/x86_64/7/updates/packages/httpd-2.4.6-97.el7.centos.2.x86_64.rpm 
-rw-r--r-- 1 root root 2846924 Nov 12 03:12 /var/cache/yum/x86_64/7/updates/packages/httpd-2.4.6-97.el7.centos.2.x86_64.rpm
[root@zaishu /]# ls -l /var/cache/yum/x86_64/7/base/packages/apr-1.4.8-7.el7.x86_64.rpm 
-rw-r--r-- 1 root root 106124 Oct 15  2020 /var/cache/yum/x86_64/7/base/packages/apr-1.4.8-7.el7.x86_64.rpm
  1. 指定下载目录
    通过 --downloaddir 下载到指定目录:
    yum install --downloadonly --downloaddir=/tmp
[root@zaishu /]# yum install --downloadonly --downloaddir=/root/zaishu  httpd.x86_64 
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* extras: mirrors.163.com* updates: mirrors.cn99.com
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-97.el7.centos.2 will be installed
--> Processing Dependency: httpd-tools = 2.4.6-97.el7.centos.2 for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: /etc/mime.types for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: libaprutil-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Processing Dependency: libapr-1.so.0()(64bit) for package: httpd-2.4.6-97.el7.centos.2.x86_64
--> Running transaction check
---> Package apr.x86_64 0:1.4.8-7.el7 will be installed
---> Package apr-util.x86_64 0:1.5.2-6.el7 will be installed
---> Package httpd-tools.x86_64 0:2.4.6-97.el7.centos.2 will be installed
---> Package mailcap.noarch 0:2.1.41-2.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================================Package                            Arch                          Version                                         Repository                      Size
=======================================================================================================================================================
Installing:httpd                              x86_64                        2.4.6-97.el7.centos.2                           updates                        2.7 M
Installing for dependencies:apr                                x86_64                        1.4.8-7.el7                                     base                           104 kapr-util                           x86_64                        1.5.2-6.el7                                     base                            92 khttpd-tools                        x86_64                        2.4.6-97.el7.centos.2                           updates                         94 kmailcap                            noarch                        2.1.41-2.el7                                    base                            31 kTransaction Summary
=======================================================================================================================================================
Install  1 Package (+4 Dependent packages)Total download size: 3.0 M
Installed size: 10 M
Background downloading packages, then exiting:
exiting because "Download Only" specified
[root@zaishu zaishu.cn]# cd /root/zaishu/
[root@zaishu zaishu]# ls
apr-1.4.8-7.el7.x86_64.rpm       httpd-2.4.6-97.el7.centos.2.x86_64.rpm        mailcap-2.1.41-2.el7.noarch.rpm
apr-util-1.5.2-6.el7.x86_64.rpm  httpd-tools-2.4.6-97.el7.centos.2.x86_64.rpm

注意,下载的安装包会一并下载她所依赖关系的包,但不会被安装。
在红帽6的早期的版本中,需要安装yum插件(yum-plugin-downloadonly)才能使用–downloadonly

yum localinstall pkg(安装本地rpm包)

yum localinstall pkg:这里pkg是指包全名,也就是需要指定.rpm后缀,它的作用类似rpm -ivh xx.rpm,用于安装本地的rpm包,但rpm命令不能解决依赖,使用yum在安装本地rpm包的时候,可以解决依赖关系(会使用上yum源)。
当不能使用网络yum源的时候,可以先将下载包下载到本地,单独进行安装。

[root@zaishu ~]# rpm -ivh Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64.rpm 
warning: Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID cd2efd2a: NOKEY
error: Failed dependencies:Percona-Server-client-56 is needed by Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64Percona-Server-shared-56 is needed by Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
[root@zaishu ~]# yum localinstall Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64.rpm 
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Examining Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64.rpm: Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
Marking Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-server-56.x86_64 0:5.6.38-rel83.0.el7 will be installed
--> Processing Dependency: Percona-Server-client-56 for package: Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
Loading mirror speeds from cached hostfile* c7-media: 
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.38-rel83.0.el7 will be installed
---> Package Percona-Server-shared-56.x86_64 0:5.6.38-rel83.0.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================================Package                            Arch             Version                       Repository                                                     Size
=======================================================================================================================================================
Installing:Percona-Server-server-56           x86_64           5.6.38-rel83.0.el7            /Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64            88 M
Installing for dependencies:Percona-Server-client-56           x86_64           5.6.38-rel83.0.el7            c7-media                                                      5.5 MPercona-Server-shared-56           x86_64           5.6.38-rel83.0.el7            c7-media                                                      618 kTransaction Summary
=======================================================================================================================================================
Install  1 Package (+2 Dependent packages)Total size: 94 M
Total download size: 6.1 M
Installed size: 124 M
Is this ok [y/d/N]: y
Downloading packages:
-------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                  119 MB/s | 6.1 MB  00:00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Warning: RPMDB altered outside of yum.Installing : Percona-Server-shared-56-5.6.38-rel83.0.el7.x86_64                                                                                  1/3 Installing : Percona-Server-client-56-5.6.38-rel83.0.el7.x86_64                                                                                  2/3 Installing : Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64                                                                                  3/3 
Percona Server is distributed with several useful UDF (User Defined Function) from Percona Toolkit.
Run the following commands to create these functions:
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
See .6/management/udf_percona_toolkit.html for more detailsVerifying  : Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64                                                                                  1/3 Verifying  : Percona-Server-shared-56-5.6.38-rel83.0.el7.x86_64                                                                                  2/3 Verifying  : Percona-Server-client-56-5.6.38-rel83.0.el7.x86_64                                                                                  3/3 Installed:Percona-Server-server-56.x86_64 0:5.6.38-rel83.0.el7                                                                                                 Dependency Installed:Percona-Server-client-56.x86_64 0:5.6.38-rel83.0.el7                       Percona-Server-shared-56.x86_64 0:5.6.38-rel83.0.el7                      Complete!

更新升级(update/upgrade)

语法介绍

升级包常用命令如下:

命令含义
yum update更新所有的包
yum upgrade升级所有的包
yum check-update检查所有可更新的包
yum update package1更新指定程序包package1
yum upgrade package1升级指定程序包package1
yum groupupdate group1升级程序组group1
yum --exclude=python* update升级的时候不升级python相关的包

update和upgrade区别

yum update和yum upgrade的功能是一样,都是将需要更新的package更新至软件源中的最新版。
区别是 yum upgrade会删除旧版本的package,而yum update则会保留。
因此如果软件依赖旧版本的package,最好是使用 yum update,确保不会出现兼容问题。
`
yum update // 升级所有的包同时也升级软件和系统内核
yum upgrade // 只升级所有包,不升级软件和系统内核

yum查找包 (yum list)

yum list 可以查询所有包。通过yum list查看到包的是否安装,是否有更新包,所在的yum源等信息。常见的命令如下:

常用命令

命令含义
yum list显示所有已经安装和可以安装的包
yum list httpd显示出名为httpd的包
yum list httpd*显示出名为httpd开头的所有的包
yum list updates显示出所有可以更新的包
yum list installed显示出所有已经安装的包
yum list extras显示出所有已安装但是不在yum仓库里的包
yum grouplist系统中已安装的和可用的软件组,对于可用的可以安装

下面举几个常见的示例

yum list

yum list:查询所有已安装和可安装的软件包。

root@zaishu ~]# yum list |more
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.ustc.edu.cn
Installed Packages  //已安装的包
// 包名										版本信息						yum源
NetworkManager.x86_64                       1:1.18.8-2.el7_9           @updates 
NetworkManager-libnm.x86_64                 1:1.18.8-2.el7_9           @updates 
NetworkManager-team.x86_64                  1:1.18.8-2.el7_9           @updates 
NetworkManager-tui.x86_64                   1:1.18.8-2.el7_9           @updates 
Percona-Server-client-56.x86_64             5.6.38-rel83.0.el7         @c7-media
Percona-Server-server-56.x86_64             5.6.38-rel83.0.el7         @/Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
Percona-Server-shared-56.x86_64             5.6.38-rel83.0.el7         @c7-media
....
Available Packages  //可以安装的包,但尚未安装的
389-ds-base.x86_64                          1.3.10.2-13.el7_9          updates
389-ds-base-devel.x86_64                    1.3.10.2-13.el7_9          updates
389-ds-base-libs.x86_64                     1.3.10.2-13.el7_9          updates
389-ds-base-snmp.x86_64                     1.3.10.2-13.el7_9          updates
Cython.x86_64                               0.19-5.el7                 base
ElectricFence.i686                          2.2.2-39.el7               base
ElectricFence.x86_64                        2.2.2-39.el7               base
GConf2.i686                                 3.2.6-8.el7                base
GConf2.x86_64                               3.2.6-8.el7                base
GConf2-devel.i686                           3.2.6-8.el7                base
GConf2-devel.x86_64                         3.2.6-8.el7                base

yum list http

查找指定包的安装情况。

[root@zaishu ~]# yum list http
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.tuna.tsinghua.edu.cn* c7-media: * extras: mirrors.bfsu.edu.cn* updates: mirrors.bfsu.edu.cn
Error: No matching Packages to list
[root@zaishu ~]# yum list httpd
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.ustc.edu.cn
Available Packages
httpd.x86_64                                                       2.4.6-97.el7.centos.2                                                        updates

使用通配符查找

查找所有以httpd开头的包

[root@zaishu ~]# yum list httpd*
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.cn99.com
Available Packages
httpd.x86_64                                                           2.4.6-97.el7.centos.2                                                    updates
httpd-devel.x86_64                                                     2.4.6-97.el7.centos.2                                                    updates
httpd-manual.noarch                                                    2.4.6-97.el7.centos.2                                                    updates
httpd-tools.x86_64                                                     2.4.6-97.el7.centos.2                                                    update

yum list updates

yum list updates 查找所有可以更新的包

查看已安装的包

yum list installed: 用于查询当前系统以及安装的包

[root@zaishu ~]# yum list installed | more
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Installed Packages
NetworkManager.x86_64              1:1.18.8-2.el7_9               @updates      
NetworkManager-libnm.x86_64        1:1.18.8-2.el7_9               @updates      
NetworkManager-team.x86_64         1:1.18.8-2.el7_9               @updates      
NetworkManager-tui.x86_64          1:1.18.8-2.el7_9               @updates      
Percona-Server-client-56.x86_64    5.6.38-rel83.0.el7             @c7-media     
Percona-Server-server-56.x86_64    5.6.38-rel83.0.el7             @/Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
Percona-Server-shared-56.x86_64    5.6.38-rel83.0.el7             @c7-media     
acl.x86_64                         2.2.51-15.el7                  @anaconda     
aic94xx-firmware.noarch            30-6.el7                       @anaconda     
alsa-firmware.noarch               1.0.28-2.el7                   @anaconda     
alsa-lib.x86_64                    1.1.8-1.el7                    @anaconda     
alsa-tools-firmware.x86_64         1.1.0-1.el7                    @anaconda     
....

搜寻包(yum search)

当不记得完整包名(甚至完全不记得),只记得部分描述信息的时候,可以使用yum search 进行查找,它会从 yum 源服务器上查找与关键字相关的所有软件包(除了包名,也可以通过描述信息进行匹配)
yum search mysql// 根据关键字mysql查找相关的包

[root@zaishu ~]# yum search mysql
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.dgut.edu.cn
================================================================= N/S matched: mysql ==================================================================
MySQL-python.x86_64 : An interface to MySQL
akonadi-mysql.x86_64 : Akonadi MySQL backend support
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
dovecot-mysql.x86_64 : MySQL back end for dovecot
freeradius-mysql.x86_64 : MySQL support for freeradius
libdbi-dbd-mysql.x86_64 : MySQL plugin for libdbi
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
pcp-pmda-mysql.x86_64 : Performance Co-Pilot (PCP) metrics for MySQL
perl-DBD-MySQL.x86_64 : A MySQL interface for Perl
php-mysql.x86_64 : A module for PHP applications that use MySQL databases
php-mysqlnd.x86_64 : A module for PHP applications that use MySQL databases
qt-mysql.i686 : MySQL driver for Qt's SQL classes
qt-mysql.x86_64 : MySQL driver for Qt's SQL classes
qt3-MySQL.i686 : MySQL drivers for Qt 3's SQL classes
qt3-MySQL.x86_64 : MySQL drivers for Qt 3's SQL classes
qt5-qtbase-mysql.i686 : MySQL driver for Qt5's SQL classes
qt5-qtbase-mysql.x86_64 : MySQL driver for Qt5's SQL classes
redland-mysql.x86_64 : MySQL storage support for Redland
rsyslog-mysql.x86_64 : MySQL support for rsyslog
mariadb.x86_64 : A community developed branch of MySQL
mariadb-devel.i686 : Files for development of MariaDB/MySQL applications
mariadb-devel.x86_64 : Files for development of MariaDB/MySQL applications
mariadb-libs.i686 : The shared libraries required for MariaDB/MySQL clients
mariadb-libs.x86_64 : The shared libraries required for MariaDB/MySQL clientsName and summary matches only, use "search all" for everything.

yum查询包信息(yum info)

yum info 相较于yum list,能够更加详细显示包的信息。

常用命令

命令用途
yum info显示所有已经安装和可以安装的包的信息
yum info python显示出名为python的包的信息
yum info python*显示出名为python开头的所有的包的信息
yum info updates显示出所有可以更新的包的信息
yum info installed显示出所有已经安装的包的信息
yum info extras显示出所有已安装但是不在yum仓库里的包的信息
yum groupinfo group1显示程序组group1信息

输出介绍

yum info 包名:查询执行软件包的详细信息。

[root@zaishu ~]# yum info httpd
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.ustc.edu.cn
Available Packages <-没有安装
Name        : httpd<-包名
Arch        : x86_64 <-适合的硬件平台
Version     : 2.4.6 <-版本
Release     : 97.el7.centos.2 <-发布版本
Size        : 2.7 M <-大小
Repo        : updates/7/x86_64 <-所在目录
Summary     : Apache HTTP Server  <- 概览信息
URL         : /
License     : ASL 2.0
Description : The Apache HTTP Server is a powerful, efficient, and extensible: web server.

查看包的依赖(deplist )

yum deplist httpd: 查看包的完整依赖信息

[root@zaishu ~]# yum deplist httpd
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.bfsu.edu.cn
package: httpd.x86_64 2.4.6-97.el7.centos.2dependency: /bin/shprovider: bash.x86_64 4.2.46-34.el7dependency: /etc/mime.typesprovider: mailcap.noarch 2.1.41-2.el7dependency: /usr/sbin/groupaddprovider: shadow-utils.x86_64 2:4.6-5.el7dependency: /usr/sbin/useraddprovider: shadow-utils.x86_64 2:4.6-5.el7dependency: httpd-tools = 2.4.6-97.el7.centos.2provider: httpd-tools.x86_64 2.4.6-97.el7.centos.2dependency: libapr-1.so.0()(64bit)provider: apr.x86_64 1.4.8-7.el7dependency: libaprutil-1.so.0()(64bit)provider: apr-util.x86_64 1.5.2-6.el7dependency: libc.so.6(GLIBC_2.14)(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libcrypt.so.1()(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libdb-5.3.so()(64bit)provider: libdb.x86_64 5.3.21-25.el7dependency: libdl.so.2()(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libexpat.so.1()(64bit)provider: expat.x86_64 2.1.0-12.el7dependency: liblua-5.1.so()(64bit)provider: lua.x86_64 5.1.4-15.el7dependency: libm.so.6()(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libpcre.so.1()(64bit)provider: pcre.x86_64 8.32-17.el7dependency: libpthread.so.0()(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libpthread.so.0(GLIBC_2.2.5)(64bit)provider: glibc.x86_64 2.17-325.el7_9dependency: libselinux.so.1()(64bit)provider: libselinux.x86_64 2.5-15.el7dependency: libsystemd-daemon.so.0()(64bit)provider: systemd-libs.x86_64 219-78.el7_9.3dependency: libsystemd-daemon.so.0(LIBSYSTEMD_DAEMON_31)(64bit)provider: systemd-libs.x86_64 219-78.el7_9.3dependency: libz.so.1()(64bit)provider: zlib.x86_64 1.2.7-19.el7_9dependency: rtld(GNU_HASH)provider: glibc.x86_64 2.17-325.el7_9provider: glibc.i686 2.17-325.el7_9dependency: system-logos >= 7.92.1-1provider: centos-logos.noarch 70.0.6-3.el7.centosdependency: systemd-unitsprovider: systemd.x86_64 219-78.el7_9.3

反向查找命令/文件对应的软件包

当需要卸载命令的时候可以通过whatprovides/provides反向查找命令对应的软件包,通过卸载包达到卸载命令的目的。 另外当想使用命令的时候,可以通过whatprovides/provides查找到对应的包进行安装,达到安装命令的目的。

已安装的命令

yum provides ls // 查询命令ls 是由哪个包安装的。

[root@zaishu ~]# yum provides ls
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.cn99.com
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : base
Matched from:
Filename    : /usr/bin/lscoreutils-8.22-24.el7_9.2.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : updates
Matched from:
Filename    : /usr/bin/lscoreutils-8.22-24.el7_9.2.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : @updates
Matched from:
Filename    : /usr/bin/ls

未安装的命令

[root@zaishu ~]# semanage
-bash: semanage: command not found[root@zaishu ~]# yum provides semanage
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.cn99.com
policycoreutils-python-2.5-34.el7.x86_64 : SELinux policy core python utilities
Repo        : base
Matched from:
Filename    : /usr/sbin/semanage

反向查找文件对应的包

以下场景经常遇见,当安装包的时候,提示缺乏依赖关系,需要找到这些库文件。可以通过库文件查找到对应的包,通过安装包的方式,将库文件补齐。

[root@zaishu~]# rpm -ivh zabbix-server-mysql-3.4.4-1.el7.x86_64.rpm
error: Failed dependencies:
libOpenIPMI.so.0()(64bit) is needed by zabbix-server-mysql-3.4.4-1.el7.x86_64
libOpenIPMIposix.so.0()(64bit) is needed by zabbix-server-mysql-3.4.4-1.el7.x86_64
[root@zaishu ~]# yum provides libOpenIPMI.so.0
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile* base: mirrors.163.com* c7-media: * extras: mirrors.163.com* updates: mirrors.ustc.edu.cn
//OpenIPMI-perl-2.0.27-1.el7.i686  需要事先安装这个包
OpenIPMI-libs-2.0.27-1.el7.i686 : The OpenIPMI runtime libraries
Repo        : base
Matched from:
Provides    : libOpenIPMI.so.0//OpenIPMI-perl-2.0.27-1.el7.i686  需要事先安装这个包
OpenIPMI-perl-2.0.27-1.el7.i686 : IPMI Perl language bindings
Repo        : base
Matched from:
Provides    : libOpenIPMI.so.0

删除卸载(yum remove)

yum 卸载包的时候,它会一并删掉依赖这个包的其他软件。
yum 卸载命令的基本格式如下:
yum remove 包名 #卸载指定的软件包
yum groupremove group1 // 删除程序组group1

[root@zaishu ~]# yum remove Percona-Server-shared-56
Loaded plugins: fastestmirror
Repository base is listed more than once in the configuration
Repository updates is listed more than once in the configuration
Repository extras is listed more than once in the configuration
Repository centosplus is listed more than once in the configuration
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-shared-56.x86_64 0:5.6.38-rel83.0.el7 will be erased
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-client-56-5.6.38-rel83.0.el7.x86_64
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.38-rel83.0.el7 will be erased
---> Package Percona-Server-server-56.x86_64 0:5.6.38-rel83.0.el7 will be erased
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================================================================Package                            Arch             Version                      Repository                                                      Size
=======================================================================================================================================================
Removing:Percona-Server-shared-56           x86_64           5.6.38-rel83.0.el7           @c7-media                                                      3.4 M
Removing for dependencies:Percona-Server-client-56           x86_64           5.6.38-rel83.0.el7           @c7-media                                                       33 MPercona-Server-server-56           x86_64           5.6.38-rel83.0.el7           @/Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64            88 MTransaction Summary
=======================================================================================================================================================
Remove  1 Package (+2 Dependent packages)Installed size: 124 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionErasing    : Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64                                                                                  1/3 Erasing    : Percona-Server-client-56-5.6.38-rel83.0.el7.x86_64                                                                                  2/3 Erasing    : Percona-Server-shared-56-5.6.38-rel83.0.el7.x86_64                                                                                  3/3 Verifying  : Percona-Server-server-56-5.6.38-rel83.0.el7.x86_64                                                                                  1/3 Verifying  : Percona-Server-shared-56-5.6.38-rel83.0.el7.x86_64                                                                                  2/3 Verifying  : Percona-Server-client-56-5.6.38-rel83.0.el7.x86_64                                                                                  3/3 Removed:Percona-Server-shared-56.x86_64 0:5.6.38-rel83.0.el7                                                                                                 Dependency Removed:Percona-Server-client-56.x86_64 0:5.6.38-rel83.0.el7                       Percona-Server-server-56.x86_64 0:5.6.38-rel83.0.el7                      Complete!

注意:卸载包的时候,它会一并删掉依赖这个包的其他软件。

yum缓存

常见命令

语法:
yum clean [headers|packages|metadata|dbcache|plugins|expire-cache|all]

命令含义
yum makecache将服务器的包信息下载到本地电脑缓存起来。
yum clean packages清除缓存目录下的软件包, 清空的是(/var/cache/yum)下的包,对应就是yum下载到本地的包
yum clean headers清除缓存目录下的 headers
yum clean metadata清除缓存目录下旧的 metadata,对应就是 makecache产生的文件
yum clean all清除缓存目录下的软件包及metadata等

yum clean metadata

用于清理缓存当中的包信息

//查看当前缓存目录大小
[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
11M	/var/cache/yum/x86_64/
//将yum源当中的包信息 缓存到本地
[root@prometheus ~]# yum makecache
Loaded plugins: fastestmirror
Determining fastest mirrors* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base                                                                            | 3.6 kB  00:00:00     
elrepo                                                                          | 3.0 kB  00:00:00     
extras                                                                          | 2.9 kB  00:00:00     
updates                                                                         | 2.9 kB  00:00:00     
(1/13): base/7/x86_64/group_gz                                                  | 153 kB  00:00:00     
(2/13): base/7/x86_64/filelists_db                                              | 7.2 MB  00:00:01     
(3/13): base/7/x86_64/other_db                                                  | 2.6 MB  00:00:00     
(4/13): extras/7/x86_64/filelists_db                                            | 259 kB  00:00:00     
(5/13): extras/7/x86_64/primary_db                                              | 243 kB  00:00:00     
(6/13): extras/7/x86_64/other_db                                                | 145 kB  00:00:00     
(7/13): base/7/x86_64/primary_db                                                | 6.1 MB  00:00:02     
(8/13): elrepo/filelists_db                                                     |  40 kB  00:00:01     
(9/13): updates/7/x86_64/filelists_db                                           | 6.6 MB  00:00:01     
(10/13): updates/7/x86_64/other_db                                              | 829 kB  00:00:00     
(11/13): elrepo/other_db                                                        |  34 kB  00:00:03     
(12/13): elrepo/primary_db                                                      | 500 kB  00:00:03     
(13/13): updates/7/x86_64/primary_db                                            |  12 MB  00:00:05     
Metadata Cache Created
//可看到缓存目录的大小 变大到284M
[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
284M	/var/cache/yum/x86_64/
//清除缓存当中的包信息
root@prometheus ~]# yum clean metadata
Loaded plugins: fastestmirror
Cleaning repos: base elrepo extras updates
11 metadata files removed
24 sqlite files removed
0 metadata files removed
//空间变小
[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
11M	/var/cache/yum/x86_64/

yum clean packages

[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
11M	/var/cache/yum/x86_64/
// 下载包到缓存目录
[root@prometheus ~]# yum install --downloadonly  mariadb.x86_64
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
base                                                                            | 3.6 kB  00:00:00     
elrepo                                                                          | 3.0 kB  00:00:00     
extras                                                                          | 2.9 kB  00:00:00     
updates                                                                         | 2.9 kB  00:00:00     
(1/5): base/7/x86_64/group_gz                                                   | 153 kB  00:00:00     
(2/5): extras/7/x86_64/primary_db                                               | 243 kB  00:00:00     
(3/5): updates/7/x86_64/primary_db                                              |  12 MB  00:00:04     
(4/5): base/7/x86_64/primary_db                                                 | 6.1 MB  00:00:04     
(5/5): elrepo/primary_db                                                        | 500 kB  00:00:05     
Resolving Dependencies
--> Running transaction check
---> Package mariadb.x86_64 1:5.5.68-1.el7 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================Package                Arch                  Version                        Repository           Size
=======================================================================================================
Installing:mariadb                x86_64                1:5.5.68-1.el7                 base                8.8 MTransaction Summary
=======================================================================================================
Install  1 PackageTotal download size: 8.8 M
Installed size: 49 M
Background downloading packages, then exiting:
mariadb-5.5.68-1.el7.x86_64.rpm                                                 | 8.8 MB  00:00:03     
exiting because "Download Only" specified
[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
138M	/var/cache/yum/x86_64/
//清除掉缓存目录中的包
[root@prometheus ~]# yum clean packages
Loaded plugins: fastestmirror
Cleaning repos: base elrepo extras updates
1 package file removed
[root@prometheus ~]# du -sh /var/cache/yum/x86_64/
129M	/var/cache/yum/x86_64/

yum管理软件组

yum 命令除了可以对软件包进行查询、安装、升级和卸载外,还可完成对软件包组的查询、安装和卸载操作。

yum查询软件组包含的软件

既然是软件包组,说明包含不只一个软件包,通过 yum 命令可以查询某软件包组中具体包含的软件包,命令格式如下:
[root@localhost ~]#yum groupinfo 软件组名
#查询软件组中包含的软件

[root@prometheus ~]# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Available Environment Groups:Minimal InstallCompute NodeInfrastructure ServerFile and Print ServerBasic Web ServerVirtualization HostServer with GUIGNOME DesktopKDE Plasma WorkspacesDevelopment and Creative Workstation
Available Groups:Compatibility LibrariesConsole Internet ToolsDevelopment ToolsGraphical Administration ToolsLegacy UNIX CompatibilityScientific SupportSecurity ToolsSmart Card SupportSystem Administration ToolsSystem Management
Done[root@prometheus ~]# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Available Environment Groups:Minimal InstallCompute NodeInfrastructure ServerFile and Print ServerBasic Web ServerVirtualization HostServer with GUIGNOME DesktopKDE Plasma WorkspacesDevelopment and Creative Workstation
Available Groups:Compatibility LibrariesConsole Internet ToolsDevelopment ToolsGraphical Administration ToolsLegacy UNIX CompatibilityScientific SupportSecurity ToolsSmart Card SupportSystem Administration ToolsSystem Management
Done

yum安装软件组

yum 软件包组管理命令更适合安装功能相对集中的软件包集合。例如,在初始安装 Linux 时没有安装图形界面,但后来发现需要图形界面的支持,这时可以手工安装图形界面软件组(X Window System 和 Desktop),就可以使用图形界面了。
使用 yum 安装软件包组的命令格式如下:
[root@localhost ~]#yum groupinstall 软件组名
#安装指定软件组,组名可以由grouplist查询出来
例如,安装 Web Server 软件包组可使用如下命令:
[root@node1 yum.repos.d]# yum groupinstall “Security Tools”
#安装安全工具相关软件组

[root@prometheus ~]# yum groupinstall "Security Tools"
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
Resolving Dependencies
--> Running transaction check
---> Package scap-security-guide.noarch 0:0.1.54-3.el7.centos will be installed
--> Processing Dependency: openscap-scanner >= 1.2.5 for package: scap-security-guide-0.1.54-3.el7.centos.noarch
--> Processing Dependency: xml-common for package: scap-security-guide-0.1.54-3.el7.centos.noarch
--> Running transaction check
---> Package openscap-scanner.x86_64 0:1.2.17-13.el7_9 will be installed
--> Processing Dependency: openscap(x86-64) = 1.2.17-13.el7_9 for package: openscap-scanner-1.2.17-13.el7_9.x86_64
--> Processing Dependency: libopenscap.so.8()(64bit) for package: openscap-scanner-1.2.17-13.el7_9.x86_64
---> Package xml-common.noarch 0:0.6.3-39.el7 will be installed
--> Running transaction check
---> Package openscap.x86_64 0:1.2.17-13.el7_9 will be installed
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================Package                       Arch             Version                        Repository         Size
=======================================================================================================
Installing for group install "Security Tools":scap-security-guide           noarch           0.1.54-3.el7.centos            updates           8.3 M
Installing for dependencies:openscap                      x86_64           1.2.17-13.el7_9                updates           3.9 Mopenscap-scanner              x86_64           1.2.17-13.el7_9                updates            63 kxml-common                    noarch           0.6.3-39.el7                   base               26 kTransaction Summary
=======================================================================================================
Install  1 Package (+3 Dependent packages)Total download size: 12 M
Installed size: 293 M
Is this ok [y/d/N]: y
Downloading packages:
(1/4): openscap-scanner-1.2.17-13.el7_9.x86_64.rpm                              |  63 kB  00:00:00     
(2/4): xml-common-0.6.3-39.el7.noarch.rpm                                       |  26 kB  00:00:00     
(3/4): scap-security-guide-0.1.54-3.el7.centos.noarch.rpm                       | 8.3 MB  00:00:01     
(4/4): openscap-1.2.17-13.el7_9.x86_64.rpm                                      | 3.9 MB  00:00:06     
-------------------------------------------------------------------------------------------------------
Total                                                                  1.9 MB/s |  12 MB  00:00:06     
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionInstalling : openscap-1.2.17-13.el7_9.x86_64                                                     1/4 Installing : openscap-scanner-1.2.17-13.el7_9.x86_64                                             2/4 Installing : xml-common-0.6.3-39.el7.noarch                                                      3/4 Installing : scap-security-guide-0.1.54-3.el7.centos.noarch                                      4/4 Verifying  : xml-common-0.6.3-39.el7.noarch                                                      1/4 Verifying  : openscap-scanner-1.2.17-13.el7_9.x86_64                                             2/4 Verifying  : scap-security-guide-0.1.54-3.el7.centos.noarch                                      3/4 Verifying  : openscap-1.2.17-13.el7_9.x86_64                                                     4/4 Installed:scap-security-guide.noarch 0:0.1.54-3.el7.centos                                                     Dependency Installed:openscap.x86_64 0:1.2.17-13.el7_9              openscap-scanner.x86_64 0:1.2.17-13.el7_9             xml-common.noarch 0:0.6.3-39.el7              Complete!

yum命令卸载软件组

yum 卸载软件包组的命令格式如下:
[root@localhost ~]# yum groupremove 软件组名
#卸载指定软件组

[root@prometheus ~]# yum groupremove "Security Tools"
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* elrepo: mirrors.neusoft.edu.cn* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
No environment named Security Tools exists
Resolving Dependencies
--> Running transaction check
---> Package scap-security-guide.noarch 0:0.1.54-3.el7.centos will be erased
--> Finished Dependency ResolutionDependencies Resolved=======================================================================================================Package                       Arch             Version                       Repository          Size
=======================================================================================================
Removing:scap-security-guide           noarch           0.1.54-3.el7.centos           @updates           231 MTransaction Summary
=======================================================================================================
Remove  1 PackageInstalled size: 231 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transactionErasing    : scap-security-guide-0.1.54-3.el7.centos.noarch                                      1/1 Verifying  : scap-security-guide-0.1.54-3.el7.centos.noarch                                      1/1 Removed:scap-security-guide.noarch 0:0.1.54-3.el7.centos                                                     Complete!

总结

本章详细讲解yum命令,通过大量案例来讲解yum常用的功能。

友情链接

MySQL性能优化_原理_实战

1、MySQL在金融互联网行业的企业级安装部署

目录章节
版本说明版本说明
安装MySQL规范1 安装方式
2 安装用户
3 目录规范
MySQL 5.7 安装部署1 操作系统配置
2 创建用户
3 创建目录
4 安装
5 配置文件
6 安装依赖包
7 配置环境变量
8 初始化数据库
9 重置密码
MySQL8 安装MySQL8 安装
源码安装1 安装依赖包
2 生成源码包
3 创建用户
4 编译安装
5 配置数据库
6 连接mysql
多实例部署及注意事项1 多实例概念
2 多实例安装
3 mysqld_multi(多实例第二种安装方式)

2、mysql启动关闭原理和实战_及常见错误排查

目录章节
生产中MySQL启动方式1、 启动原理
2、参数文件默认位置及优先级
3、 以server方式启动
4、 mysqld_safe方式
5、 mysqld 方式
6、 systemctl 方式
关库1、相关参数innodb_fast_shutdown
2、相关参数innodb_force_recovery
3、关闭mysql多种方式
常见MySQL启动失败案例1.、目录权限
2、参数问题
3、配置文件
4、端口占用
5、误删二进制文件
6、undo表空间异常
7、binlog缓冲异常
MySQL启动失败排查方法MySQL启动失败排查方法
连接MySQL数据库的方式连接MySQL数据库的方式
MySQL数据库用户安全策略1、初始化数据库
2、修改密码
3、删除无用的用户
4、mysql_secure_installation
找回丢失的用户密码找回丢失的用户密码

3、MySQL字符集和校对规则

目录章节
MySQL字符集和校验规则MySQL字符集和校验规则
查看字符集方法1、查看mysql支持的字符集
2、查看字符集的校对规则
3、查看当前数据库的字符集
4、查看当前数据库的校对规则
MySQL字符集设置1、字符集设置层级关系
2、设置MySQL服务器级别字符集
3、设置创建对象的字符集
字符集案例1、常用字符集每个汉字占用字节多少
2、大小案例
插入中文乱码解决插入中文乱码解决
数据库常见字符集及如何选择字符集数据库常见字符集及如何选择字符集
生产中如何彻底避免出现乱码生产中如何彻底避免出现乱码

4、史上最详细的Mysql用户权原理和实战_生产案例

目录章节
访问控制1、连接验证(阶段一)
2、允许的连接
3、连接优先级
4、请求验证(阶段二)
用户管理1、新增用户
2、修改用户
3、删除用户
4、查看用户
密码管理1、密码修改
2、密码过期设置
3、set password
4、密码过期策略
5、密码插件
MySQL用户权限管理1、权限粒度
2、显示账户权限
3、显示账户非权限属性
4、库级权限
5、表级权限
6、列级权限
7、权限回收
资源限制1、用户创建指定配额
2、修改配额
MySQL用户权限案例1、断掉已清理的用户
2、忘记密码
3、如何禁止一个ip段的某个用户登录
4、创建开发账号
5、创建复制账号
6、创建管理员账号

5、InnoDB引擎原理和实战_通俗易懂

目录章节
缓冲池1、默认引擎
2、设置缓冲池大小
3、优化缓冲池
4、管理缓冲池
5、数据页类型
线程1、IO线程
2、主线程
index pageindex page
insert buffer pageinsert buffer page
重做日志重做日志
回滚日志回滚日志
checkpoint,刷写脏页check pointcheckpoint
关键特性1、插入缓冲
2、数据写入可靠性提升技术-doublewrite
3、自适应哈希索引-AHI
innodb预读预写技术预读写

6、MySQL文件详解_物理结构_逻辑结构_原理和案例

目录章节
参数和配置文件1、文件位置
2、查找参数
3、参数类型
4、参数修改
5、示例一
6、示例二
7、注意事项
错误日志文件错误日志
通用日志通用日志
慢查询日志慢日志
binlog1、记录什么
2、用途
3、开启和参数配置
4、日志查看
5、日志刷新
6、删除日志
7、日志分析(mysqlbinlog)
8、利用二进制日志文件恢复误删的表
InnoDB存储引擎表空间文件表空间文件
主从同步相关文件主从同步文件
套接字文件套接字文件
pid 文件pid 文件
redo log1、redo初识
2、日志组
3、与oracle redo的区别
4、相关参数
5、和binlog的区别
6、redo 缓冲区(innodb_flush_log_at_trx_commit)
InnoDB存储引擎逻辑结构1、表空间
2、段
3、区
4、页
表碎片清理1、判断是否有碎片
2、整理碎片
表空间文件迁移1、需求
2、操作

7、SQL编程开发与优化事项

目录章节
常用语句1、导入数据
2、库操作
3、表操作
4、数据操作
5、use性能影响
6、delete、truncate、drop的区别
7、SQL语句分类
数据类型与性能1、整型
2、浮点型
3、字符串类型
4、日期类型
MySQL约束1、unsigned/signed
2、not null
3、count(*) 为什么慢
4、default
5、unique
6、 auto_increment
7、primary key
SQL编程高级1、查询Syntax
2、查询列
3、where子句
4、group by … having子句
5、order by子句
6、limit子句(分页)
7、聚合函数
8、合并查询
9、多表查询
10、子查询
表的元数据库管理1、统计应用库哪些表没有使用innodb存储引擎
2、如何查看表中是否有大对象
3、统计数据库大小
4、统计表的大小

8、MySQL索引原理和案例

目录章节
MySQL索引与二分查找法1、什么是索引
2、索引的优缺点
3、索引的最大长度
4、二分查找法:折半查找法
5、mysql一张表存多少数据后,索引性能就会下降?
剖析b+tree数据结构1、B和B+树的区别
2、索引树高度
3、非叶子节点
4、指针
5、叶子节点
6、双向指针
7、b+tree插入操作
8、b+tree删除操作
相辅相成的聚集索引和辅助索引1、聚集索引
2、聚集索引特点
3、聚集索引的优势
4、辅助索引
覆盖索引与回表查询1、回表查询
2、覆盖索引
创建高性能的主键索引1、主键索引创建的原则
2、主键索引的特点
3、为什么建议使用自增列作为主键
唯一索引与普通索引的性能差距1、唯一索引特点
2、普通索引特点
3、唯一索引与普通索引的性能差距
前缀索引带来的性能影响1、作用
2、坏处
如何使用联合索引1、什么是联合索引
2、创建原则
3、排序
Online DDL影响数据库的性能和并发1、5.6版本之前
2、新版本
3、online ddl语法
4、相关参数
5、示例
6、影响
pt-ocs原理与应用1、安装pt-osc
2、pt-osc语法
3、案例
4、pt-osc原理
生产中索引的管理1、建表时创建索引
2、建表后创建索引
3、查看索引
SQL语句无法使用索引的情况1、where条件
2、联合索引
3、联表查询
4、其他情况

9、information_schema和sys中性能查看

目录章节
最常用的STATISTICS和TABLES1、STATISTICS:用于存放索引的信息
2、TABLES:用于存放库表的元数据信息
判断索引创建是否合理1、选择性
2、索引创建的建议
检查联合索引创建是否合理1、联合索引创建是否合理
2、有了联合索引(a,b),还需要单独创建a索引吗?
如何查找冗余索引查找冗余索引
查找产生额外排序的sql语句额外排序的sql语句
查找产生临时表的sql语句临时表的sql语句
全表扫描的sql语句全表扫描的sql语句
统计无用的索引无用的索引
索引统计信息1、存储索引统计信息
2、如何查看索引统计信息

10、MySQL优化器算法与执行计划

目录章节
简单嵌套查询算法-simple nested-loop joinsimple nested-loop join
基于索引的嵌套查询算法-index nested-loop joinindex nested-loop join
基于块的嵌套查询算法- block nested-loop joinblock nested-loop join
Multi-Range ReadMRR
bached key access joinBKA
mysql三层体系结构体系结构
Index Condition Pushdown索引条件下推
一条查询SQL语句是怎样运行的查询SQL语句
一条更新SQL语句是怎样运行的更新SQL语句
MySQL长连接与短连接的选择1、相关参数
2、断开连接
执行计划explain1、语法
2、执行计划解析

11、MySQL查询优化

目录章节
MySQL查询优化技术概览
子查询优化1、优化器自动优化
2、优化措施:子查询合并
3、优化措施:子查询上拉技术
外连接消除外连接消除
生产环境不使用join联表查询不使用join
group by分组优化1、group by执行流程
2、为什么group by要创建临时表
order by排序优化排序优化
MySQL性能抖动问题性能抖动问题
count(*)优化count(*)优化
磁盘性能基准测试1、安装sysbench
2、生成文件
3、测试文件io
4、清除文件
MySQL基准测试1、生成数据
2、测试(读)
3、测试(写)
4、清理数据

12、事务原理和实战

目录章节
认识事务认识事务
事务控制语句1、开启事务
2、事务提交
3、事务回滚
事务的实现方式1、原子性
2、一致性
3、隔离性
4、持久性
purge thread线程purge thread线程
事务统计QPS与TPS1、QPS
2、TPS
事务隔离级别1、隔离级别
2、查看隔离级别
3、设置隔离级别
4、不同隔离级别下会产生什么隔离效果
事务组提交group commit组提交
事务两阶段提交两阶段提交
MVCC多版本并发控制1、MVCC原理
2、MVCC案例

13、锁的原理和应用

目录章节
认识锁1、锁的作用
2、加锁的过程
3、锁对象:事务
innodb行锁1、行锁类型
2、共享锁(S锁)
3、排他锁(X锁)
索引对行锁粒度的影响1、行锁粒度有哪些
2、在RC隔离级别下不同索引产生的锁的范围
3、RR隔离级别下不同索引产生锁的范围
FTWRL全局读锁FTWRL全局读锁
innodb表锁innodb表锁
innodb意向锁与MDL锁1、意向锁
2、意向锁作用
3、意向锁冲突情况
4、MDL锁
自增锁自增锁
插入意向锁插入意向锁
死锁1、什么是死锁
2、相关参数
3、避免死锁
4、锁的状态
两阶段锁协议两阶段锁协议

14、慢查询原理和实战_快速优化方法_优化工具

目录章节
1. 系统状态show status
2. 慢查询2.1 慢查询开启
2.2 简单示例
2.3 数据准备
3. mysqldumpslow3.1 语法
3.2 常见用法
4. pt-query-digest4.1 安装
4.2 语法选项
4.3 报告解读
4.4 用法示例
5. 优化工具(soar)5.1 安装配置
5.2 添加数据库
5.3 语句优化

15、备份恢复原理和实战_逻辑备份_物理备份_金融行业备份还原脚本

目录章节
1.生产中备份方式1.1 物理备份与逻辑备份
1.2 联机与脱机备份
1.3 完整备份与增量备份
1.4 常用命令
2.mysqldump备份2.1 相关参数
2.2 备份所有数据库
2.3 备份指定数据库
2.4 备份指定表
2.6 只导出结构
2.7 只导出数据
2.8 --tab(生成文本,类似load)
2.8 mysqldump原理
2.9 binlog异步备份
2.10 利用mysqldump全备及binlog恢复数据
3.xtrabackup3.1 Xtrabackup安装
3.2 原理
3.2 备份过程
3.4 恢复原理
3.3 相关参数
3.4 xtrabackup相关文件
3.5 备份示例
3.6 还原示例
4.binlog备份和恢复(数据库恢复)4.1 找到恢复时间点
4.2 增量恢复
5. 生产环境的备份恢复实战5.1 实施部署
5.1.1 环境清单
5.1.2 备份目的
5.1.3 备份说明
5.1.4 实施步骤
5.1.5 全备脚本
5.1.6 差异备份脚本
5.2 实施部署备份还原
5.2.1 Xtraback还原全量/差异备份
5.2.2 故障点数据恢复
5.2.3 增量恢复

16、主从复制,gtid,并行复制_半同步复制_实操案例_常用命令_故障处理

目录章节
1.认识主从复制1.1 主从复制原理深入讲解
1.2 主从复制相关参数
1.3.主从复制架构部署
1.4从库状态详解
1.5 .过滤复制
2 .gtid复制2.1 什么是GTID?
2.2 GTID主从配置
2.5 gtid维护
2.4 GTID的特点
2.3 工作原理
2.4 gtid相关状态行和变量
3. 并行复制3.1 延迟的原因
3.2 并行复制设置
3.3 查看并行复制
4. 增强半同步复制4.1 异步复制
4.2 半同步复制
4.3 增强半同步复制
4.4 配置增强半同步
5. 案例5.1 主库删除操作导致sql线程关闭案例
5.2 主从复制中断解决方案及案例
5.3 延迟复制
5.4 主库drop误操作利用延迟复制恢复案例
6 常用命令6.1 启动线程
6.2 关闭线程
6.3 查看
6.4 重置
6.5 主从数据一致性校验

17、MySQL高可用和读写分离架构
MHA

目录章节
MHA介绍
架构和相关组件架构和相关组件
工作流程工作流程
MHA高可用架构部署1、环境准备
2、软件安装
3、创建软链接
4、配置各节点互信
5、节点免密验证
6、mha管理用户
7、配置文件
8、状态检查
9、开启MHA
主库宕机故障模拟及处理主库宕机故障模拟及处理
MHA VIP自动切换VIP自动切换
MHA主从数据自动补足MHA主从数据自动补足

Atlas

目录章节
Atlas读写分离高性能架构介绍
安装配置安装配置
配置注解配置注解
启动和关闭启动和关闭
读写分离架构应用读写分离架构应用
创建应用用户创建应用用户
Atlas在线管理Atlas在线管理
读写分离避坑指南读写分离避坑指南

18、MySQL分库分表_原理实战

目录章节
1.MyCAT分布式架构入门及双主架构1.1 主从架构
1.2 MyCAT安装
1.3 启动和连接
1.4 配置文件介绍
2.MyCAT读写分离架构2.1 架构说明
2.2 创建用户
2.3 schema.xml
2.4 连接说明
2.5 读写测试
2.6 当前是单节点
3.MyCAT高可用读写分离架构3.1 架构说明
3.3 schema.xml(配置)
3.4 文件详解
3.4.1 schema标签
3.4.2 table标签
3.4.3 dataNode标签
3.4.4 dataHost
3.4 读写测试
3.5 故障转移
4.MyCAT垂直分表4.1 架构
4.2 新建表
4.3 配置mycat
4.4 验证
5 MyCAT水平分表-范围分片5.1 新建表
5.2 schema.xml
5.2 rule.xml
5.3 autopartition-long.txt
5.4 验证
6. MyCAT水平分表-取模分片取模分片
7. MyCAT水平分表-枚举分片枚举分片
8. MyCAT全局表与ER表全局与ER表
8.1 全局表8.1.1 特性
8.1.2 建表
8.1.3 配置
8.1.4 验证
8.1.5 分析总结(执行计划)
8.2 ER表8.2.1 特性
8.2.2 建表
8.2.3 配置
8.2.4 测试验证,子表是否跟随父表记录分片
8.2.5 分析总结(执行计划)

19、基准性能测试_sysbench

目录章节
1. sysbench1.1 用途
1.2 安装
1.3 版本
1.4 查看帮助
1.5 测试过程阶段
2 CPU 性能测试2.1 测试原理
2.2 查看帮助
2.3 测试
3. 内存性能测试3.1 查看帮助信息
3.2 测试过程
4.磁盘性能基准测试4.1 查看帮助
4.2 生成文件(prepare)
4.3 测试文件io(run)
4.4 结果分析
4.5 清除文件(cleanup)
5. 线程测试5.1 查看帮助信息
5.2 测试过程
6. MySQL基准测试6.1 语法参数
6.2 生成数据
6.3 测试(读)
6.4 测试(写)
6.5 清理数据

本文标签: 14Yum详解 yum安装 查找 info 反向查找