yum包管理器常见用法

yum包管理器常见用法

  • yum源数据结构
  • yum源配置
    • `yum-config-manager`快速添加`yum`源
    • 自动寻找最快的yum源--仅支持Centos7
    • yum生成缓存
  • yum包管理器常用命令
    • RHEL8的yum
    • yum软件仓库管理yum repolist
    • 查看所有已安装软件包`yum list`
      • 列出已安装的`rpm`包
    • 查看软件包详情`yum info pkg`
      • 查看一个软件包的依赖关系`yum deplist`
    • 查找软件包`yum search`
    • 查询命令由哪个包提供
      • 反查询命令在什么包中`yum whatprovides`
      • 反查询文件在什么包中`yum provides`
    • yum查看源中的软件版本
    • 检查软件更新
    • 安装yum install
      • 查看包安装了哪些文件
      • 安装指定版本的包
      • 组安装yum groupinstall
      • 从指定源安装软件
      • 重新安装指定包yum reinstall
    • yum更新软件包
      • 更新包yum update
      • 升级系统yum upgrade
    • 卸载yum remove
      • 不卸载依赖包
    • 修复依赖关系
    • 查看yum命令执行记录yum histroy
    • yum异常处理--清理未完成事务
    • package-cleanup命令------清理本地安装的RPM软件包
    • yum-versionlock锁定软件包版本
      • 示例:阻止yum自动更新内核
    • 校验rpm包是否被篡改
  • `yum.conf`主配置文件
    • yum配置代理
    • 保留yum安装过的包

yum源数据结构

yum仓库中配置的baseurl指向的位置并不是rpm包的位置,
指向的是yum源中的repodata索引的软件包元数据的位置

yum包管理器常见用法_第1张图片


yum源配置


yum-config-manager快速添加yum

参考: https://www.linuxcool.com/yum-config-manager

# 安装依赖包yum-utils
yum install yum-utils -y

# 添加清华源
yum-config-manager --add-repo=源url地址
yum-config-manager --add-repo https://mirrors.aliyun.com/repo/Centos-7.repo

# 查看源列表
yum repolist

自动寻找最快的yum源–仅支持Centos7

RHEL8目前没有这个插件

# 安装yum-fastestmirror
yum install yum-fastestmirror -y

# 配置文件(一般不用动):
/etc/yum/pluginconf.d/fastestmirror.conf

# yum镜像的速度测试记录文件:
/var/cache/yum/timedhosts.txt

yum生成缓存

参考: https://blog.csdn.net/A___LEi/article/details/118340579
yum索引缓存目录/var/cache/yum/

# 查看软件仓库,同时生成缓存
yum repolist

# 清空yum缓存 && 生成缓存
yum clean all && yum makecache

# 快速生成缓存
yum makecache fast

yum包管理器常用命令

yum常用选项参考 https://www.cnblogs.com/st-jun/p/7736929.html
yum包管理器常见用法_第2张图片


RHEL8的yum

# RHel8的yum程序实际是做了一个dnf-3 的软链接
ls -l /bin/yum

在这里插入图片描述


yum软件仓库管理yum repolist

# 列出已经配置的所有可用仓库
yum repolist -v

# 列出所有源,包括禁用的源
yum repolist all

# 快速生成缓存
yum makecache fast

# 清除暂存中旧的rpm头文件和包文件 && 重新生成缓存
yum clean all && yum makecache

查看所有已安装软件包yum list

# 之前所有可安装的软件清单命令:
yum list

# 从软件安装列表中过滤结果
yum list | grep 软件包名

# 在缓存中查找包,速度更快
yum -C list nginx 

# 列出资源库中所有可以更新的rpm包
yum list updates

列出已安装的rpm

# 列出已经安装的所有的rpm包  
yum list installed

# 列出已经安装的但是不包含在官方资源库中的rpm包,例如安装了epel源的rpm包会列出来
yum list extras

yum包管理器常见用法_第3张图片


查看软件包详情yum info pkg

# 查看wget软件包详情
yum info wget

yum包管理器常见用法_第4张图片


查看一个软件包的依赖关系yum deplist

# 查看软件包的依赖关系
yum deplist 包名

yum包管理器常见用法_第5张图片


查找软件包yum search

# 查找软件包命令(支持模糊查找):
yum search 包名

查询命令由哪个包提供

查看文件由哪个包提供


反查询命令在什么包中yum whatprovides

yum whatprovides 要查询的命令

yum包管理器常见用法_第6张图片


反查询文件在什么包中yum provides

yum provides 要查询的文件名

[rhel8 root ~]# yum provides /usr/bin/rm

yum包管理器常见用法_第7张图片


yum查看源中的软件版本

# 查询yum源中提供的docker-ce版本,并按照版本号排序
yum list docker-ce --showduplicates | sort -r

# 查询yum源中提供的kubeadm版本
yum list kubeadm --showduplicates

在这里插入图片描述


检查软件更新

# 检查软件更新,相当于apt upate
yum check-update

安装yum install

# 安装
## 更新内核
yum install kernel -y

# 本地安装
yum localinstall 本地包名.rpm -y

查看包安装了哪些文件

# 查看包安装了哪些文件
rpm -ql 包名

yum包管理器常见用法_第8张图片


安装指定版本的包

在这里插入图片描述

# 查看源中提供哪些包版本
yum list 包名 --showduplicates

# 安装指定版本的kubeadm
yum install -y kubeadm-1.23.0-0

组安装yum groupinstall

#查看软件组列表
yum group list

#安装指定的组
yum groupinstall "Chinese Support"

#安装了的组成员软件包更新  
yum groupupdate "Chinese Support"  

#安装了的组和可以安装的组一览显示
yum grouplist  

#删除指定的组
yum groupremove "Chinese Support" 

