一文掌握Linux系统的yum包管理工具

一、yum概述

1、yum和apt包管理器的区别

Linux 系统基本上分两大类:

RedHat系列:Redhat、Centos、Fedora 等;

Debian系列:Debian、Ubuntu 等。

目前国产操作系统基本都是基于这两大派系进行二次开发,整体上是换汤不换药,大多数命令是相通的。

而yum是一个RedHat系列的包管理器,基于RPM,使用rpm命令处理包。在CentOS 8及更高版本中被dnf(Dandified Yum)取代,dnf提供了一些性能改进和新的特性,使用上和yum基本相同。

apt是Debian系列的包管理系统,使用dpkg作为底层包管理系统。自动处理软件包的依赖关系,确保在安装新软件时所有必需的包都会一同安装。

包管理工具主要用于软件包的安装,升级,删除,查看。apt和yum都是为了简化软件包的管理和维护,它们在功能上非常相似,但在不同Linux发行版的生态系统中有各自的特性和用法

2、yum和rpm的区别

YUM和RPM包管理器的区别主要体现在软件仓库管理、‌更新机制、‌依赖关系处理以及使用场景上。‌

软件仓库管理:‌YUM使用软件仓库,‌使得管理大量软件包变得更加容易,‌而RPM通常单独管理每个包。‌这意味着YUM能够一次性更新所有软件包,‌而RPM需要手动更新每个包。‌

更新机制:‌YUM可以一次性更新所有软件包,‌而RPM需要手动更新每个包。‌这种差异使得YUM在处理大量软件包的更新时更为高效。‌

依赖关系处理:‌RPM是一个基础的包管理工具,‌而YUM是在RPM基础上构建的一个更高级、‌更易用的工具,‌特别适用于需要处理复杂依赖关系的场景。‌YUM能够自动解决软件包的依赖关系,‌而RPM则需要手动处理这些依赖关系。‌

使用场景:‌RPM适用于简单的系统或当不需要处理复杂的软件依赖关系时。‌而YUM则更适合于需要频繁更新和管理的复杂系统,‌尤其是在处理多个软件包之间的依赖关系时

二、配置yum源

配置在线yum源

常用的几个国内源站

1、清华大学
https://mirrors.tuna.tsinghua.edu.cn/

2、网易
http://mirrors.163.com/

3、阿里云

http://mirrors.aliyun.com

4、中科大

https://mirrors.ustc.edu.cn/

在阿里云上,下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all
yum makecache

另一种快速添加yum源

# 安装依赖包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源

在工作中,出于安全性考虑,服务器并不能访问互联网,当使用rpm安装包安装一些软件时,经常出现缺少依赖而不能安装的情况。

此时我们需要配置本地yum源,配置本机yum源相对容易,一般只需要将系统镜像上传到主机后进行挂载。也可以搭建内网共享yum源,其他服务器都可以向共享yum源获取相应的依赖包。

本次环境给搭建搭建一个简单的单机yum源。 1、下载上传iso镜像 根据对应的操作系统版本,下载对应的evething包,evething包软件多一点。

或者直接挂在光驱,也可以做yum源

2、挂在iso

# 创建挂载路径,这个路径可以随意
[root@localhost ~]# mkdir /media/iso
# 挂在iso镜像
[root@localhost ~]# mount -o loop /root/centos-7-x86_64-everything-2009.iso
mount: /dev/loop0 写保护,将以只读方式挂载
# 如果挂在了光驱,执行下面语句
[root@localhost ~]# mount -o loop /dev/cdrom /media/iso

3、修改repo文件

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost ~]# mkdir backup
[root@localhost ~]# mv *.repo backup/
[root@localhost ~]# cat >> local.repo <<EOF
[local]
name=local repo
baseurl=file:///media/iso
enable=1
gpgcheck=0
EOF
[root@localhost ~]# yum clean all
# 测试安装软件
[root@localhost ~]# yum install telnet

三、包管理器常用操作

rpm常用操作

rpm工具在工作中也有很多应用场景。

选项:

-i  安装
-v  显示执行过程
-h  显示安装进度(打印#)
-U  升级到新版本
-q  查询(常配合其他参数使用)
-a  查询所有软件
-l  查看软件的安装位置
-f  查看拥有指定文件的软件
-e  卸载
--force  强制执行
--nodeps  忽略依赖

常用组合:

# 安装一个新的软件包
rpm -ivh package.rpm 

# 升级软件包
rpm -Uvh package.rpm

# 强制安装软件包,即使存在版本冲突或其他问题。
rpm -Uvh --force package.rpm

# 删除软件包
rpm -e package_name 

# 忽略依赖,强制删除(慎用)
rpm -e --nodeps package_name 
# 列出系统上所有已安装的软件包
rpm -qa 

# 查询特定软件包
rpm -qa |grep ssh

# 查询版本号
rpm -q package_name 
rpm -q net-tools

# 询关于某个软件包的信息
rpm -qi package_name 
rpm -qi telnet

# 出一个软件包安装的文件列表。
rpm -ql package_name 
rpm -ql telnet

# 查找某个文件属于哪个软件包。
rpm -qf file_path :
rpm -qf `which nslookup`
bind-utils-9.11.4-26.P2.el7.x86_64

# 查询该包提供的内容。
rpm -q --provides package_name

# 模拟软件包的安装过程,检查是否有依赖项问题或其他错误。
rpm -i --test package.rpm

yum常用操作

1、yum仓库管理

# 列出可用的yum仓库
yum repolist

# 列出所有软件仓库,包括禁用的
yum repolist 

# 清除缓存
yum clean all

# 重新生成缓存
yum makecache

# 列出所有可用的软件包
yum list

# 列出指定的软件包
yum list |grep package_name
yum list | grep gcc

# 列出所有可升级的rpm包
yum list updates

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

# 查看包详情
yum info wget

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

2、查询软件包

# 查询软件包(支持模糊查询)
yum search 包名
yum search net-tools

# 查询某个命令由哪个软件包提供的
yum provides 要查询的命令/文件名
yum provides nslookup 
yum provides ifconfig

# 查看源中的软件版本
yum list docker --showduplicates | sort -r
yum list nginx --showduplicates

3、安装软件包

# 安装软件包,可用一起安装多个
# -y参数是直接确认安装,不用询问是否安装
yum install nfs-utils -y 
yum install -y vim gcc gcc-c++

# 默认安装的是最新版本,可用指定版本安装
yum install nginx-1.22.1

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

# 只下载不安装(生产环境常用)
yum install  -y --downloadonly --downloaddir=存放目录 包名
以上操作一般还需要安装软件包: yum-plugin-downloadonly

# 组安装
yum groupinstall "Chinese Support"
# 安装一套LAMP
yum groupinstall "Web Server"

# 列出组信息
yum grouplist

# 删除组
yum groupremove "Chinese Support"

# 从指定源安装软件
yum install nginx --enablerepo=epel

4、更新软件包

# 更新所有可更新的软件包
yum update -y

# 更新指定软件
yum update nginx -y 

# 升级系统
yum upgrade  # 此命令会删除旧的软件包,重新安装新的软件包

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

5、卸载软件包

# 卸载指定软件包,不卸载依赖包
yum remove 包名 -y
yum remove nginx -y

# 忽略依赖包
yum remove nginx --nodeps

# 连同依赖一起卸载
yum autoremove 包名
yum autoremove nginx

# 删除软件包,以及软件包数据和配置文件(慎用)
yum erase 包名

6、其他用途

# 查看yum执行历史
yum history

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

# 撤销yum执行记录
yum history undo 编号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

运维李哥不背锅

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值