Linux系统升级方法:yum与apt详解
时间:2025-08-03 11:48:29 494浏览 收藏
小伙伴们对文章编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《Linux系统更新方法:yum与apt升级全解析》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!
Linux系统更新的核心是通过包管理器保持系统和软件最新,以确保安全、稳定和高效运行。主流发行版如Debian/Ubuntu使用apt,Red Hat/CentOS使用yum或dnf。更新流程包括:1. 同步软件源列表(sudo apt update 或 sudo yum check-update);2. 升级软件包(sudo apt upgrade 或 sudo yum update);3. 处理依赖关系(sudo apt full-upgrade 或 sudo dnf autoremove);4. 清理无用依赖和缓存(sudo apt autoremove/clean 或 sudo yum clean all)。定期更新可及时应用安全补丁、修复bug、提升性能与兼容性。常见问题如依赖冲突可用--fix-broken参数解决,空间不足则清理缓存或旧内核,网络问题可通过更换镜像源缓解,内核更新后需重启验证,第三方软件不兼容时可回滚或重新安装。此外,还可精细化管理软件包,如指定安装/移除、搜索、锁定版本及配置仓库,增强系统掌控力。
Linux系统更新,说白了,就是让你的操作系统和其上的各种软件保持最新状态。这事儿听起来简单,但其实是确保系统安全、稳定和高效运行的关键一环。主流的Linux发行版,比如基于Debian/Ubuntu系的,用的是apt
包管理器;而Red Hat/CentOS系的,则主要依赖yum
(或者更现代的dnf
)。它们就像系统里的“管家”,负责软件的下载、安装、升级和卸载,让你的数字生活不至于一团糟。

解决方案
对于Linux系统更新,核心逻辑是先同步软件源列表,然后执行升级操作。
Debian/Ubuntu系列 (使用 apt
)

