首页
TVP 最新优惠活动
学习
活动
专区
工具
返回腾讯云官网
Yum是在Red Hat、CentOS和其他使用RPM软件包管理器的Linux发行版上使用的软件包管理器。 Yum用于安装、更新、删除或以其他方式操纵这些Linux系统上安装的软件包。
在本教程中,我们将介绍yum update命令–它的用途、使用方法以及您希望在系统上升级已安装的软件包时可能需要知道的所有其他命令。
Yum update
Yum update是用于更新系统上安装的应用程序的命令。如果在未指定任何软件包名称的情况下运行该命令,它将更新系统上当前安装的每个软件包。
$ yum update
运行此命令时,yum首先将检查其存储库以获取系统当前已安装的软件的更新版本。下面的屏幕截图展示的是您首次发出yum update命令时通常会看到的输出类型。
yum update命令如您所见,yum的输出首先列出了它所查询的存储库,它们是CentOS的默认存储库:AppStream、Base和Extras。在这个下面,yum还列出了已找到其更新的各种软件包。
在此输出的末尾,yum将显示“事务摘要”,其中显示要安装和升级的软件包总数。
yum更新汇总在此示例中,将升级166个软件包,并安装6个新软件包。
在升级应用程序时需要安装新软件包的原因是,某些新软件包可能已成为该Linux发行版的一部分,或者某些升级后的应用程序可能依赖于尚未安装的其他软件包。
在查看了yum计划升级的软件的列表之后,您可以通过键入“ y”并按Enter来确认这些更改。
然后Yum将执行升级,这可能需要一些时间,具体取决于您的连接速度和系统本身。
完成后,您将获得一个最终摘要,其中将列出所有已成功升级的软件包以及可能遇到的任何错误。
无需gpg检查即可更新
GPG密钥用于验证RPM软件包的真实性。yum中的–nogpgcheck选项将指示它跳过检查软件包上的GPG签名验证。如果您有未签名的软件包或没有GPG密钥的情况下,这就会非常有用了。
$ yum update --nogpgcheck
当运行普通的yum update命令时,遇到诸如“ Package NameOfPackage.rpm is not signed .. install failed!”之类的错误,nogpgcheck选项忽略此警告,并继续进行软件包升级,就会是一个好的解决方法。
从本地仓库更新
可以为yum设置本地存储库,以便在更新时进行查询。如果要使用yum更新默认存储库中未包含的软件包,或者需要升级离线系统,通常可以这样做。
首先,将所有更新的RPM文件放置在新文件夹中。在此示例中,我们将使用/ root / rpms。
接下来,导航到以下目录,您可以在其中查看yum的所有repo文件:
$ cd /etc/yum.repos.d
本地repo文件要设置本地存储库,请在此目录中创建一个新文件。
$ vi MyRepo.repo
在您的repo文件中,以这种格式配置它,并根据需要更改行:
[MyRepo]
name=My Local Repo
baseurl=file:///root/rpms
enabled=1
gpgcheck=0
本地存储库和远程存储库之间的最大区别在于“ baseurl”行,其中file://protocol指定本地文件,而不是远程协议http://或ftp://
保存文件后,请应用正确的权限:
$ chmod 644 MyRepo.repo
现在应该可以使用该存储库了。在尝试执行yum update命令之前,请确保清除yum的缓存:
$ yum clean all
显示补丁
Yum可以使用以下命令显示可用的安全补丁,而无需安装它们:
$ yum updateinfo list security
如果未返回任何输出(如上面的屏幕截图所示),则意味着您的系统上没有任何安全补丁可用于已安装的软件。
更新单个包
如果您需要更新某个程序包而不为安装的每个应用程序都运行更新,则只需在yum update命令中指定程序包的名称即可。
$ yum update name-of-package
yum更新程序包名称可以指定多个软件包,以空格分隔就好。您需要正确输入软件包的名称,以便yum在其存储库中找到它。如果不确定软件包名称,可以首先检查下当前哪些软件包可以进行更新:
$ yum check-update
除某个软件包外其他的都更新
如果需要运行yum update命令,但希望排除某一个软件包不更新,则可以指定–exclude选项。
管理员可能会发现这种情况通常是指内核更新,如果发生错误的话影响会比较大,但又想更新一些不是特别敏感的应用程序。
要排除的软件包(在此示例中,指的是与内核相关的软件包):
$ yum update --exclude=kernel*
如果有多个相关软件包,或者不知道软件包的全名,则星号可以用作通配符来代替。
或者:
$ yum update -x 'kernel*'
排除多个软件包
您可以使用更多–exclude来排除多个软件包。
$ yum update --exclude=kernel* --exclude=httpd
使用此标志或根据需要多次使用-x。
检查上次yum更新运行情况
要查看yum事务的列表以及运行的日期和时间,请使用yum history命令。
$ yum history
在上面的屏幕截图中,您可以看到yum更新软件的最后一次发布是1月4日。
回滚(还原)更新
yum的一个重要功能是,它允许您撤消最近的更新,从而将升级后的软件包还原到其以前的版本。
每个yum操作(安装、更新、删除等)都分配有一个事务ID,并且在撤消yum更新时必须指定此ID。要查看最近的yum操作的事务ID列表,请使用以下命令:
$ yum history
在上面的屏幕截图中,您可以看到yum上次运行的操作是安装httpd软件包。撤消安装或更新的工作方式相同,因此在此示例中,我们将撤消最近安装的httpd。如屏幕截图所示,其ID为7。
要撤消此更改并将程序回滚到以前的版本,发出以下命令:
$ yum history undo 7
然后,yum会总结要进行的更改,并询问您是否要继续输入“ Y / N”。输入Y,指定的事务将被撤消。
清理失败的yum更新(故障排除)
如果运行yum update命令时一个或多个软件包未能成功升级,则系统最终可能会安装重复的软件包(同一程序的2个版本)。
有时,按照上面部分中的回滚说明可以解决此问题。如果这不起作用,则可以使用以下命令在系统上删除重复的软件包:
$ package-cleanup --dupes
Yum存储有关包、元数据和头文件的信息的高速缓存。如果遇到错误,清除yum的缓存是解决问题的第一步。使用以下命令执行此操作:
$ yum clean all
跳过错误
在更新或安装软件包时,该软件包可能需要其他软件才能正确运行。Yum意识到这些依赖关系,并将在更新期间通过安装或升级所需的额外软件包来尝试解决它们。
如果yum在安装必要的依赖项时遇到问题,则会产生错误,并且不会继续执行命令。如果您有其他需要更新的软件包,这就回是一个问题。
要指示yum继续更新其他软件包并跳过依赖项损坏的软件包,可以在yum update命令中指定–skip-broken命令。
$ yum update --skip-broken
获取需要更新的软件包列表
正常运行yum update命令,不带其他选项,将输出可用更新列表。
$ yum update
如果您想查看有关可用软件包更新的其他信息,请输入以下命令:
$ yum updateinfo
要查看有关系统可用的安全更新的信息,请键入以下命令:
$ yum updateinfo security
yum check更新和list 更新之间的区别
尽管这两个命令听起来很相似,但是其实是有区别的。
$ yum list updates
上面显示的list 更新的命令将列出存储库中所有可用更新的软件包。但是存储库中的一些包甚至可能没有安装到您的系统上。
$ yum check-update
yum检查更新如上所示,check更新的命令是一种检查更新而不会提示用户的方法。例如,如果您要编写脚本以检查更新,则可以选择此命令。
如果有可用更新的软件包,则check-update命令将返回一个退出值100;如果没有可用更新,则它将返回退出值0。
如果遇到错误,则返回值1。使用这些退出代码对脚本进行相应编码。
有可用更新时通知
有一些软件包可以帮助您管理系统上的yum更新。当yum有可供安装的更新时,有些甚至可以通知管理员。其中一种这样的服务称为yum-cron。
使用yum安装yum-cron:
$ yum install yum-cron
将yum-cron服务设置为在启动时启动:
$ systemctl enable yum-cron.service
$ systemctl start yum-cron.service
使用vi或首选的文本编辑器在配置文件中配置yum-cron的设置:
$ vi /etc/yum/yum-cron.conf
在此文件中,你可以指定是否应自动应用更新。如果您只想接收通知,在配置文件中填写电子邮件信息就可以了。然后,只要系统有可用的更新,Yum-cron就会向你发送电子邮件通知你。
apply_updates = no #don’t apply updates automatically
email_from = root@localhost
email_to = admin@example.com
email_host = localhost
yum更新使用哪个端口
Yum在检查更新时使用端口80。如果您查看系统上的存储库文件,则会看到其中的所有链接均以http开头。
如果需要在防火墙中创建规则来允许yum工作,则需要允许端口80。
Yum更新与升级
到目前为止,在本教程中我们只讨论了yum update命令,但是还有另一个非常相似的命令:yum upgrade。
$ yum upgrade
yum升级这两个命令之间有很小的区别。yum update将更新您系统上的软件包,但跳过删除过时的软件包这一步。
Yum upgrade更新系统上的所有软件包的同时,也会删除过时的软件包。
这从本质上来看,yum update更安全,因为您不必担心在更新软件时意外删除必要的软件包。
发出yum upgrade命令时,请谨慎使用,因为它可能不会保留您仍在使用的某些软件包。
最后,希望本教程有帮助到你!
本文分享自 SACC开源架构 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
玻璃钢生产厂家济南清远玻璃钢动物雕塑喀什地区景观玻璃钢雕塑小猪佩奇大型玻璃钢雕塑聊城玻璃钢仿真水果雕塑价格保定室外玻璃钢雕塑孟州玻璃钢雕塑厂家广东秋季商场美陈有哪些漳州园林玻璃钢雕塑价格玻璃钢蚂蚁雕塑修文玻璃钢雕塑订做四川常见商场美陈有哪些好玩的商场美陈河南花朵玻璃钢雕塑定做上海玻璃钢雕塑普工招聘松原人物玻璃钢雕塑安装哪有玻璃钢广场雕塑设计南岸玻璃钢人物雕塑泡沫玻璃钢彩绘雕塑公司上海玻璃钢广场雕塑定制镇海玻璃钢花盆花器广州环保玻璃钢雕塑订做价格揭阳玻璃钢花盆厂家直销佛山市玻璃钢雕塑公司云南环保玻璃钢雕塑定制江苏知名玻璃钢雕塑推荐厂家上海周年庆典商场美陈生产厂家东阳卡通玻璃钢雕塑定做贺州玻璃钢雕塑厂家商业商场美陈有哪些楚雄玻璃钢卡通雕塑香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万