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

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

  •  
  •   shuiguomayi · 364 天前 via iPhone · 3544 次点击
    这是一个创建于 364 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

    对于旧包,很多包管理器都提供清理不再需要的依赖的功能(比如 apt autoremove ),或者清理旧版本仓库中存在的包,但是新版本仓库已经移除的包( aptitude purge '~o')
    terrancesiu
        14
    terrancesiu  
       363 天前
    如果是商业级的,比如 rhel ,无论是 uat 还是 prod ,我们都是直接 yum update 。但是如果是社区的,不敢用。
    0superx0
        15
    0superx0  
       363 天前
    旧系统又不是不能用.
    还在 ubuntu 18.04
    yanqiyu
        16
    yanqiyu  
       363 天前 via Android
    不是大拿,也不是运维,手里服务器只有自己的 all in boom

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

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

    每隔几个版本会检查遗漏下来的无用包,比如被发行版 orphan 的包/因为发行版技术迁移不再有用的包(比如 podman 抛弃了的 cni ),还有删掉残留的 etc 下面的文件云云
    wheat0r
        17
    wheat0r  
       363 天前
    生产环境,能跑就不动。
    什么?你说有安全漏洞?
    我我这边有 IPS 和 WAF 产品可以为您做一个方案。
    jqtmviyu
        18
    jqtmviyu  
       363 天前
    不是大拿.
    服务器装 debian, 几年不用管, 服务器到期了, 系统还没停止维护呢. 换服务器, 把 home 目录打包就下, 跑的几乎都是 docker.
    桌面装 arch, 专治不升不舒服.
    livexia
        19
    livexia  
       363 天前 via Android
    多多升级就行了,不是大拿,最初用 linux 的确会担心,不过用的久了挂了其实也有办法,一步步做好记录,可以提前设想回退和恢复的方法。
    8675bc86
        20
    8675bc86  
       363 天前
    这么多担心用啥 linux
    ryan4yin
        21
    ryan4yin  
       363 天前
    企业一般都是建新机器/集群然后再蓝绿/灰度发布,个人环境就看你自己了,有资源走企业这套当然是最稳的,没资源可以赌一把....
    julyclyde
        22
    julyclyde  
       363 天前
    正常情况下我们不更新底层操作系统啊

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

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