再次来求教经验了,怎么样做坑更少更省事呢?
如果大拿们使用的是基于版本制的系统,比如 fedora 和 ubuntu ,一个版本用久了之后软件仓库里的版本肯定会旧,如果贸然使用下一个版本的软件仓库就会担心装出问题来,或者就是按照官方文档跨大版本升级,不过这样也会担心把系统升挂,或者升级成功后留下一大堆垃圾包的问题。大拿们是怎么做选择的呢,直接下载新版本的 ISO 新装一遍系统吗?还是有更好的方法?
1
duron600 2023-12-31 16:47:07 +08:00
不是大拿
|
2
mushuanl 2023-12-31 16:49:32 +08:00 via iPhone
一般应用和业务运行在 docker 或 k8s 内,主系统升级不影响
|
3
mantouboji 2023-12-31 16:58:14 +08:00 via iPhone
那你不会另外找一台机器先做个测试?
|
4
vcn8yjOogEL 2023-12-31 17:00:49 +08:00
桌面用声明式发行版, 例如 nix 和 silverblue
服务器做好准备直接重装, 过程尽可能自动化 |
5
seers 2023-12-31 17:09:30 +08:00
从来不升级,能跑为啥要动它( doge
|
6
weeei 2023-12-31 17:10:04 +08:00
Docker 就是解决这种问题的,操作系统随便更新。
|
7
wangfeng3769 2023-12-31 17:10:22 +08:00
Ubuntu18.04 基本不需要升级,挺好用的
|
8
weeei 2023-12-31 17:11:32 +08:00
@seers 一般来说,遇到大特性的时候,忍不住手痒想炫技一番,比如想以前提前用上 HTTP/2 就会搞不成熟的 OpenSSL 重新编译 nginx
|
9
bobryjosin 2023-12-31 17:13:47 +08:00
重要服务会追求稳定,如果能用我会选择不更新,要么就用容器就不挑环境,不痛不痒的我会选择虚拟机拍个快照,然后再一把梭,梭挂了复原快照无事发生,然后克隆同样的环境再测试。
|
10
bobryjosin 2023-12-31 17:14:19 +08:00
重要服务会追求稳定,如果能用我会选择不更新,要么就用容器不挑环境,不痛不痒的我会选择虚拟机拍个快照,然后再一把梭,梭挂了复原快照无事发生,然后克隆同样的环境再测试。
|
11
wangkun025 2023-12-31 17:43:47 +08:00
开发还是生产?
生产的话,这问题是运维该操心的,否则要他们何用。 开发的话,一般直接升级就可以。搞个 timeshift 备份下,就可以自由飞翔了。 至于软件仓库什么的,操作系统都能处理好的。 起码我升级 ubuntu 的 lts 和 fedora 没有出现过问题。当然也许是我的开发环境不太复杂吧。 |
12
QinYu0226 2023-12-31 19:38:30 +08:00
我很多东西都是用 Docker 跑,只要兼容 Docker 上面没有问题,其实都没有大问题。我选择跨大版本更新。
|
13
cnt2ex 2023-12-31 23:04:34 +08:00
按照官方文档给的步骤更新就是了。
上游在打包的时候,自然会控制不同版本的仓库间的包不会出现太大的跨度。比如某个包从 v1 升级到 v2 ,这种升级一般都不会出太大的问题。 滚动更新是因为根本无法预测到底是从哪个版本升级到哪个版本,所以长时间不更新后再次更新,从 v1 一下升级到 v10 (只是据个例子,现实不一定会遇到),遇到复杂的依赖问题,自然容易滚挂。 对于旧包,很多包管理器都提供清理不再需要的依赖的功能(比如 apt autoremove ),或者清理旧版本仓库中存在的包,但是新版本仓库已经移除的包( aptitude purge '~o') |
14
terrancesiu 2023-12-31 23:09:22 +08:00
如果是商业级的,比如 rhel ,无论是 uat 还是 prod ,我们都是直接 yum update 。但是如果是社区的,不敢用。
|
15
0superx0 2023-12-31 23:38:44 +08:00
旧系统又不是不能用.
还在 ubuntu 18.04 |
16
yanqiyu 2024-01-01 02:05:54 +08:00 via Android
不是大拿,也不是运维,手里服务器只有自己的 all in boom
忘了从什么版本开始了,一直是 Fedora Server ,基本上追着 Fedora 官方版本(升级一直在发行一周之后),硬件都换过一次但是系统盘和里面的系统一直没换。迁移到了 btrfs 之后也每次升级都打快照,不过一次也没用上过 炸掉服务只有一次,就是默认切换 cgroupv2 炸了所有 docker (或者叫做 moby )容器,docker 当时完全不支持 cgroupv2 也就切换了 podman 了事了 每隔几个版本会检查遗漏下来的无用包,比如被发行版 orphan 的包/因为发行版技术迁移不再有用的包(比如 podman 抛弃了的 cni ),还有删掉残留的 etc 下面的文件云云 |
17
wheat0r 2024-01-01 02:45:42 +08:00
生产环境,能跑就不动。
什么?你说有安全漏洞? 我我这边有 IPS 和 WAF 产品可以为您做一个方案。 |
18
jqtmviyu 2024-01-01 04:12:42 +08:00
不是大拿.
服务器装 debian, 几年不用管, 服务器到期了, 系统还没停止维护呢. 换服务器, 把 home 目录打包就下, 跑的几乎都是 docker. 桌面装 arch, 专治不升不舒服. |
19
livexia 2024-01-01 11:08:37 +08:00 via Android
多多升级就行了,不是大拿,最初用 linux 的确会担心,不过用的久了挂了其实也有办法,一步步做好记录,可以提前设想回退和恢复的方法。
|
20
8675bc86 2024-01-01 11:49:40 +08:00
这么多担心用啥 linux
|
21
ryan4yin 2024-01-01 13:30:06 +08:00
企业一般都是建新机器/集群然后再蓝绿/灰度发布,个人环境就看你自己了,有资源走企业这套当然是最稳的,没资源可以赌一把....
|
22
julyclyde 2024-01-01 21:44:01 +08:00
正常情况下我们不更新底层操作系统啊
自研的应用程序对新版操作系统的适配是一个单独的项目,要投入资源的 |
23
libook 2024-01-02 11:15:17 +08:00
用 Debian 比较多,基本上都是按照官方文档大版本升级,升级之前做个备份,如果你用 Btrfs 之类支持快照的文件系统打快照更方便,升出问题了就回滚快照,前提是硬盘空间得够,不过即便空间不够,Linux 转移数据到大盘上也挺容易的。
垃圾包可以通过在升级系统的时候使用 apt full-upgrade (据说 dnf upgrade 类似)之类的指令可以自动删除一些在依赖树中不重要的包,升完之后可以用 apt autoremove 之类的指令清除未被依赖的库包,不过用的时候要看清楚会删哪些,是不是会删一些有用的包。 |