小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
linux极简小知识:11、YUM软件包工具详细介绍及主要yum命令详解
什么是YUM?
YUM(Yellowdog Updater Modified)是一个开源命令行以及基于图形的包管理工具,适用于基于 RPM(RedHat 包管理器)的 Linux 系统。它允许用户和系统管理员轻松地在系统上安装、更新、删除或搜索软件包。
它由 Seth Vidal 在 GPL(通用公共许可证)下开源开发和发布,这意味着任何人都可以下载和访问代码以修复错误和开发定制包。
YUM 使用许多第三方存储库,通过解决相互间的依赖关系问题来自动安装包。
YUM (Yellowdog Updater Modified) is an open source command-line as well as graphical based package management tool for RPM (RedHat Package Manager) based Linux systems. It allows users and system administrator to easily install, update, remove or search software packages on a systems. It was developed and released by Seth Vidal under GPL (General Public License) as an open source, means anyone can allowed to download and access the code to fix bugs and develop customized packages. YUM uses numerous third party repositories to install packages automatically by resolving their dependencies issues.
yum是一个在 Fedora 和 RedHat 以及 SUSE 中的 Shell 前端软件包管理器。
yum 基于 RPM 包管理,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。并且,提供了查找、安装、删除某一个、一组甚至全部软件包的命令。
它可以看做是对RPM的改进,用于解决PRM的软件包依赖问题。yum 在服务器端存有所有的 RPM 包,并将各个包之间的依赖关系记录在文件中,当管理员使用 yum 安装 RPM 包时,yum 会先从服务器端下载包的依赖性文件,通过分析此文件从服务器端一次性下载所有相关的 RPM 包并进行安装(或升级)。
yum 语法和常用命令
语法
yum [options] [command] [package ...]
- options:可选,选项包括-h(帮助),-y(当安装过程提示选择全部为 "yes"),-q(不显示安装的过程)等等。
- command:要进行的操作。
- package:安装的包名。
常用命令
比如以下几个命令:
-
yum check-update:列出所有可更新的软件清单 -
yum update:更新所有软件 -
yum install <package_name>:安装指定的软件,通常结合-y一起使用(即yes,直接同意安装,不会再询问是否安装)。yum install <package_name1> <package_name2>安装多个包时用空格分开。 -
yum localinstall <package_name.rpm>:安装某个具体的rpm后缀的软件,通常结合-y一起使用 -
yum update <package_name>:更新指定的软件 -
yum list:列出所有可安裝的软件清单 -
yum list updates:列出所有可更新的软件包 -
yum list installed:列出所有已安装的软件包 -
yum list available:查看所有可用的软件包 -
yum list all:等同yum list,列出所有的包,已安装的和可用的。 -
yum list extras:列出所有已安装但不在 Yum Repository 内的软件包。此处extras和后面列出的repo文件中的[extras]没有任何关系 -
yum search <keyword>:【默认】查找包含指定名称和摘要的软件包 -
yum info <package_name>:获取软件包的信息 -
yum info:列出所有软件包的信息 -
yum info updates:列出所有可更新的软件包信息 -
yum info installed:列出所有已安装的软件包信息 -
yum info extras:列出所有已安装但不在 Yum Repository 内的软件包信息 -
yum remove <package_name>:删除软件包命令 -
yum deplist <package_name>:查看程序包依赖情况 -
清除缓存命令:
yum clean packages: 清除缓存目录下的软件包 yum clean headers: 清除缓存目录下的 headers yum clean oldheaders: 清除缓存目录下旧的 headers yum clean, yum clean all (= yum clean packages; yum clean oldheaders) :清除缓存目录下的软件包及旧的 headers
yum provides <file>:查看某个库或文件包含在哪个安装包(软件包)中
比如,在linux中安装软件时,提示某个库缺失,或文件缺失,可以使用
yum provides xxx查看该库文件由哪个软件包提供,即该库文件包含在哪个软件包或安装包中。比如,查看哪个包提供
libstdc++.so.6库。yum provides libstdc++.so.6
yum repolist:查看yum仓库列表。
查看当前包含的yum仓库:
# yum repolist Loaded plugins: fastestmirror, langpacks Loading mirror speeds from cached hostfile repo id repo name status CityFan/7/x86_64 City Fan Repo 766 epel/7/x86_64 EPEL for redhat/centos 7 - x86_64 13,674 extras/7/x86_64 Qcloud centos extras - x86_64 500 google-chrome google-chrome 3 mariadb MariaDB 100 mariadb5 MariaDB 40 mysql-connectors-community/x86_64 MySQL Connectors Community 212 mysql-tools-community/x86_64 MySQL Tools Community 132 mysql80-community/x86_64 MySQL 8.0 Community Server 283 os/7/x86_64 Qcloud centos os - x86_64 10,072 packages-microsoft-com-prod packages-microsoft-com-prod 993 updates/7/x86_64 Qcloud centos updates - x86_64 2,751 repolist: 29,526
选项和命令比较详细的介绍
-
以下是主要的几个选项及说明
-h, --help 显示此帮助消息并退出 -t, --tolerant 忽略错误 -C, --cacheonly 完全从系统缓存运行,不升级缓存 -c [config file], --config=[config file] 配置文件路径 -R [minutes], --randomwait=[minutes] 命令最长等待时间 -d [debug level], --debuglevel=[debug level] 调试输出级别 --showduplicates 在 list/search 命令下,显示源里重复的条目 -e [error level], --errorlevel=[error level] 错误输出级别 --rpmverbosity=[debug level name] RPM 调试输出级别 -q, --quiet 静默执行 -v, --verbose 详尽的操作过程 -y, --assumeyes 回答全部问题为是 --assumeno 回答全部问题为否 --version 显示 Yum 版本然后退出 --installroot=[path] 设置安装根目录 --enablerepo=[repo] 启用一个或多个软件源(支持通配符) --disablerepo=[repo] 禁用一个或多个软件源(支持通配符) -x [package], --exclude=[package] 采用全名或通配符排除软件包 --disableexcludes=[repo] 禁止从主配置,从源或者从任何位置排除 --disableincludes=[repo] disable includepkgs for a repo or for everything --obsoletes 更新时处理软件包取代关系 --noplugins 禁用 Yum 插件 --nogpgcheck 禁用 GPG 签名检查 --disableplugin=[plugin] 禁用指定名称的插件 --enableplugin=[plugin] 启用指定名称的插件 --skip-broken 忽略存在依赖关系问题的软件包 --color=COLOR 配置是否使用颜色 --releasever=RELEASEVER 在 yum 配置和 repo 文件里设置 $releasever 的值 --downloadonly 仅下载而不更新 --downloaddir=DLDIR 指定一个其他文件夹用于保存软件包 --setopt=SETOPTS 设置任意配置和源选项 --bugfix Include bugfix relevant packages, in updates --security Include security relevant packages, in updates --advisory=ADVS, --advisories=ADVS Include packages needed to fix the given advisory, in updates --bzs=BZS Include packages needed to fix the given BZ, in updates --cves=CVES Include packages needed to fix the given CVE, in updates --sec-severity=SEVS, --secseverity=SEVS Include security relevant packages matching the severity, in updates -
命令及说明
check 检查 RPM 数据库问题 check-update 检查是否有可用的软件包更新 clean 删除缓存数据 deplist 列出软件包的依赖关系 distribution-synchronization 已同步软件包到最新可用版本 downgrade 降级软件包 erase 从系统中移除一个或多个软件包 fs Acts on the filesystem data of the host, mainly for removing docs/lanuages for minimal hosts. fssnapshot Creates filesystem snapshots, or lists/deletes current snapshots. groups 显示或使用、组信息 help 显示用法提示 history 显示或使用事务历史 info 显示关于软件包或组的详细信息 install 向系统中安装一个或多个软件包 langavailable Check available languages langinfo List languages information langinstall Install appropriate language packs for a language langlist List installed languages langremove Remove installed language packs for a language list 列出一个或一组软件包 load-transaction 从文件名中加载一个已存事务 makecache 创建元数据缓存 provides 查找提供指定内容的软件包 reinstall 覆盖安装软件包 repo-pkgs 将一个源当作一个软件包组,这样我们就可以一次性安装/移除全部软件包。 repolist 显示已配置的源 search 在软件包详细信息中搜索指定字符串 shell 运行交互式的 yum shell swap Simple way to swap packages, instead of using shell update 更新系统中的一个或多个软件包 update-minimal Works like upgrade, but goes to the 'newest' package match which fixes a problem that affects your system updateinfo Acts on repository update information upgrade 更新软件包同时考虑软件包取代关系 version 显示机器和/或可用的源版本。
查看yum是否安装
yum也是一个软件,因此在使用之前,可以先确认是否已经安装。
# rpm -qa | grep yum
yum-langpacks-0.4.2-7.el7.noarch
yum-3.4.3-150.el7.centos.noarch
yum-utils-1.1.31-40.el7.noarch
yum-metadata-parser-1.1.4-10.el7.x86_64
PackageKit-yum-1.1.10-1.el7.centos.x86_64
yum-plugin-fastestmirror-1.1.31-40.el7.noarch
可以看到yum已经安装。
对于使用rpm命令安装yum,推荐查看Linux怎么安装yum
yum源
从介绍中可以了解到,yum会从一个位置下载RPM及相关依赖。也就是,使用yum安装软件,必须指定一个下载RPM包的位置,yum会从这个位置查找并下载安装软件包,这个位置就称为yum源。
yum 源指的就是软件安装包的来源。
这就是在安装软件时,通常都是先安装或配置yum源或镜像源,然后再下载的原因。因为必须指定有该软件包的源,在安装时才能从yum源中查找到并下载安装。
yum源可以是网络yum源,也可以是本地地址的yum源。
默认yum安装的软件包仓库使用的国外的仓库源地址,这导致有时下载在安装会很慢,极容易中断和安装失败等。因此通常都是使用国内的yum仓库镜像源,推荐的yum源有163、Tsinghua、aliyun、tencent、中科大等。
后面会单独介绍如何正确、详细地配置yum国内镜像源。
yum源配置文件(repo文件)
yum源配置文件位于 /etc/yum.repos.d/ 目录下,文件扩展名为“.repo”就是yum源的配置文件。
# ls /etc/yum.repos.d/
CentOS-Base.repo google-chrome.repo microsoft-prod.repo
CentOS-Epel.repo MariaDB5.4.repo mysql-community.repo
city-fan.repo MariaDB.repo mysql-community-source.repo
CentOS-Base.repo文件是基础yum源文件,最基本的软件都会从此处下载,当需要安装其他软件时,可以通过新建.repo仓库源配置文件,指定安装软件的yum网络源地址,在安装时就可以从此处查找并下载安装。
从CentOS-Base.repo可以查看,yum源配置文件的结构:
# cat CentOS-Base.repo
[extras]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/extras/$basearch/
name=Qcloud centos extras - $basearch
[os]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/os/$basearch/
name=Qcloud centos os - $basearch
[updates]
gpgcheck=1
gpgkey=http://mirrors.tencentyun.com/centos/RPM-GPG-KEY-CentOS-7
enabled=1
baseurl=http://mirrors.tencentyun.com/centos/$releasever/updates/$basearch/
name=Qcloud centos updates - $basearch
repo文件是yum源(软件仓库)的配置文件,通常一个repo文件定义了一个或者多个软件仓库的细节内容,如将从哪里下载需要安装或者升级的软件包,repo文件中的设置内容将被yum读取和应用。
repo文件内容介绍(常用属性详解)
-
[serverid]:serverid是用于区别各个不同的repository,必须有一个独一无二的名称。可以看做软件源的名称,会被yum读取和识别。放在方括号中。 -
name=Some name for this server:是对repository的描述,方便阅读配置文件,支持像$releasever、$basearch这样的变量; -
mirrorlist=url://:mirrorlist指定了一个URL地址,该地址是一个包含有众多源镜像地址的列表,当用户通过yum安装或升级软件时,yum会试图依次从列表中所示的镜像源中进行下载,如果从一个镜像源下载失败,则会自动尝试列表中的下一个。若列表遍历完成依然没有成功下载到目标软件包,则向用户抛错。 -
baseurl=url://:baseurl是yum源设置中最重要的部分,只有设置正确,才能从上面获取软件,指向的是软件仓库服务器。其中url支持的协议有 http:// ftp:// file:// 三种。其中url指向的目录必须是这个 repository header 目录的上一级,同样支持$releasever$basearch这样的变量。 -
gpgcheck=[1 or 0]:gpgchkeck= 有1和0两个选择,分别代表是否是否进行gpg校验,如果没有这一项,默认是检查的。 -
gpgkey=url://:gpgkey则用来指明KEY文件的地址,同样支持“http、ftp和file”三种协议。 -
exclude=:exclude指明将哪些软件排除在安装或升级名单之外,可以用通配符,列表中各个项目需用空格隔开。 -
failovermethod=priority:failovermethode在yum有多个源可供选择时,决定其选择的顺序。该属性有两个选项:roundrobin和priority。roundrobin是随机选择,如果连接失败,则使用下一个,依次循环。priority则根据url的次序从第一个开始,如果不指明,默认是roundrobin。 -
enabled=[1 or 0]:当某个软件仓库被配置成 enabled=0 时,yum 在安装或升级软件包时不会将该仓库做为软件包提供源。使用这个选项,可以启用或禁用软件仓库。
$releasever变量表示发行版本,通常是8,9,10等数字。发行版的版本,从[main]部分的distroverpkg获取,如果没有,则根据redhat-release包进行判断。
$basearch变量表示系统的基本体系架构组,可以是i386、x86_64、ppc等值。如i686和athlon同属i386,alpha和alphaev6同属alpha。
$archcpu体系架构,如i386、x86_64等。这些yum变量根据当前系统的版本架构不同而有不同的取值,这可以方便yum升级的时候选择适合当前系统的软件包
GnuPG(简称GPG),是目前最流行、最好用的加密工具之一。
GNU Privacy Guard。
yum 解决依赖的原理
YUM 可以解决依赖关系问题,自动下载软件包。
yum是基于C/S架构。C指的是客户端,S指的是服务器,如ftp,http,file等协议。
关于yum为什么能解决依赖关系:所有的 Yum 源里面都有repodata,它是XML格式文件,里面有说明需要什么依赖包。(repodata目录,存放软件之间的依赖关系)
比如安装 mysql-community-server 需要mysql-community-client、mysql-community-common、mysql-community-libs等依赖包。
关于yum group组相关命令
yum组相关命令可以将一个组下的所有必须软件一次性安装好。对于想要实现或安装某种服务的情况很有帮助,省去了一个一个安装的麻烦。
比如,如果想在RHEL/CentOS系统上安装“development libraries”开发库,可能需要通过安装下面几个命令:
# yum install gcc
# yum install glibc
# yum install make
或者
# yum install gcc glibc make
而且还有可能出现漏安、少安的情况。
而,借助yum groupinstall可以通过一个命令安装所有需要的软件包,为一个特殊任务安装一组包。
yum grouplist 可以列出所有可用的组,或 yum grouplist | more 分页查看。
yum grouplist对组进行了分类,如下图所示:
查看开发相关的组,yum grouplist | grep Development:
# yum grouplist | grep Development -i
Development and Creative Workstation
Development tools
yum groupinfo用于查看某个组的详细信息。
查看Development tools组的信息:
# yum groupinfo Development tools
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Group: Development tools
Group-Id: development
Description: A basic development environment.
Mandatory Packages:
+autoconf
......
+rpm-build
+rpm-sign
Default Packages:
+byacc
......
+swig
+systemtap
Optional Packages:
ElectricFence
...
trac-webadmin
translate-toolkit
Warning: group/environment tools does not exist.
使用组安装所有开发库:
yum groupinstall "Development Tools"
推荐用引号包含。
比如,想要安装email服务器,也可以使用组安装E-mail Server:
yum groupinstall "E-mail server"
再比如:yum groupinstall "Security Tools"安装安全工具。
yum支持的组命令有:
- yum grouplist
- yum groupinfo
- yum groupinstall
- yum groupremove
- yum groupupdate
配置本地yum源
yum软件仓库源还可以指定为一个本地iso光盘文件或映像文件。可以在无法联网的情况下访问安装。
Linux 系统安装映像文件(iso文件)中就含有常用的 RPM 包,使用压缩文件打开系统安装映像文件,在 Packages 子目录中,可以看到几乎所有常用的RPM包。【CentOS的完整版iso文件】
下面就介绍,如何使用系统安装映像作为本地 yum 源。
在 /etc/yum.repos.d/ 目录下新建 CentOS-Media.repo 文件(有的系统可能默认就存在CentOS-Media.repo),
- 放入 CentOS 安装光盘,并挂载光盘到指定位置。
# mkdir /mnt/cdrom
#创建cdrom目录,作为光盘的挂载点
# mount /dev/cdrom /mnt/cdrom/
mount: block device/dev/srO is write-protected, mounting read-only
#挂载光盘到/mnt/cdrom目录下
- 修改光盘 yum 源配置文件 CentOS-Media.repo
# vim CentOS-Media.repo
[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///mnt/cdrom
#地址为你自己的光盘挂载地址
#file:///media/cdrom/
#file:///media/cdrecorder/
#注释这两个的不存在地址
gpgcheck=1
enabled=1
#把enabled=0改为enabled=1, 让这个yum源配置文件生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
-
禁用其他网络repo文件(或者直接修改其他repo文件的后缀扩展名就行,yum只识别.repo为仓库源配置文件)
-
重新加载yum,在修改或添加repo软件源配置文件后,推荐进行清理和重建缓存【不是必须】
yum clean all
yum makecache
直接安装/自动配置yum源.repo文件【最常见】
还有一种简便的方式来配置yum源配置文件(即.repo文件)。那就是,通过安装软件包,该软件会自动创建所需软件的正确的.repo文件。
这是最常用的方式。比如安装MySQL时的mysql源软件包mysql80-community-release-el7-3.noarch.rpm、epel源软件包epel-release-latest-7.noarch.rpm。
或者,国内镜像源中,直接下载的配置好的.repo文件。
以下载配置epel源的软件包为例
这是直接通过安装配置yum源的软件包的示例,实现.repo文件的自动配置。
- 下载epel源软件包
# wget -c -P /tmp https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
--2021-10-05 11:11:27-- https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 125.39.43.248, 125.36.180.238, 125.39.43.236, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|125.39.43.248|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15608 (15K) [application/x-redhat-package-manager]
Saving to: ‘/tmp/epel-release-latest-7.noarch.rpm’
100%[======================================>] 15,608 --.-K/s in 0s
2021-10-05 11:11:27 (218 MB/s) - ‘/tmp/epel-release-latest-7.noarch.rpm’ saved [15608/15608]
- 安装软件包
# rpm -ivh /tmp/epel-release-latest-7.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:epel-release-7-14 ################################# [100%]
- 检查配置文件
# ls /etc/yum.repos.d/epel*
/etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo
关于yum list和yum list installed命令
这两个软件用于列出yum仓库包含的所有软件包、列出已安装的所有软件包。
指定包全名
yum不支持通配符,但是可以在yum list和yum list installed命令后,指定包全名查看,此时,对于已安装的包,两者命令是相同的:
# yum list installed mysql-community-server-8.0.26-1.el7.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
mysql-community-server.x86_64 8.0.26-1.el7 @mysql80-community
# yum list mysql-community-server-8.0.26-1.el7.x86_64
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
mysql-community-server.x86_64 8.0.26-1.el7 @mysql80-community
yum list、yum list installed列出所有可安装和已安装的软件包
-
yum list—— 列出所有可安装的软件包,包括已安装和未安装的。 -
yum list installed—— 列出所有已安装的软件包。
直接执行这两个命令即可。
结合grep命令
# yum list installed | grep mysql
mysql-community-client.x86_64 8.0.26-1.el7 @mysql80-community
mysql-community-client-plugins.x86_64 8.0.26-1.el7 @mysql80-community
mysql-community-common.x86_64 8.0.26-1.el7 @mysql80-community
mysql-community-libs.x86_64 8.0.26-1.el7 @mysql80-community
mysql-community-server.x86_64 8.0.26-1.el7 @mysql80-community
mysql80-community-release.noarch el7-3 installed
如下,可以看到,yum list | grep mysql包含yum list installed | grep mysql的已安装的软件包:
yum list keyword*使用通配符
列出以 pam 开头的软件名称:
# yum list pam*
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
pam.i686 1.1.8-22.el7 @os
pam.x86_64 1.1.8-22.el7 @os
Available Packages
pam.i686 1.1.8-23.el7 os
pam.x86_64 1.1.8-23.el7 os
pam-devel.i686 1.1.8-23.el7 os
pam-devel.x86_64 1.1.8-23.el7 os
pam-kwallet.x86_64 5.5.2-1.el7 epel
pam_2fa.x86_64 1.0-1.el7 epel
pam_afs_session.x86_64 2.6-5.el7 epel
pam_krb5.i686 2.4.8-6.el7 os
pam_krb5.x86_64 2.4.8-6.el7 os
pam_mapi.x86_64 0.3.5-1.el7 epel
pam_mount.x86_64 2.16-5.el7 epel
pam_oath.x86_64 2.6.2-1.el7 epel
pam_pkcs11.i686 0.6.2-30.el7 os
pam_pkcs11.x86_64 0.6.2-30.el7 os
pam_radius.x86_64 1.4.0-4.el7 epel
pam_script.x86_64 1.1.8-1.el7 epel
pam_snapper.i686 0.2.8-4.el7 os
pam_snapper.x86_64 0.2.8-4.el7 os
pam_ssh.x86_64 2.3-2.el7 epel
pam_ssh_agent_auth.i686 0.10.3-2.21.el7 os
pam_ssh_agent_auth.x86_64 0.10.3-2.21.el7 os
pam_ssh_user_auth.x86_64 1.0-1.el7 epel
pam_url.x86_64 1:0.3.3-4.el7 epel
pam_wrapper.x86_64 1.1.3-1.el7 epel
pam_yubico.x86_64 2.26-1.el7 epel
pamtester.x86_64 0.1.2-4.el7 epel
#
结合more、less命令
yum list 和 yum list installed 显示的内容都太长了,可以通过管道传递给“more”或“less”命令,然后分页查看。
yum list installed | more
yum list installed | less
安装和卸载
安装一个包的示例
安装 pam-devel:yum install pam-devel
# yum install pam-devel
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package pam-devel.x86_64 0:1.1.8-23.el7 will be installed
--> Processing Dependency: pam(x86-64) = 1.1.8-23.el7 for package: pam-devel-1.1.8-23.el7.x86_64
--> Running transaction check
---> Package pam.i686 0:1.1.8-22.el7 will be updated
---> Package pam.x86_64 0:1.1.8-22.el7 will be updated
---> Package pam.i686 0:1.1.8-23.el7 will be an update
---> Package pam.x86_64 0:1.1.8-23.el7 will be an update
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================
Package Arch Version Repository Size
===========================================================================
Installing:
pam-devel x86_64 1.1.8-23.el7 os 185 k
Updating for dependencies:
pam i686 1.1.8-23.el7 os 720 k
pam x86_64 1.1.8-23.el7 os 721 k
Transaction Summary
===========================================================================
Install 1 Package
Upgrade ( 2 Dependent packages)
Total download size: 1.6 M
Is this ok [y/d/N]: y
Downloading packages:
No Presto metadata available for os
(1/3): pam-1.1.8-23.el7.i686.rpm | 720 kB 00:00
(2/3): pam-1.1.8-23.el7.x86_64.rpm | 721 kB 00:00
(3/3): pam-devel-1.1.8-23.el7.x86_64.rpm | 185 kB 00:00
---------------------------------------------------------------------------
Total 1.8 MB/s | 1.6 MB 00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Updating : pam-1.1.8-23.el7.x86_64 1/5
Installing : pam-devel-1.1.8-23.el7.x86_64 2/5
Updating : pam-1.1.8-23.el7.i686 3/5
Cleanup : pam-1.1.8-22.el7 4/5
Cleanup : pam-1.1.8-22.el7 5/5
Verifying : pam-1.1.8-23.el7.i686 1/5
Verifying : pam-1.1.8-23.el7.x86_64 2/5
Verifying : pam-devel-1.1.8-23.el7.x86_64 3/5
Verifying : pam-1.1.8-22.el7.i686 4/5
Verifying : pam-1.1.8-22.el7.x86_64 5/5
Installed:
pam-devel.x86_64 0:1.1.8-23.el7
Dependency Updated:
pam.i686 0:1.1.8-23.el7 pam.x86_64 0:1.1.8-23.el7
Complete!
#
整个安装过程可以看到:
Resolving Dependencies:开始解决依赖;Dependencies Resolved:依赖解决完;Transaction Summary:安装的事务摘要;Install 1 Package Upgrade ( 2 Dependent packages):安装一个包,更新两个依赖;最后是安装的包和更新的依赖包,以及 Complete! 完成。
卸载包的示例
yum remove不会移除在安装包时一起安装的依赖包!
下面是卸载 pam-devel:yum remove pam-devel
# yum remove pam-devel
Loaded plugins: fastestmirror, langpacks
Resolving Dependencies
--> Running transaction check
---> Package pam-devel.x86_64 0:1.1.8-23.el7 will be erased
--> Finished Dependency Resolution
Dependencies Resolved
===========================================================================
Package Arch Version Repository Size
===========================================================================
Removing:
pam-devel x86_64 1.1.8-23.el7 @os 528 k
Transaction Summary
===========================================================================
Remove 1 Package
Installed size: 528 k
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Erasing : pam-devel-1.1.8-23.el7.x86_64 1/1
Verifying : pam-devel-1.1.8-23.el7.x86_64 1/1
Removed:
pam-devel.x86_64 0:1.1.8-23.el7
Complete!
#
整个卸载过程:
Resolving Dependencies:开始解决依赖;Dependencies Resolved:依赖解决完;Transaction Summary:卸载的事务摘要;Remove 1 Package:卸载一个包;最后完成包的卸载。
yum search介绍
yum search用于查找软件包。默认,它会查找软件包全名和摘要(summary)中包含查找名的软件包。
如下,查找包含mysql的包:
# yum search mysql
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
========================================================= N/S matched: mysql ==========================================================
MySQL-python.x86_64 : An interface to MySQL
MySQL-zrm.noarch : MySQL backup manager
akonadi-mysql.x86_64 : Akonadi MySQL backend support
anope-mysql.x86_64 : MariaDB/MySQL modules for Anope IRC services
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
collectd-mysql.x86_64 : MySQL plugin for collectd
''''''省略
innotop.noarch : A MySQL and InnoDB monitor program
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 clients
mylvmbackup.noarch : Utility for creating MySQL backups via LVM snapshots
mysql-community-server.x86_64 : A very fast and reliable SQL database server
mysql-mmm-agent.noarch : MMM Database Server Agent Daemon and Libraries
mysql-mmm-monitor.noarch : MMM Monitor Server Daemon and Libraries
mysql-mmm-tools.noarch : MMM Control Scripts and Libraries
mytop.noarch : A top clone for MySQL
percona-xtrabackup.x86_64 : Online backup for InnoDB/XtraDB in MySQL, Percona Server and MariaDB
php-phpmyadmin-sql-parser.noarch : A validating SQL lexer and parser with a focus on MySQL dialect
php-udan11-sql-parser.noarch : A validating SQL lexer and parser with a focus on MySQL dialect
phpMyAdmin.noarch : Handle the administration of MySQL over the World Wide Web
zabbix30-dbfiles-mysql.noarch : Zabbix database schemas, images, data and patches
zabbix40-dbfiles-mysql.noarch : Zabbix database schemas, images, data and patches
Name and summary matches only, use "search all" for everything.
参考
主要参考自Linux yum 命令、repo文件详解、Linux yum是什么,yum源配置(网络yum源和本地yum源)及网上的一些资料