centos学习-掌握核心命令之-yum

引言

在CentOS系统中,yum(Yellowdog Updater Modified)是一个强大的包管理工具,用于自动从指定的远程仓库下载并安装、更新、删除软件包。yum简化了依赖关系管理,使得Linux系统的软件包管理变得非常容易。下面是对CentOS中yum命令及有关配置文件的详细解释。

一、yum的基本概念和原理

yum基于RPM包管理,拥有自动化安装、升级、配置甚至删除软件的功能。它自动解决了软件包之间的依赖关系,使得用户可以轻松地安装、更新和删除软件包。yum的工作原理主要依赖于其仓库(repository)的概念,这些仓库包含了大量的软件包及其元数据,yum通过这些元数据来解析软件包之间的依赖关系。

二、yum命令的基本语法

yum命令的基本语法如下:

yum [options] [command] [package ...]

其中,options是可选的命令行选项,command是yum要执行的操作(如install、update等),package是要操作的软件包名。

三、yum的主要命令和选项

安装软件包
使用install命令可以安装一个或多个软件包:

yum install package1 package2 ...

更新软件包
使用update命令可以更新一个或多个软件包,或者使用upgrade命令更新所有已安装的软件包:

yum update package1 package2 ...  
yum upgrade

删除软件包
使用remove或erase命令可以删除一个或多个软件包:

yum remove package1 package2 ...  
yum erase package1 package2 ...

列出软件包
使用list命令可以列出所有可用或已安装的软件包:

yum list available  
yum list installed

搜索软件包
使用search命令可以根据关键字搜索软件包:

yum search keyword

查看软件包信息
使用info命令可以查看软件包的详细信息:

yum info package

清理缓存
使用clean命令可以清理yum的缓存目录:

yum clean all

配置yum仓库
yum的配置文件通常位于/etc/yum.conf和/etc/yum.repos.d/目录下。你可以直接编辑这些文件来配置或添加新的仓库。

软件包组管理
yum允许用户以软件包组的形式来安装、更新或删除多个相关的软件包。这通常用于安装一组具有共同功能的软件包,如开发工具组、图形界面组等。

例如,要安装开发工具组,可以使用以下命令:

yum groupinstall "Development Tools"

事务管理
yum使用事务机制来确保软件包管理操作的原子性。这意味着,要么所有的软件包都成功安装或更新,要么在遇到问题时回滚到操作之前的状态,确保系统的稳定性。
用户可以使用yum history命令查看历史事务,并使用yum history undo命令撤销特定的事务。

缓存管理
yum在下载软件包时会将其缓存到本地,以便后续操作能够更快地执行。但是,随着时间的推移,缓存可能会变得庞大且过时。因此,定期清理缓存是一个好习惯。

除了使用yum clean命令清理缓存外,用户还可以使用yum makecache命令重新生成缓存,以确保yum能够使用最新的仓库元数据。

四、yum的依赖管理

yum的强大之处在于其自动处理依赖关系的能力。当你尝试安装一个软件包时,yum会自动检查该软件包所依赖的其他软件包,并尝试安装这些依赖项。同样,当你尝试删除一个软件包时,yum也会检查是否有其他软件包依赖于它,并尽量避免删除这些依赖项。

五、yum的插件和扩展

yum还支持插件和扩展功能,这些功能可以通过安装额外的软件包来启用。例如,yum-fastestmirror插件可以自动选择最快的仓库镜像,yum-complete-transaction插件可以在系统崩溃后恢复未完成的事务等。
用户可以使用yum plugins命令来查看已安装的插件,并使用yum plugin-installyum plugin-remove命令来安装和删除插件。

六、yum的自定义配置

yum的配置文件允许用户根据需要进行自定义设置,以满足特定的需求。主要的配置文件包括/etc/yum.conf和/etc/yum.repos.d/目录下的.repo仓库配置文件。要配置本地仓库,需要在/etc/yum.repos.d/目录下创建一个新的仓库配置文件,并指定本地仓库的路径和相关信息。

在/etc/yum.conf中,用户可以设置全局选项,如缓存目录、默认安装选项等。而在/etc/yum.repos.d/目录下的仓库配置文件中,用户可以定义每个仓库的详细信息,如仓库的ID、名称、URL、启用状态等。

