programV2
BV2EX  ›  Linux

V 友们 请问 Ubuntu 升级软件包和內核会有兼容性问题吗?🙏

  •  
  •   programV2 · 2021-09-04 14:40:45 +08:00 · 998 次点击
    这是一个创建于 389 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Ubuntu 是可以跨版本升级的。请问 如果 apt-get upgrade 升级 OS 系统版本 16 到 18,已安装的软件版本也会升级到最新的 stable 版本吗? 如果会升级的话,如何保证能够兼容旧的配置文件? 。谢谢指点🙏

    13 条回复    2021-09-05 12:26:42 +08:00
    Judoon
        1
    Judoon   2021-09-04 14:46:35 +08:00  
    跨版本升级需要 do-release-upgrade
    直接 apt-get upgrade 不会跨版本升级。

    升级的时候会让你确认配置文件是使用新版的默认值,还是保持旧的配置文件,可以做比对,这时候就需要你对配置有一定了解才行了。
    programV2
        2
    programV2   2021-09-04 14:56:59 +08:00  
    @Judoon
    @Judoon
    @Judoon 谢谢 v 友. 命令打错了。sudo apt-get dist-upgrade 也可升级系统。那如果 sudo apt-get upgrade 更新已安装的包,也会让我确认配置文件是使用新版的默认值还是保持旧的配置文吗?我记得没有出现确认的提示呀。

    @Judoon
    ByteCat
        3
    ByteCat   2021-09-04 17:02:49 +08:00  
    可能有些软件会依赖内核提供的某些功能,目前遇到的有 ufw 、wireguard 之类的,可能会报错,通常来说没什么问题
    programV2
        4
    programV2   2021-09-04 17:13:28 +08:00  
    @ByteCat
    @Judoon 谢谢两位🙏 所以只要不是跨版本升级,如 Ubuntu 16.01 到 16.04 这种小版本之间的升级就不会出现兼容问题?
    @ByteCat
    hsfzxjy
        5
    hsfzxjy   2021-09-04 18:12:21 +08:00  
    ubuntu 16.01 是什么,不是只有 04 和 10 吗
    jackmod
        6
    jackmod   2021-09-04 18:55:39 +08:00  
    ubuntu 的跨版本升级基本就是把 source.list 里的发行版代号改掉了。
    官方仓库的包有连续性,很少会冲突。但也不建议升级时跨越 LTS 版本。
    如果现存的配置文件和新版的不同,apt 会暂停并询问操作。
    cheng6563
        7
    cheng6563   2021-09-04 19:01:44 +08:00  
    内核一般和上层功能的兼容性基本没啥问题,比如我 centos6 加新内核跑各种容器跑的飞起。倒是和硬件驱动可能会有大问题,可能升到新内核直接上不了网。
    blueboyggh
        8
    blueboyggh   2021-09-04 19:04:30 +08:00  
    apt dist-upgrade 也不会升级大版本号吧
    jim9606
        9
    jim9606   2021-09-04 20:58:04 +08:00  
    内核通常可以放心升,但建议同步升级 linux-libc-dev 和 linux-firmware 避免找不到固件之类的问题。
    do-release-upgrade 的问题是如果你改过软件包的配置,升级过程会卡住并询问是否保留修改。这个安装过程好像是没法回退和中断的。要是遇上空间不足、意外关机、SSH 断线就不好收拾。而且这个过程可能会破坏不在包管理器管理下的软件的 ABI 兼容性。
    adoal
        10
    adoal   2021-09-04 21:23:07 +08:00  
    “如何保证能够兼容旧的配置文件”?

    理论上并不能保证……实际上遇到的不兼容情况并不多。

    另外,如果安装 deb 包时初始版本的配置文件被用户修改过了,而新版的 deb 包自带的初始文件又有变化,dpkg 会问你怎么处理,是用新的、保留旧的、尝试做三路归并(成功率并不高),也可以用 diff 格式显示新老版本的差异,以及临时开一个 shell 让你人工检查。
    triptipstop
        11
    triptipstop   2021-09-04 23:39:39 +08:00  
    就算不跨版本,平时升级下内核,有些软件就不行了,比如 vbox 。
    msg7086
        12
    msg7086   2021-09-05 11:28:33 +08:00  
    @programV2 @hsfzxjy
    倒是有 16.04.1 和 16.04.4 。

    这里 16.04 是大版本(年.月),后面的.1 和.4 是小版本。
    wangbenjun5
        13
    wangbenjun5   2021-09-05 12:26:42 +08:00  
    @triptipstop 虚拟机确实是依赖内核的一些东西,每次升级都得重新搞一下。但是大部分软件其实对 Linux 内核版本没什么要求,升级完全不影响,我使用的是 ubuntu16.04 ,默认内核是 4.4 版本,我现在已经升级到 5.10 版本。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   2001 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:42 · PVG 08:42 · LAX 17:42 · JFK 20:42
    ♥ Do have faith in what you're doing.