#指定组所包含的软件包显示 
yum groupinfo "Chinese Support"  

从指定源安装软件

# 从epel源安装nginx包
yum install nginx --enablerepo=epel

重新安装指定包yum reinstall

# 重新安装指定包
yum -y reinstall 包名

示例:

# 把rm命令删除
rm /usr/bin/rm

[rhel8 root ~]# rm
-bash: /usr/bin/rm: 没有那个文件或目录

# 查询rm命令在哪个包中
yum provides rm

# 重新安装回rm命令
yum reinstall coreutils -y

# rm命令又回来了
which rm

yum更新软件包

https://cloud.tencent.com/developer/article/1604418
https://unix.stackexchange.com/questions/55777/in-centos-what-is-the-difference-between-yum-update-and-yum-upgrade

yum updateyum upgrade的功能都是一样的,都是将需要更新的package更新到源中的最新版。唯一不同的是,yum upgrade删除旧版本的package,而yum update会保留(obsoletes=0)。

生产环境中建议使用yum update,防止因为替换,导致旧的软件包依赖出现问题。


更新包yum update

将软件包到最新版本,但保留旧版本和配置。

# 更新指定软件
yum update 包名 -y

# 更新所有软件命令:
yum update

升级系统yum upgrade

upgrade会删除旧的软件包,并重新安装新的软件包。

# 所有可更新的软件清单命令:
yum check-update

# 大规模的版本升级,与yum update不同的是,连旧的淘汰的包也升级
yum upgrade  

# 更新软件包,自动解决依赖关系
yum upgrade --obsoletes -y

卸载yum remove

# 只卸载指定的包
yum remove 包名

# 卸载指定包并自动移除依赖包
yum autoremove 包名


# 删除软件包,以及软件包数据和配置文件
## 类似于Ubuntu的 apt autoremove --purge 包名
yum erase 包名

不卸载依赖包

参考: https://blog.j3l11234.com/2016/11/23/yum-remove-with-exclude/

# 忽略依赖关系强制删除
yum remove XXX --nodepes

修复依赖关系

# 修复依赖关系--再把依赖包装回去
yum check

查看yum命令执行记录yum histroy

# 查看yum执行记录
yum history

yum包管理器常见用法_第9张图片

# 查看命令记录详情
# yum history info 编号
yum history info 1

yum包管理器常见用法_第10张图片


# 撤销yum执行记录--其实就是卸载
[rhel8 root ~]# yum history undo 12
上次元数据过期检查:2:32:40 前,执行于 2021年10月05日 星期二 17时48分17秒。
依赖关系解决。
========================================================================================================================
 软件包                   架构                       版本                               仓库                       大小
========================================================================================================================
移除:
 htop                     x86_64                     3.0.5-1.el8                        @epel                     326 k

事务概要
========================================================================================================================
移除  1 软件包

将会释放空间:326 k
确定吗?[y/N]

yum异常处理–清理未完成事务

# 清理未完成事务
yum-complete-transaction
# 或
yum-complete-transaction –cleanup-only

package-cleanup命令------清理本地安装的RPM软件包

常用参数:

-c 使用备用配置文件(默认为/etc/yum.conf)
-y 同意任何要求
–leaves 列出与其他RPM没有依赖关系的软件包
–orphans 列出当前软件仓库中不再提供支持的本地已安装的软件包
–oldkernels 删除旧内核文件(kernel, kernel-devel)
–problems 列出有依赖问题的软件包
–dupes 扫描重复安装的RPM软件包
–cleandupes 扫描重复安装的软件包,并删除老版本的软件包
# 依赖yum-utils
yum install -y yum-utils

# 列出重复的rpm包 
package-cleanup --dupes

# 去除重复的rpm包
package-cleanup –cleandupes 

yum-versionlock锁定软件包版本

生产环境下,想要阻止yum自动更新内核

# 安装yum-versionlock
yum install yum-plugin-versionlock -y

# 锁定软件包版本
yum versionlock 包名1 包名2
## 锁定内核更新
### add参数可以忽略
yum versionlock add kernel*

# 查看锁定软件列表
yum versionlock list

yum包管理器常见用法_第11张图片

# 取消锁定更新
yum versionlock delete 包名

# 取消所有锁定
yum versionlock clear

yum包管理器常见用法_第12张图片


示例:阻止yum自动更新内核

# 在/etc/yum.conf中配置阻止yum自动更新内核
vim /etc/yum.conf

## 指定不更新的包名
exclude=kernel*

校验rpm包是否被篡改

https://blog.csdn.net/omaidb/article/details/126594122


yum.conf主配置文件

yum.conf可以配置yum代理,提高下载速度

参考 https://help.eset.com/era_deploy_va/65/zh-CN/how-to-enable-yum-command-unde.html

# centos8的yum.conf 配置文件也是一个dnf.conf的软链接
[root@c8 ~]# ls -l /etc/yum.conf
lrwxrwxrwx. 1 root root 12 Mar 12  2021 /etc/yum.conf -> dnf/dnf.conf

yum配置代理

参考: https://blog.k4nz.com/3ed39274676b830f2451613ddfd9b037/

编辑/etc/yum.conf文件

# 配置socks5代理,提高yum下载速度
proxy=socks5://192.168.0.130:1080
proxy_username=username
proxy_password=password

# 配置http代理
## 必须使用完整地址,包含端口号
proxy=http://proxysvr.yourdom.com:3128
## 指定用户名密码
proxy_username=YourProxyUsername
proxy_password=YourProxyPassword

保留yum安装过的包

# 编辑yum配置文件
vim /etc/yum.conf

# 1保存下载的rpm | 0不保存下载的rpm
keepcache=1

你可能感兴趣的:(yum,yum,dnf)