一、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 | [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 repobaseurl=file:///media/isoenable=1gpgcheck=0EOF[root@localhost ~]# yum clean all# 测试安装软件[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系统软件安装方法