Linux命令:yum

作用

解决安装包依赖问题。

yum 和 dnf

[root@server1 ~]# ls -l \which yum\
lrwxrwxrwx. 1 root root 5 3月 8 2021 /usr/bin/yum -> dnf-3
[root@server1 ~]# ls -l \which dnf\
lrwxrwxrwx. 1 root root 5 3月 8 2021 /usr/bin/dnf -> dnf-3

配置文件

/etc/yum.repo/xxx.repo

# 名字,用于标注不同的源
[base]
# 注释信息
name=CentOS-8 - Base
# 如果哪个url路径下有 repodata 目录,则此 url 为其 baseurl
baseurl=http://mirrors.ustc.edu.cn/centos-vault/8.4.2105/BaseOS/x86_64/os/
# 用于指定是否启用这个源,值:0/1
enabled=1
# 用于指定安装的软件包是否要进行数字签名的验证,值:0/1
gpgcheck=0
# 如果 gpgcheck 值为 1 ,则下面此项生效
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

国内的linux源镜像站点

企业源

站名 地址
阿里云开源镜像站 http://mirrors.aliyun.com/
搜狐开源镜像站 http://mirrors.sohu.com/
网易开源镜像站 http://mirrors.163.com/

教育源

站名 地址
重庆大学 http://mirrors.cqu.edu.cn/
北京理工大学 http://mirror.bit.edu.cn (IPv4 only)
http://mirror.bit6.edu.cn (IPv6 only)
北京交通大学 http://mirror.bjtu.edu.cn (IPv4 only)
http://mirror6.bjtu.edu.cn (IPv6 only)
http://debian.bjtu.edu.cn (IPv4+IPv6)
兰州大学 http://mirror.lzu.edu.cn/
厦门大学 http://mirrors.xmu.edu.cn/
上海交通大学 http://ftp.sjtu.edu.cn/ (IPv4 only)
http://ftp6.sjtu.edu.cn(IPv6 only)
清华大学 http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)
http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)
http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)
天津大学 http://mirror.tju.edu.cn/
中国科学技术大学 http://mirrors.ustc.edu.cn/ (IPv4+IPv6)
http://mirrors4.ustc.edu.cn/
http://mirrors6.ustc.edu.cn/
西南大学 http://linux.swu.edu.cn/swudownload/Distributions/
东北大学 http://mirror.neu.edu.cn/ (IPv4 only)
http://mirror.neu6.edu.cn/ (IPv6 only)
电子科技大学 http://ubuntu.uestc.edu.cn/
青岛大学 http://mirror.qdu.edu.cn/
开源中国社区 http://mirrors.oss.org.cn/
大连东软信息学院 http://mirrors.neusoft.edu.cn/
华中科技大学 http://mirrors.hust.edu.cn/
中山大学 http://mirrors.sysu.edu.cn/
清华大学学生网管会 http://mirrors.tuna.tsinghua.edu.cn/
浙江大学 http://mirrors.zju.edu.cn/web/
台湾淡江大学 http://ftp.tku.edu.tw/Linux/
Linux运维派开源镜像 http://mirrors.skyshe.cn
中国Linux源镜像站大全 https://blog.51cto.com/u_2475296/4562881

yum 命令

查找

[root@server1 yum.repos.d]# yum repolist 列出已经配置的仓库信息(id及名称)
[root@server1 yum.repos.d]# yum list vsftpd 列出软件包,可以看到是否安装过,此为精确匹配,需要用完整名称查找
[root@server1 yum.repos.d]# yum list vsftp* 匹配 vsftp 开头的软件
[root@server1 yum.repos.d]# yum search vsftpd 列出软件包,不能看到是否安装过,此为模糊匹配
[root@server1 yum.repos.d]# yum list updates 列出所有可更新的软件包
[root@server1 yum.repos.d]# yum list installed 列出所有已安装的软件包
[root@server1 yum.repos.d]# yum list extras 列出所有已安装,但是不在yum仓库范围的软件
[root@server1 yum.repos.d]# yum info vsftpd 列出软件信息
[root@server1 yum.repos.d]# yum info updates 列出所有可更新软件的信息
[root@server1 yum.repos.d]# yum info installed 列出所有已安装软件的信息
[root@server1 yum.repos.d]# yum info extras 列出所有已安装但不在yum仓库范围的软件的信息