我个人习惯的流程是这样:
更新软件源列表:
sudo apt update
这步是告诉系统,去检查一下那些配置好的软件仓库里,都有哪些新的、旧的或者更新了的软件包信息。就像你拿着购物清单去超市,得先看看货架上有什么新上架的。升级已安装的软件包:
sudo apt upgrade
这条命令会根据第一步获取到的信息,升级你系统里所有可以升级的软件包,但它通常不会删除现有软件包,也不会安装新的软件包来解决依赖问题。它比较“保守”,确保升级过程尽可能平稳。深度升级(处理依赖):
sudo apt full-upgrade
有时候,仅仅upgrade
是不够的。某些软件包的升级可能需要安装新的依赖,或者移除一些旧的、冲突的软件包。full-upgrade
就是干这个的,它更“激进”一些,会智能地处理这些复杂的依赖关系。我通常在进行大版本升级或者系统很久没更新时使用它。清理不再需要的依赖:
sudo apt autoremove
升级过程中,一些旧的软件包依赖可能变得不再需要。这条命令就是用来清理这些“垃圾”的,能有效释放磁盘空间。清理下载的软件包缓存:
sudo apt clean
apt
下载的软件包文件会保存在/var/cache/apt/archives
目录下。clean
命令会删除这些缓存文件,对于磁盘空间紧张的服务器来说,这是个好习惯。
Red Hat/CentOS系列 (使用 yum
或 dnf
)
CentOS 8及以后,或者Fedora,dnf
已经取代了yum
成为默认的包管理器,但它们的使用方式非常相似。我这里就以yum
为主,顺带提一下dnf
。
检查可用的更新:
sudo yum check-update
这条命令会列出所有可用的软件包更新,但不会实际执行更新。它能让你在动手前有个大致了解。执行系统更新:
sudo yum update
这是最常用的更新命令,它会升级所有已安装的软件包到最新版本。对于yum
来说,update
和upgrade
在多数情况下行为是一致的,但dnf
中upgrade
是推荐的全面更新命令。清理不再需要的依赖(
dnf
更推荐):sudo dnf autoremove
虽然yum
也有一些清理选项,但dnf
的autoremove
功能更强大,能更好地处理不再需要的依赖包。如果你还在用yum
,可能需要手动检查或依赖一些插件。清理软件包缓存:
sudo yum clean all
或者对于dnf
:sudo dnf clean all
这会清除所有缓存的元数据和下载的软件包,同样是为了释放磁盘空间。
为什么定期更新Linux系统至关重要?
这问题,我个人觉得它不仅仅是个技术操作,更像是一种对系统健康的“投资”。很多人可能觉得更新麻烦,或者担心更新会搞坏系统。但我的经验告诉我,不更新的风险远大于更新的“麻烦”。
首先,安全补丁是头等大事。我们每天都在面对层出不穷的网络威胁和漏洞。Linux社区发现并修复漏洞的速度很快,但如果你不更新,这些补丁就永远到不了你的系统上。这就好比你家门锁有漏洞,厂家提供了新锁芯,你却懒得换,那被盗的风险自然就高了。
其次,bug修复。软件总会有bug,小到界面显示问题,大到导致服务崩溃。更新通常会包含这些bug的修复,让你的系统运行更稳定,减少莫名其妙的崩溃或错误。我之前就遇到过一个因为某个库版本过旧,导致特定应用频繁崩溃的问题,更新后瞬间解决,那种感觉就像一块大石头落了地。
再来,新功能和性能优化。新的软件版本往往会带来新的功能特性,或者对现有功能的性能进行优化。比如,一个新的内核版本可能带来更好的硬件兼容性,或者更高效的内存管理。这些“升级”虽然不那么紧急,但能实实在在地提升你的使用体验和系统效率。
最后,兼容性。随着时间的推移,新的应用程序和工具可能会依赖于较新版本的库或运行时环境。如果你系统太老,可能就无法安装或运行这些新东西,这会极大地限制你的选择和灵活性。所以,定期更新,其实也是在为未来做准备。
更新过程中可能遇到的常见问题及应对策略
即便更新是好事,但它毕竟是个涉及到系统核心的操作,出点小岔子也挺正常的。我踩过不少坑,总结了一些常见的问题和我的应对方法:
1. 依赖冲突或“破损的包”: 这是最常见的,尤其是在系统配置比较复杂或者添加了第三方PPA/仓库时。错误信息通常会提示某个包无法安装,因为它依赖于另一个特定版本的包,而那个包又和现有系统里的某个包冲突。
apt
系: 尝试sudo apt --fix-broken install
。这个命令通常能自动解决一些依赖问题。如果还不行,aptitude
是个更强大的工具,它的交互式界面能帮你分析并选择解决方案,但它不是默认安装的,需要sudo apt install aptitude
。yum
/dnf
系:yum
和dnf
在处理依赖方面通常更智能。如果遇到冲突,它们会给出详细的提示。你可以尝试sudo yum update --skip-broken
(跳过有问题的包),或者sudo dnf history undo
来回滚到更新前的状态,然后逐个排查问题包。有时候,移除有问题的第三方仓库是解决之道。
2. 磁盘空间不足:
更新需要下载新的软件包,安装后也会占用更多空间。如果/
分区空间不足,更新就会失败。
- 检查空间:
df -h
可以查看各分区的使用情况。 - 清理缓存: 前面提到的
apt clean
或yum clean all
是最直接的办法。 - 清理旧内核: Linux系统更新内核后,旧内核通常会保留。你可以手动删除旧内核,但记得保留至少一个能正常启动的旧内核作为备用。
- 清理日志:
/var/log
下的日志文件有时会很大,可以定期清理。
3. 网络问题: 更新需要从软件源下载文件,如果网络不稳定或软件源服务器有问题,更新就会失败。
- 检查网络连接:
ping baidu.com
或ping google.com
。 - 更换软件源: 有时候默认的软件源速度慢或不稳定,可以尝试更换为国内的镜像源,比如阿里云、清华大学的镜像站。这能显著提高下载速度和稳定性。
4. 内核更新后的重启: 这是个“问题”但也算不上问题。更新内核后,为了让新内核生效,通常需要重启系统。对于服务器来说,这需要提前规划停机时间。
- 规划: 在生产环境中,我通常会选择在业务低峰期进行内核更新并重启。
- 检查内核版本:
uname -r
可以查看当前运行的内核版本。重启后再次检查,确认新内核已生效。
5. 第三方软件不兼容: 有时,更新系统库后,一些手动安装的、或者从非官方源安装的第三方软件可能会出现兼容性问题。
- 查看日志: 仔细检查更新日志和应用程序的日志,找出具体的错误信息。
- 回滚或重新安装: 如果是关键业务,可以考虑回滚系统(如果之前做了快照),或者尝试重新安装受影响的第三方软件。
除了常规更新,如何更精细化地管理Linux软件包?
除了update
和upgrade
这种“一锅端”的更新方式,我们作为系统管理员或者高级用户,常常需要更精细地控制软件包。这就像你不仅仅是把所有衣服都洗一遍,而是要根据需要洗特定的衣服,甚至熨烫、修补。
1. 安装/移除特定软件包:
apt
:sudo apt install
安装,sudo apt remove
移除(保留配置文件),sudo apt purge
彻底移除(包括配置文件)。yum
/dnf
:sudo yum install
安装,sudo yum remove
移除。dnf
的命令基本一致。
2. 搜索软件包: 当你不知道某个功能对应的软件包叫什么时,搜索功能就很有用了。
apt
:apt search
。它会搜索软件包名称和描述。yum
/dnf
:yum search
或dnf search
。
3. 查看已安装的软件包: 想知道系统里都有哪些软件?
apt
:apt list --installed
。yum
/dnf
:yum list installed
或dnf list installed
。
4. 阻止特定软件包更新(“hold”): 有时候你可能不希望某个软件包被更新,比如它可能和某个特定应用有兼容性问题,或者你就是想保持旧版本。
apt
:sudo apt-mark hold
。要解除阻止,用sudo apt-mark unhold
。yum
/dnf
: 可以通过配置/etc/yum.conf
或/etc/dnf/dnf.conf
中的exclude
参数来排除软件包,或者使用dnf versionlock
。这个功能我用得不多,但偶尔确实能救急。
5. 管理软件仓库(Repositories): 系统更新和软件包管理的核心在于软件仓库。
apt
系: 仓库配置在/etc/apt/sources.list
文件和/etc/apt/sources.list.d/
目录下的.list
文件中。你可以添加PPA(Personal Package Archive)来获取一些官方仓库没有的软件,或者移除不再需要的仓库。添加PPA通常用sudo add-apt-repository ppa:
。yum
/dnf
系: 仓库配置在/etc/yum.repos.d/
或/etc/dnf/repos.d/
目录下的.repo
文件中。你可以手动创建或编辑这些文件来添加或修改仓库。启用/禁用仓库可以通过编辑.repo
文件中的enabled=1/0
来实现。
这些更精细化的操作,能让你对自己的Linux系统有更强的掌控力。毕竟,一个好的系统管理员,不应该只是简单地敲命令,更重要的是理解命令背后的逻辑和可能带来的影响。
以上就是《Linux系统升级方法:yum与apt详解》的详细内容,更多关于的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
238 收藏
-
253 收藏
-
237 收藏
-
251 收藏
-
250 收藏
-
127 收藏
-
406 收藏
-
358 收藏
-
248 收藏
-
214 收藏
-
499 收藏
-
243 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 511次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 498次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习