通过编辑这些配置文件,用户可以自定义yum的行为,以满足特定的需求。例如,可以添加新的仓库以获取特定的软件包,或者禁用某个仓库以避免不必要的更新。

yum.conf 配置参数
assumeyes=0:这个参数决定是否提示确认操作。当设置为0时,执行如yum install package_name等命令时会提示用户确认操作。如果设置为1,则不会提示确认操作,直接进行安装。
cachedir=directory:这是yum存储其缓存和数据库文件的目录。例如,/var/cache/yum是yum下载的RPM包的缓存目录。
debuglevel=2:这个参数设置yum生成的调试输出的详细信息级别。其值范围通常为1到10之间的整数。设置更高的调试级别值将导致yum显示更详细的调试输出。默认值是2,而debuglevel=0将禁用调试输出。
exactarch=1:这个参数决定在更新包时是否考虑准确的体系结构。当启用时(默认值为1),它将确保只更新与当前系统体系结构匹配的包。
keepcache=0:这个参数决定安装成功后是否保留标题和包的缓存。当设置为0时,安装完成后不会保留缓存。
plugins=1:这个参数决定是否全局启用所有yum插件。当设置为1时,所有yum插件都将被启用。
reposdir
定义了包含.repo文件的目录位置。yum将从这些文件中读取仓库信息。默认值是/etc/yum.repos.d/。
gpgcheck
全局启用或禁用GPG检查。GPG检查用于验证下载的包的完整性。如果设置为1,则启用GPG检查;如果设置为0,则禁用。
installonly_limit
定义了installonly插件可以保留的RPM包的最大数量。这通常用于内核和其他特殊类型的包,这些包可能不需要保留多个版本。
exclude
列出不应该被安装或更新的包。这可以用来防止自动更新某些关键包,例如数据库或特定应用程序。
localinstall
当设置为1时,允许从本地文件安装RPM包,而不是只能从yum仓库。
history_list_view
定义了yum history命令的默认输出格式。

.repo 文件的配置
仓库标识
每个仓库配置通常以 [ 和 ] 包围的仓库 ID 开始,这是该仓库的唯一标识符。
一个 .repo 文件可以包含多个 [repository_id] 部分,每个部分定义一个不同的仓库。
基本配置
name:仓库的描述性名称。
baseurlmirrorlist:定义仓库的基础 URL 或镜像列表 URL。baseurl 指向仓库的实际位置,而 mirrorlist 则指向一个包含多个镜像地址的列表。
enabled:指定是否启用该仓库。1 表示启用,0 表示禁用。
gpgcheck:指定是否对从该仓库下载的包进行 GPG 签名检查。1 表示启用,0 表示禁用。
gpgkey:用于验证仓库中包签名的 GPG 密钥的 URL。
cost:定义仓库的成本,用于在多个仓库中决定使用哪个仓库。当多个仓库提供相同的包时,YUM 会使用成本较低的仓库。
includepkgsexcludepkgs:分别指定应包含或排除的特定包。
failovermethod:定义当 baseurl 或 mirrorlist 中的仓库不可用时,YUM 应如何操作。例如,可以设置为 “roundrobin” 以循环尝试列表中的每个地址。

示例:
name=Repository_Name  
baseurl=http://example.com/repo  
enabled=1  
gpgcheck=1  
gpgkey=http://example.com/repo/RPM-GPG-KEY
cost=1000  
includepkgs=package1,package2  
excludepkgs=package3  
failovermethod=roundrobin

注意:
在修改或添加 .repo 文件后,通常需要运行 yum clean all 来清除缓存,并运行 yum makecache 来重新生成缓存。
确保仓库的 URL 是正确的,并且服务器是可访问的。
如果启用了 GPG 检查,请确保 GPG 密钥的 URL 也是正确的,并且密钥是可用的。

七、yum的镜像选择与优化

在使用yum时,选择合适的软件仓库镜像源(repository mirror)对于提高软件包的下载速度和稳定性至关重要。默认情况下,yum可能会使用官方提供的镜像源,但由于地理位置和网络状况的差异,这些源可能并不是最快的。因此,用户可以考虑使用地理位置更近的镜像源,或者选择稳定性更高的镜像源。

