Ubuntu 是可以跨版本升级的。请问 如果 apt-get upgrade 升级 OS 系统版本 16 到 18,已安装的软件版本也会升级到最新的 stable 版本吗? 如果会升级的话,如何保证能够兼容旧的配置文件? 。谢谢指点🙏
1
Judoon 2021-09-04 14:46:35 +08:00
跨版本升级需要 do-release-upgrade
直接 apt-get upgrade 不会跨版本升级。 升级的时候会让你确认配置文件是使用新版的默认值,还是保持旧的配置文件,可以做比对,这时候就需要你对配置有一定了解才行了。 |
2
programV2 OP |
3
ByteCat 2021-09-04 17:02:49 +08:00
可能有些软件会依赖内核提供的某些功能,目前遇到的有 ufw 、wireguard 之类的,可能会报错,通常来说没什么问题
|
4
programV2 OP |
5
hsfzxjy 2021-09-04 18:12:21 +08:00 via Android
ubuntu 16.01 是什么,不是只有 04 和 10 吗
|
6
jackmod 2021-09-04 18:55:39 +08:00
ubuntu 的跨版本升级基本就是把 source.list 里的发行版代号改掉了。
官方仓库的包有连续性,很少会冲突。但也不建议升级时跨越 LTS 版本。 如果现存的配置文件和新版的不同,apt 会暂停并询问操作。 |
7
cheng6563 2021-09-04 19:01:44 +08:00
内核一般和上层功能的兼容性基本没啥问题,比如我 centos6 加新内核跑各种容器跑的飞起。倒是和硬件驱动可能会有大问题,可能升到新内核直接上不了网。
|
8
blueboyggh 2021-09-04 19:04:30 +08:00
apt dist-upgrade 也不会升级大版本号吧
|
9
jim9606 2021-09-04 20:58:04 +08:00
内核通常可以放心升,但建议同步升级 linux-libc-dev 和 linux-firmware 避免找不到固件之类的问题。
do-release-upgrade 的问题是如果你改过软件包的配置,升级过程会卡住并询问是否保留修改。这个安装过程好像是没法回退和中断的。要是遇上空间不足、意外关机、SSH 断线就不好收拾。而且这个过程可能会破坏不在包管理器管理下的软件的 ABI 兼容性。 |
10
adoal 2021-09-04 21:23:07 +08:00
“如何保证能够兼容旧的配置文件”?
理论上并不能保证……实际上遇到的不兼容情况并不多。 另外,如果安装 deb 包时初始版本的配置文件被用户修改过了,而新版的 deb 包自带的初始文件又有变化,dpkg 会问你怎么处理,是用新的、保留旧的、尝试做三路归并(成功率并不高),也可以用 diff 格式显示新老版本的差异,以及临时开一个 shell 让你人工检查。 |
11
triptipstop 2021-09-04 23:39:39 +08:00
就算不跨版本,平时升级下内核,有些软件就不行了,比如 vbox 。
|
12
msg7086 2021-09-05 11:28:33 +08:00
|
13
wangbenjun5 2021-09-05 12:26:42 +08:00
@triptipstop 虚拟机确实是依赖内核的一些东西,每次升级都得重新搞一下。但是大部分软件其实对 Linux 内核版本没什么要求,升级完全不影响,我使用的是 ubuntu16.04 ,默认内核是 4.4 版本,我现在已经升级到 5.10 版本。
|