安装

[root@server1 yum.repos.d]# yum install vsftpd 安装,会提示是否安装,手动确认
[root@server1 yum.repos.d]# yum install -y vsftpd 安装,-y表示自动确认
[root@server1 yum.repos.d]# yum install vsftpd --downloaddir=/tmp --downloadonly 仅下载,并指定下载路径,不执行安装

更新

[root@server1 yum.repos.d]# yum update vsftpd 升级此软件包
[root@server1 yum.repos.d]# yum update 安装所有软件更新
[root@server1 yum.repos.d]# yum check-update 列出所有可更新的软件包
[root@server1 yum.repos.d]# yum --exclude=kernel* update 只更新软件,不更新内核

删除

[root@server1 yum.repos.d]# yum remove vsftpd 卸载,会提示是否卸载,手动确认
[root@server1 yum.repos.d]# yum remove -y vsftpd 卸载,-y表示自动确认

其他

[root@server1 yum.repos.d]# yum whatprovides */smbclient 通过命令反向查找安装包
[root@server1 yum.repos.d]# yum provides vsftpd 列出软件包提供哪些文件
[root@server1 yum.repos.d]# yum clean packages 清除下载的rpm
[root@server1 yum.repos.d]# yum clean metadata 清除元数据
[root@server1 yum.repos.d]# yum clean dbcache
[root@server1 yum.repos.d]# yum clean expire-cache
[root@server1 yum.repos.d]# yum clean all 清除所有缓存
[root@server1 ~]# yum history 查看安装历史

[root@server1 ~]# yum history undo 3 3是history中的ID,表示回滚此步操作

group的使用

[root@server1 ~]# yum grouplist     可以列出系统已经安装的哪些组
Updating Subscription Management repositories.
Unable to read consumer identity

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

上次元数据过期检查:0:00:06 前,执行于 2022年11月28日 星期一 07时43分46秒。
可用环境组:
   服务器
   最小安装
   工作站
   虚拟化主机
   定制操作系统
已安装的环境组:
   带 GUI 的服务器
已安装组:
   容器管理
   无头系统管理
可用组:
   .NET 核心开发
   RPM 开发工具
   开发工具
   图形管理工具
   传统 UNIX 兼容性
   网络服务器
   科学记数法支持
   安全性工具
   智能卡支持
   系统工具
[root@server1 ~]#

[root@server1 ~]# yum groupinstall '虚拟化主机' #安装工具组

module功能

RHEL8新增的功能

[root@server1 ~]# yum module list 列出yum源中的模块
[root@server1 ~]# yum module list php 列出 php 模块,[d]表示默认安装

CentOS-8 - AppStream
Name                                       Stream                                       Profiles                                                        Summary                                                    
php                                        7.2 [d]                                      common [d], devel, minimal                                      PHP scripting language                                     
php                                        7.3                                          common [d], devel, minimal                                      PHP scripting language 

[root@server1 ~]# yum module info php 列出php模块的信息,可以看到各模块装哪些包
[root@server1 ~]# yum module install php 安装默认的模块、版本、即 php:7.2/common
[root@server1 ~]# yum module install php:7.4/devel 安装指定模块
[root@server1 ~]# yum module remove php:7.4/devel 卸载
[root@server1 ~]# yum module reset php:7.4 卸载后重置

创建本地yum源

[root@server1 ~]# yum install createrepo_c.x86_64 安装这个包,用于生成本地源的 repodata 目录
然后拷贝rpm文件,并配置 repo 为本地的baseurl地址
[root@server1 ftp]# createrepo -v ansible 对ansible目录生成repodata目录,使ansible目录成为yum源