使用版本制的 Linux 大拿遇到系统更新是怎么做的?

2023-12-31 16:42:16 +08:00
 shuiguomayi

再次来求教经验了,怎么样做坑更少更省事呢?

如果大拿们使用的是基于版本制的系统,比如 fedora 和 ubuntu ,一个版本用久了之后软件仓库里的版本肯定会旧,如果贸然使用下一个版本的软件仓库就会担心装出问题来,或者就是按照官方文档跨大版本升级,不过这样也会担心把系统升挂,或者升级成功后留下一大堆垃圾包的问题。大拿们是怎么做选择的呢,直接下载新版本的 ISO 新装一遍系统吗?还是有更好的方法?

3582 次点击
所在节点    Linux
23 条回复
duron600
2023-12-31 16:47:07 +08:00
不是大拿
mushuanl
2023-12-31 16:49:32 +08:00
一般应用和业务运行在 docker 或 k8s 内,主系统升级不影响
mantouboji
2023-12-31 16:58:14 +08:00
那你不会另外找一台机器先做个测试?
vcn8yjOogEL
2023-12-31 17:00:49 +08:00
桌面用声明式发行版, 例如 nix 和 silverblue
服务器做好准备直接重装, 过程尽可能自动化
seers
2023-12-31 17:09:30 +08:00
从来不升级,能跑为啥要动它( doge
weeei
2023-12-31 17:10:04 +08:00
Docker 就是解决这种问题的,操作系统随便更新。
wangfeng3769
2023-12-31 17:10:22 +08:00
Ubuntu18.04 基本不需要升级,挺好用的
weeei
2023-12-31 17:11:32 +08:00
@seers 一般来说,遇到大特性的时候,忍不住手痒想炫技一番,比如想以前提前用上 HTTP/2 就会搞不成熟的 OpenSSL 重新编译 nginx
bobryjosin
2023-12-31 17:13:47 +08:00
重要服务会追求稳定,如果能用我会选择不更新,要么就用容器就不挑环境,不痛不痒的我会选择虚拟机拍个快照,然后再一把梭,梭挂了复原快照无事发生,然后克隆同样的环境再测试。
bobryjosin
2023-12-31 17:14:19 +08:00
重要服务会追求稳定,如果能用我会选择不更新,要么就用容器不挑环境,不痛不痒的我会选择虚拟机拍个快照,然后再一把梭,梭挂了复原快照无事发生,然后克隆同样的环境再测试。
wangkun025
2023-12-31 17:43:47 +08:00
开发还是生产?
生产的话,这问题是运维该操心的,否则要他们何用。
开发的话,一般直接升级就可以。搞个 timeshift 备份下,就可以自由飞翔了。
至于软件仓库什么的,操作系统都能处理好的。
起码我升级 ubuntu 的 lts 和 fedora 没有出现过问题。当然也许是我的开发环境不太复杂吧。
QinYu0226
2023-12-31 19:38:30 +08:00
我很多东西都是用 Docker 跑,只要兼容 Docker 上面没有问题,其实都没有大问题。我选择跨大版本更新。
cnt2ex
2023-12-31 23:04:34 +08:00
按照官方文档给的步骤更新就是了。

上游在打包的时候,自然会控制不同版本的仓库间的包不会出现太大的跨度。比如某个包从 v1 升级到 v2 ,这种升级一般都不会出太大的问题。

滚动更新是因为根本无法预测到底是从哪个版本升级到哪个版本,所以长时间不更新后再次更新,从 v1 一下升级到 v10 (只是据个例子,现实不一定会遇到),遇到复杂的依赖问题,自然容易滚挂。

对于旧包,很多包管理器都提供清理不再需要的依赖的功能(比如 apt autoremove ),或者清理旧版本仓库中存在的包,但是新版本仓库已经移除的包( aptitude purge '~o')
terrancesiu
2023-12-31 23:09:22 +08:00
如果是商业级的,比如 rhel ,无论是 uat 还是 prod ,我们都是直接 yum update 。但是如果是社区的,不敢用。
0superx0
2023-12-31 23:38:44 +08:00
旧系统又不是不能用.
还在 ubuntu 18.04
yanqiyu
2024-01-01 02:05:54 +08:00
不是大拿,也不是运维,手里服务器只有自己的 all in boom

忘了从什么版本开始了,一直是 Fedora Server ,基本上追着 Fedora 官方版本(升级一直在发行一周之后),硬件都换过一次但是系统盘和里面的系统一直没换。迁移到了 btrfs 之后也每次升级都打快照,不过一次也没用上过

炸掉服务只有一次,就是默认切换 cgroupv2 炸了所有 docker (或者叫做 moby )容器,docker 当时完全不支持 cgroupv2
也就切换了 podman 了事了

每隔几个版本会检查遗漏下来的无用包,比如被发行版 orphan 的包/因为发行版技术迁移不再有用的包(比如 podman 抛弃了的 cni ),还有删掉残留的 etc 下面的文件云云
wheat0r
2024-01-01 02:45:42 +08:00
生产环境,能跑就不动。
什么?你说有安全漏洞?
我我这边有 IPS 和 WAF 产品可以为您做一个方案。
jqtmviyu
2024-01-01 04:12:42 +08:00
不是大拿.
服务器装 debian, 几年不用管, 服务器到期了, 系统还没停止维护呢. 换服务器, 把 home 目录打包就下, 跑的几乎都是 docker.
桌面装 arch, 专治不升不舒服.
livexia
2024-01-01 11:08:37 +08:00
多多升级就行了,不是大拿,最初用 linux 的确会担心,不过用的久了挂了其实也有办法,一步步做好记录,可以提前设想回退和恢复的方法。
8675bc86
2024-01-01 11:49:40 +08:00
这么多担心用啥 linux

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1004813

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX