在Linux服务器管理领域,CentOS凭借其卓越的稳定性和与Red Hat Enterprise Linux(RHEL)的兼容性,长期以来都是首选的操作系统之一,对于任何CentOS用户而言,掌握软件的安装与管理是必备的核心技能,在这一过程中,yum
(Yellowdog Updater, Modified)扮演着至关重要的角色,它是一个功能强大且智能的软件包管理器,极大地简化了在系统上安装、更新和卸载软件的复杂度。
YUM是什么?
yum
是一个基于RPM包管理的shell前端软件包管理器,它的核心价值在于能够自动处理软件包之间的依赖关系,在没有yum
的时代,用户使用rpm
命令安装软件时,必须手动下载并安装所有依赖的包,这个过程繁琐且极易出错。yum
的出现彻底改变了这一局面,它可以从指定的服务器(软件仓库)自动下载RPM包并进行安装,同时会处理所有依赖关系,确保软件能够正确、完整地运行。
YUM的基本用法
yum
的命令设计直观且易于理解,通过组合不同的子命令和参数,可以完成几乎所有的软件包管理任务。
搜索软件包
在安装一个软件之前,我们通常需要知道它在仓库中的确切名称。yum search
命令可以帮助我们根据关键词搜索相关的软件包。
yum search nginx
执行此命令后,yum
会列出所有名称或描述信息中包含“nginx”的可用软件包,帮助我们快速定位目标。
查看软件包信息
找到软件包后,可以使用yum info
命令查看其详细信息,包括版本、大小、来源仓库、描述等,以便在安装前确认。
yum info nginx
安装软件包
确认软件包无误后,使用yum install
命令进行安装。yum
会列出将要安装的软件包及其所有依赖项,并提示用户确认。
yum install nginx
系统会显示一个事务摘要,询问“Is this ok [y/d/N]:”,输入y
并回车,yum
便会开始下载并安装所有相关软件包。
更新软件包
保持系统软件为最新版本是维护系统安全和稳定的关键。yum update
命令可以更新系统中所有已安装的软件包到最新版本。
yum update
如果只想更新特定的软件包,例如nginx,可以这样操作:
yum update nginx
卸载软件包
当不再需要某个软件时,可以使用yum remove
(或yum erase
)命令将其卸载。yum
在卸载主软件包的同时,也会智能地移除那些仅为该软件包安装、且现在不再被其他软件所依赖的依赖包。
yum remove nginx
YUM配置文件简介
yum
的行为由其配置文件和仓库文件定义,主要的配置文件是/etc/yum.conf
,而软件仓库的定义则存放在/etc/yum.repos.d/
目录下,以.repo
结尾的文件中,每个.repo
文件都包含一个或多个软件仓库的配置,包括仓库的名称、URL地址、是否启用等,通过编辑这些文件,用户可以添加、禁用或修改软件仓库源。
常用YUM命令速查表
为了方便快速查阅,以下是一些最常用的yum
命令小编总结:
功能分类 | 命令 | 描述 |
---|---|---|
安装与查询 | yum search <关键词> | 搜索软件包 |
yum info <包名> | 查看软件包详细信息 | |
yum install <包名> | 安装软件包 | |
yum list installed | 列出所有已安装的软件包 | |
yum provides <文件名> | 查看哪个软件包提供了指定的文件 | |
更新与维护 | yum check-update | 检查可更新的软件包 |
yum update | 更新所有软件包 | |
yum update <包名> | 更新指定的软件包 | |
yum remove <包名> | 卸载指定的软件包 | |
清理与缓存 | yum clean all | 清理所有缓存(包括软件包和旧头文件) |
yum makecache | 将服务器上的软件包信息缓存到本地 |
进阶技巧与注意事项
在使用yum
时,有一些额外的技巧和知识点能让管理过程更加高效。
- 使用EPEL仓库:CentOS官方仓库主要包含稳定且经过严格测试的软件,但版本可能较旧,EPEL(Extra Packages for Enterprise Linux)是一个由Fedora项目维护的,为企业级Linux提供高质量额外软件包的仓库,安装EPEL可以获取更多流行的软件,安装命令为:
yum install epel-release
。 - YUM与DNF的演进:从CentOS 8开始,
yum
的下一代替代品dnf
(Dandified YUM)成为了默认的包管理器。dnf
在性能、依赖解析能力和内存占用上都有显著提升。dnf
的命令行接口与yum
高度兼容,绝大多数yum
命令都可以在dnf
上直接使用,因此用户的学习成本很低。
相关问答FAQs
Q1: 当我执行 yum install
命令时,系统提示“没有可用的软件包”,这是什么原因?我该如何解决?
A1: 这个提示通常意味着yum
在所有已启用的软件仓库中都无法找到你指定的软件包,解决方法如下:
- 检查包名拼写:确保你输入的软件包名称完全正确,Linux系统对大小写敏感。
- 启用EPEL仓库:很多常用软件包并不包含在CentOS的基础仓库中,而是在EPEL仓库里,可以先尝试安装EPEL仓库:
yum install epel-release
,然后再次执行安装命令。 - 搜索确认:使用
yum search <关键词>
命令搜索一下,看软件包是否存在于仓库中,以及它的确切名称是什么。 - 添加第三方仓库:如果官方和EPEL仓库都没有,你可能需要为该软件添加特定的第三方仓库(如Remi仓库用于PHP等),然后才能安装。
Q2: yum update
和 yum upgrade
有什么区别?我应该使用哪一个?
A2: 在传统的yum
(如CentOS 7)中,两者存在细微差别:
yum update
:会更新系统中所有已安装的软件包到最新版本,但不会移除某个软件包的旧版本,如果某个软件包的新版本与旧版本不兼容(改变了包名),yum update
可能会同时保留新旧两个版本。yum upgrade
:在执行更新操作的同时,还会智能地移除那些过时的、被新版本替代的旧软件包,这是一个更彻底的更新过程。
对于日常维护,yum update
通常是更安全的选择,因为它更保守,在CentOS 8及以后版本中,dnf
成为了默认包管理器,在dnf
中,update
和upgrade
命令的功能是完全相同的,可以互换使用,在较新的系统中,使用哪一个没有区别。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复