V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
shuiguomayi
V2EX  ›  Linux

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

  •  
  •   shuiguomayi · 2023-12-31 16:42:16 +08:00 via iPhone · 3548 次点击
    这是一个创建于 367 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    对于旧包,很多包管理器都提供清理不再需要的依赖的功能(比如 apt autoremove ),或者清理旧版本仓库中存在的包,但是新版本仓库已经移除的包( aptitude purge '~o')
    terrancesiu
        14
    terrancesiu  
       2023-12-31 23:09:22 +08:00
    如果是商业级的,比如 rhel ,无论是 uat 还是 prod ,我们都是直接 yum update 。但是如果是社区的,不敢用。
    0superx0
        15
    0superx0  
       2023-12-31 23:38:44 +08:00
    旧系统又不是不能用.
    还在 ubuntu 18.04
    yanqiyu
        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 下面的文件云云
    wheat0r
        17
    wheat0r  
       2024-01-01 02:45:42 +08:00
    生产环境,能跑就不动。
    什么?你说有安全漏洞?
    我我这边有 IPS 和 WAF 产品可以为您做一个方案。
    jqtmviyu
        18
    jqtmviyu  
       2024-01-01 04:12:42 +08:00
    不是大拿.
    服务器装 debian, 几年不用管, 服务器到期了, 系统还没停止维护呢. 换服务器, 把 home 目录打包就下, 跑的几乎都是 docker.
    桌面装 arch, 专治不升不舒服.
    livexia
        19
    livexia  
       2024-01-01 11:08:37 +08:00 via Android
    多多升级就行了,不是大拿,最初用 linux 的确会担心,不过用的久了挂了其实也有办法,一步步做好记录,可以提前设想回退和恢复的方法。
    8675bc86
        20
    8675bc86  
       2024-01-01 11:49:40 +08:00
    这么多担心用啥 linux
    ryan4yin
        21
    ryan4yin  
       2024-01-01 13:30:06 +08:00
    企业一般都是建新机器/集群然后再蓝绿/灰度发布,个人环境就看你自己了,有资源走企业这套当然是最稳的,没资源可以赌一把....
    julyclyde
        22
    julyclyde  
       2024-01-01 21:44:01 +08:00
    正常情况下我们不更新底层操作系统啊

    自研的应用程序对新版操作系统的适配是一个单独的项目,要投入资源的
    libook
        23
    libook  
       2024-01-02 11:15:17 +08:00
    用 Debian 比较多,基本上都是按照官方文档大版本升级,升级之前做个备份,如果你用 Btrfs 之类支持快照的文件系统打快照更方便,升出问题了就回滚快照,前提是硬盘空间得够,不过即便空间不够,Linux 转移数据到大盘上也挺容易的。

    垃圾包可以通过在升级系统的时候使用 apt full-upgrade (据说 dnf upgrade 类似)之类的指令可以自动删除一些在依赖树中不重要的包,升完之后可以用 apt autoremove 之类的指令清除未被依赖的库包,不过用的时候要看清楚会删哪些,是不是会删一些有用的包。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   997 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:05 · PVG 03:05 · LAX 11:05 · JFK 14:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.