要更换yum的镜像源,用户需要编辑/etc/yum.repos.d/目录下的相关配置文件,将原有的镜像地址替换为新的镜像地址。同时,也可以考虑使用如yum-fastestmirror这样的插件来自动选择最快的镜像源。

根据需求还可以搭建内部的YUM镜像服务器,实现对软件包的统一管理和分发,提高下载速度并降低对外部网络的依赖。

八、yum与其他工具的集成

yum作为软件包管理工具,与其他Linux系统工具和服务有着良好的集成。例如,它可以与自动化配置管理工具(如Ansible、Puppet等)集成,实现软件包的自动化部署和更新。此外,yum还可以与SELinux(Security-Enhanced Linux)等安全工具配合,确保在安装和更新软件包时遵守安全策略。

九、使用yum进行软件包的版本控制

在软件部署和维护过程中,对软件包的版本控制至关重要。yum提供了一些选项来管理特定版本的软件包,允许用户安装、更新或降级到特定版本的软件包。

例如,使用yum install package-name-version命令可以安装特定版本的软件包。通过指定包名和版本号,用户能够确保安装了所需的确切版本。同样,使用yum downgrade package-name-version命令可以降级到较早的软件包版本。

此外,yum还提供了版本锁定功能,可以阻止某些软件包被意外更新。这对于维护系统的稳定性和一致性非常有用。通过创建版本锁定文件并指定要锁定的软件包及其版本,用户可以确保这些软件包不会被更新到更高的版本。

十、yum的扩展性和自定义插件

yum的扩展性是其强大功能之一,它允许用户通过编写自定义插件来扩展其功能。插件是一种可以添加到yum中的代码片段,用于实现特定的功能或行为。

通过编写自定义插件,用户可以添加新的命令、扩展仓库支持、处理特定的软件包依赖关系等。这为用户提供了极大的灵活性,使他们能够根据自己的需求定制yum的行为。

要使用自定义插件,用户需要将其放置在/usr/lib/yum-plugins/目录下,并确保插件文件具有正确的执行权限。然后,在yum的配置文件中启用该插件,即可在yum操作中使用该插件提供的功能。

十一、yum与其他Linux发行版的兼容性

虽然yum最初是为CentOS和Red Hat Enterprise Linux(RHEL)开发的,但它也与其他基于RPM的Linux发行版兼容。这些发行版包括Fedora、Scientific Linux等。由于它们都使用RPM作为软件包格式,因此yum可以在这些系统上无缝地管理软件包。

然而,需要注意的是,不同发行版可能对yum的配置和插件支持有所不同。因此,在使用yum时,用户应该参考特定发行版的文档和最佳实践,以确保获得最佳的性能和安全性。

十二、yum的安全性

在使用yum安装软件包时,安全性是一个需要重点考虑的因素。由于软件包可能包含可执行代码,因此确保从可信的源获取软件包至关重要。用户应该只从官方或经过验证的仓库中获取软件包,避免从未知的或不受信任的源安装软件。

此外,定期更新系统和软件包也是保持系统安全的重要措施。通过yum update命令,用户可以获取最新的安全补丁和功能更新,提升系统的安全性。

同时,用户还应该关注yum自身的安全漏洞和更新。随着安全研究的深入,可能会发现yum或其依赖组件存在安全漏洞。因此,定期查看官方安全公告并应用相关更新是非常重要的。

十三、yum的常见问题与解决方案

在使用yum时,可能会遇到一些常见问题,如依赖关系错误、软件包冲突、无法连接到仓库等。下面是一些常见问题的解决方案:

依赖关系错误:当yum提示依赖关系问题时,通常是因为要安装的软件包与系统中的其他软件包存在冲突或缺失依赖项。可以尝试使用yum update命令更新系统,或者安装缺失的依赖项。
软件包冲突:有时,尝试安装的软件包可能与已安装的软件包存在版本冲突。在这种情况下,可以使用yum replace命令替换冲突的软件包,或者先删除已安装的软件包再尝试安装新版本。
无法连接到仓库:如果yum无法连接到远程仓库,可能是由于网络问题或仓库地址错误。可以检查网络连接,并确认仓库地址是否正确。此外,也可以尝试清除缓存并重新生成缓存。

