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 | 容器说明,可以随便填写。 |
mirrorlist | yum 源服务器的地址列表,里面可以有多个服务器地址。可指定变量例如 a r c h , arch, arch,cpu b a s e a r c h , basearch, basearch,cpu等 |
baseurl | yum 源服务器的地址。 这个地址可以是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、生成软件清单
- 安装createrepo命令
rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
- 针对当前目录的软件包,生成软件清单,使用 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
- 更新软件清单
如果删除或添加了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
- 配置本地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目录中已经生成了软件清单,这个步骤就可以省略。
- 挂载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目录下
- 新建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
- 验证
[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源 可以直接在官网下载进行配置,非常方便
- 删除现有的repo文件
[root@zaishu yum.repos.d]# rm -rf *.repo
[root@zaishu yum.repos.d]# ls
- 下载阿里云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
- 查看
[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=
- 验证
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 | 在事务中尝试最佳软件包版本。 |
–nobest | do 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 | 禁用删除不再被使用的依赖软件包 |
–nogpgcheck | disable 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这包为例,当不指定位置的时候,它会放到默认位置,并且它会将它依赖的所有包一并下载
- 下载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
- 查找位置
下载成功后,它下载的包可以通过 /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
- 指定下载目录
通过 --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 page | index page |
insert buffer page | insert buffer page |
重做日志 | 重做日志 |
回滚日志 | 回滚日志 |
checkpoint,刷写脏页check point | checkpoint |
关键特性 | 1、插入缓冲 2、数据写入可靠性提升技术-doublewrite 3、自适应哈希索引-AHI |
innodb预读预写技术 | 预读写 |
6、MySQL文件详解_物理结构_逻辑结构_原理和案例
目录 | 章节 |
---|---|
参数和配置文件 | 1、文件位置 2、查找参数 3、参数类型 4、参数修改 5、示例一 6、示例二 7、注意事项 |
错误日志文件 | 错误日志 |
通用日志 | 通用日志 |
慢查询日志 | 慢日志 |
binlog | 1、记录什么 2、用途 3、开启和参数配置 4、日志查看 5、日志刷新 6、删除日志 7、日志分析(mysqlbinlog) 8、利用二进制日志文件恢复误删的表 |
InnoDB存储引擎表空间文件 | 表空间文件 |
主从同步相关文件 | 主从同步文件 |
套接字文件 | 套接字文件 |
pid 文件 | pid 文件 |
redo log | 1、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和TABLES | 1、STATISTICS:用于存放索引的信息 2、TABLES:用于存放库表的元数据信息 |
判断索引创建是否合理 | 1、选择性 2、索引创建的建议 |
检查联合索引创建是否合理 | 1、联合索引创建是否合理 2、有了联合索引(a,b),还需要单独创建a索引吗? |
如何查找冗余索引 | 查找冗余索引 |
查找产生额外排序的sql语句 | 额外排序的sql语句 |
查找产生临时表的sql语句 | 临时表的sql语句 |
全表扫描的sql语句 | 全表扫描的sql语句 |
统计无用的索引 | 无用的索引 |
索引统计信息 | 1、存储索引统计信息 2、如何查看索引统计信息 |
10、MySQL优化器算法与执行计划
目录 | 章节 |
---|---|
简单嵌套查询算法-simple nested-loop join | simple nested-loop join |
基于索引的嵌套查询算法-index nested-loop join | index nested-loop join |
基于块的嵌套查询算法- block nested-loop join | block nested-loop join |
Multi-Range Read | MRR |
bached key access join | BKA |
mysql三层体系结构 | 体系结构 |
Index Condition Pushdown | 索引条件下推 |
一条查询SQL语句是怎样运行的 | 查询SQL语句 |
一条更新SQL语句是怎样运行的 | 更新SQL语句 |
MySQL长连接与短连接的选择 | 1、相关参数 2、断开连接 |
执行计划explain | 1、语法 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与TPS | 1、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. mysqldumpslow | 3.1 语法 3.2 常见用法 |
4. pt-query-digest | 4.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.xtrabackup | 3.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. sysbench | 1.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 反向查找
版权声明:本文标题:14.Yum详解,yum安装,查找,info,反向查找,组,依赖,缓存等所有操作 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1687349660h92504.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论