Linux系统的yum包管理详解值得收藏!

一、yum概述

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

data-ad-format="fluid" data-ad-layout-key="-7k+ex-4a-9w+4a">

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
1、清华大学https://mirrors.tuna.tsinghua.edu.cn/2、网易http://mirrors.163.com/3、阿里云http://mirrors.aliyun.com4、中科大https://mirrors.ustc.edu.cn/

在有网环境默认使用各版本的官网yum源,一般比较慢,可用从国内的几个源站获取yum源。

下面是阿里云上快速获取CentOS7的基础源和epel源

1
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repocurl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repoyum clean allyum makecache

另一种快速添加yum源方法:yum-config-manager

1
# 安装依赖包yum-utilsyum 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

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

3、修改repo文件

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

三、包管理器常用操作

rpm常用操作

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

选项:

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

常用组合:

1
# 安装一个新的软件包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仓库管理

1
# 列出可用的yum仓库yum repolist# 列出所有软件仓库,包括禁用的yum repolist # 清除缓存yum clean all# 重新生成缓存yum makecache# 列出所有可用的软件包yum list# 列出指定的软件包yum list |grep package_nameyum list | grep gcc# 列出所有可升级的rpm包yum list updates# 列出所有已安装的rpm包yum list installed# 查看包详情yum info wget# 查看一个软件包的依赖关系yum deplist 包名

2、查询软件包

1
# 查询软件包(支持模糊查询)yum search 包名yum search net-tools# 查询某个命令由哪个软件包提供的yum provides 要查询的命令/文件名yum provides nslookup yum provides ifconfig# 查看源中的软件版本yum list docker --showduplicates | sort -ryum list nginx --showduplicates

3、安装软件包

1
# 安装软件包,可用一起安装多个# -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"# 安装一套LAMPyum groupinstall "Web Server"# 列出组信息yum grouplist# 删除组yum groupremove "Chinese Support"# 从指定源安装软件yum install nginx --enablerepo=epel

4、更新软件包

1
# 更新所有可更新的软件包yum update -y# 更新指定软件yum update nginx -y # 升级系统yum upgrade  # 此命令会删除旧的软件包,重新安装新的软件包# 更新软件包,自动解决依赖问题yum upgrade --obsoletes -y

5、卸载软件包

1
# 卸载指定软件包,不卸载依赖包yum remove 包名 -yyum remove nginx -y# 忽略依赖包yum remove nginx --nodeps# 连同依赖一起卸载yum autoremove 包名yum autoremove nginx# 删除软件包,以及软件包数据和配置文件(慎用)yum erase 包名

6、其他用途

1
# 查看yum执行历史yum history# 查看命令记录详情yum history info 编号# 撤销yum执行记录yum history undo 编号

本篇关于Linux系统的包管理器知识分享完结!

Linux系统yum包管理详解, yum和apt区别, Linux yum命令使用教程, Linux系统包管理器对比, yum包管理器详解, Linux系统yum安装指南, Linux yum常用命令, Linux系统包管理器选择, Linux yum配置文件详解, Linux系统软件安装方法

data-ad-format="auto" data-full-width-responsive="true">