yum在执行软件包管理操作时会产生日志记录,这对于故障排除和审计非常有用。默认情况下,yum的日志文件位于/var/log/yum.log。通过查看这些日志文件,用户可以了解yum操作的详细信息,包括安装、更新和删除的软件包、依赖关系解析结果以及任何错误或警告消息。

十四、yum与DNF的关系及未来展望

虽然yum在CentOS中一直发挥着重要的作用,但随着技术的不断发展和新的Linux发行版的出现,一些替代方案也逐渐崭露头角。例如,dnf(Dandified YUM)是yum的下一代版本,它在性能、依赖关系解析和插件支持等方面进行了改进。旨在提供更快、更稳定、更灵活的包管理体验。在Fedora等发行版中,dnf 已经取代了yum成为默认的包管理工具。

然而,对于许多CentOS用户来说,yum 仍然是一个稳定可靠的选择。它简单易用,功能强大,能够满足大多数用户的需求。在未来,随着CentOS和其衍生版本的不断发展,我们可能会看到更多的包管理工具出现,但yum 仍然会是一个重要的里程碑。

虽然yum在CentOS等老版本系统中仍然广泛使用,但随着时间的推移和系统的升级,DNF可能会逐渐取代yum成为主流的包管理工具。因此,对于系统管理员和开发人员来说,了解并熟悉DNF的使用和管理是很有必要的。

随着技术的不断发展和系统的升级,我们需要不断学习和适应新的管理工具和技术,以更好地管理Linux系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/2594.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自建网站遇到的问题记录

1.nginx部署包含websocket的项目,报错:Handshake failed due to invalid Upgrade header: null 原因:nginx 反向代理服务器忽略了headers中的:Upgrade:websocket。 解决办法:在 Nginx ,location 中添加…

探索未来的区块链DApp应用,畅享数字世界的无限可能

随着区块链技术的飞速发展,分布式应用(DApp)正成为数字经济中的一股强劲力量。DApp以其去中心化、透明公正的特点,为用户带来了全新的数字体验,开创了数字经济的新潮流。作为一家专业的区块链DApp应用开发公司&#xf…

Qt: windows下关闭系统窗体

简介 之前做了个自动烧录工具&#xff0c;但是有些烧录时出现的一些烦人的弹窗需要解决&#xff0c; 刚好找到一个方法在这里记录一下。 代码 工程文件.pro加入 LIBS -luser32 #include <Windows.h> #include <vector>// 枚举所有顶级窗口 EnumWindows(EnumWind…

3月黄油奶酪行业数据分析:安佳和妙可蓝多领军市场

近些年来&#xff0c;随着新消费主义盛行&#xff0c;老少皆宜的黄油和奶酪逐渐成为都市年轻人的烘培“新宠”。 今年3月份&#xff0c;黄油奶酪表现的中规中矩&#xff0c;处在稳定发展阶段。根据鲸参谋数据显示&#xff0c;3月份&#xff0c;在线上综合电商平台&#xff08;…

凌恩病原微生物检测系统上线啦,助力环境病原微生物检测

病原微生物是指能够引起人类或动物疾病的微生物&#xff0c;包括病毒、细菌、真菌、衣原体和支原体等。病原微生物可以通过空气、体液等介质传播&#xff0c;危害人体健康&#xff0c;造成财产损失。因此&#xff0c;快速、准确地检测病原微生物对于疫情防控和保障人民生命健康…

MATLAB基础应用精讲-【数模应用】卡方分析(补充篇)

目录 前言 几个高频面试题目 卡方检验与方差分析、t检验有什么区别? 1)方差分析 2)T检验

各类数据引擎指定schema或者数据库

背景 以hive为例&#xff0c;如果某个hive引擎&#xff0c;有my_test、test_dd、test_xx、aqtest0228数据库某张表的数据&#xff0c;如果需要查询某个库的数据&#xff0c;需要带库名&#xff0c;否则会报错。 sql语句如下 SELECT * FROM aqtest0228.t_bz_zl_ss_zyxx_wrw…

leetcode--1--两数之和

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案…

VSCode通过跳板机免密连接远程服务器的解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…

内联函数与宏定义

内联函数 以inline修饰的函数叫做内联函数&#xff0c;编译时C编译器会在调用内联函数的地方展开&#xff0c;没有函数调用建立栈帧的开销&#xff0c;内联函数提升程序运行的效率。减少函数栈帧的开辟和销毁&#xff0c;如当频繁调用一个函数的时候&#xff0c;此时消耗栈帧的…

pytorch-解决过拟合之regularization

目录 1.解决过拟合的方法2. regularization2. regularization分类3. pytorch L2 regularization4. 自实现L1 regularization5. 完整代码 1.解决过拟合的方法 更多的数据降低模型复杂度 regularizationDropout数据处理早停止 2. regularization 以二分类的cross entropy为例&…

上海亚商投顾:沪指缩量调整 有色、煤炭等周期股集体大跌

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 沪指昨日缩量调整&#xff0c;午后一度跌近1%&#xff0c;黄白二线走势分化&#xff0c;微盘股指数涨超3%。军…

GLM4——Function calling(函数调用)

作用: Function Calling可以根据用户的输入自行判断何时需要调用哪些函数&#xff0c;并且可以根据目标函数的描述生成符合要求的请求参数。开发人员可以使用函数调用能力&#xff0c;通过GPT实现&#xff1a; 在进行自然语言交流时&#xff0c;通过调用外部工具回答问题&…

[图解敏捷口号]普天之下皆我妈-01-新手一次走两步

0 00:00:00,830 --> 00:00:03,750 今天我们来看一句敏捷口号 1 00:00:04,030 --> 00:00:05,660 后面我们会 2 00:00:06,300 --> 00:00:09,570 列一些比较幼稚的口号 3 00:00:09,970 --> 00:00:11,145 一句一句 4 00:00:11,145 --> 00:00:12,790 我们来剖析一…

超级牛逼 专业的 js 汉字拼音转换库

pinyin-pro 是一个专业的 js 汉字拼音转换库&#xff0c;功能丰富、准确率高、性能优异。 &#x1f3a8; 特色功能 支持拼音/声母/韵母/首字母/音调/全部信息支持人名姓氏模式支持文本和拼音匹配支持自定义拼音支持获取带拼音汉字的 HTML 字符串支持获取汉字的所有拼音支持拼音…

SpringBoot 启动控制台 --banner.txt实现打印炫酷控制台图案

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 分析源代码&#xff0c;banner.txt实现打印控制台 控制台图案生成网址&#xff1a;Ascii艺术字实现个性化Spring Boot启动banner图案&#xff0c;轻松修改更换banner.txt文件内容&#xff0c;收集了丰富…

SSL证书安装失败怎么办?

在互联网时代&#xff0c;SSL&#xff08;Secure Sockets Layer&#xff09;证书已成为保障网站数据传输安全、提升用户信任度的重要工具。然而&#xff0c;在实际操作过程中&#xff0c;SSL证书的安装并非总能一帆风顺&#xff0c;有时会遇到各种导致安装失败的问题。本文将详…

munge服务启动异常问题记录

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、问题一:cannot canonicalize "/var/run/munge"二、问题二&#xff1a;Failed to create "/var/run/munge/munge.socket.2.lock": Perm…

微前端集成模式:独立部署与共享依赖

微前端是一种将复杂的前端应用程序拆分为多个独立的、可独立部署的子应用的架构模式。在微前端中&#xff0c;每个子应用都可以独立开发、测试和部署&#xff0c;而不会影响其他子应用的运行。 在微前端中&#xff0c;有两种常见的集成模式&#xff1a;独立部署和共享依赖。 独…

美硕科技授权世强硬创代理,继电器具备控制功率小、电磁干扰小特点

受工业自动化、智能制造、物联网以及可再生能源等领域发展的推动&#xff0c;全球继电器市场在过去几年中持续增长&#xff0c;预计未来几年将继续保持这一趋势。 为满足日益增长的市场需求&#xff0c;世强先进&#xff08;深圳&#xff09;科技股份有限公司&#xff08;下称…