1
ggsimida0 2023-09-18 14:32:40 +08:00
include 和应用运行没啥关系,你在 linux 里面去编译应用才会用到。lib 比较重要,里面会有共享库 so 文件,一般程序都是编译出来动态链接的,就是运行时进行加载,如果兼容性做的比较好,应用应该不需要重新编译就可以正常运行
|
2
aisk 2023-09-18 14:36:39 +08:00
不走发行版自己的机制,而是手动替换的,一般都会翻车。
|
5
leonshaw 2023-09-18 14:59:59 +08:00
/lib/modules 每个内核版本独立的。内核和用户态的接口本身都是向下兼容的,包括 include
|
6
lysS 2023-09-18 15:01:00 +08:00
这就体现了 docker 的好处
|
8
PTLin 2023-09-18 15:04:41 +08:00
我记得时 make install 安装内核本身到/boot ,make modules_install 安装 编译的模块到/lib/modules ,和现有的不冲突。
|
12
mantouboji 2023-09-18 15:31:27 +08:00
第一,你可以自己用个虚拟机试验一下,得到第一手经验。不难。
第二,你不想或者不会动手,那就不要瞎折腾,用发行版自己的升级工具。 |
13
sxzzsf 2023-09-18 16:08:00 +08:00
内核手动升级一般就安装如下几个文件:
/boot/vmlinuz-.... /boot/initrd.img-.... /lib/modules/6.x.x /boot/grub/grub.cfg 更新添加新内核启动条目 如果 secureboot 启用,升级后新内核可能无法启动。 |
18
jlak 2023-09-18 18:27:21 +08:00 via iPhone
需要自己升级的吗?我的 ubuntu server 22.04lts 不知道为什么 apt get install 一些应用时经常提示升级内核 ,两周更新好几次了
|
19
mokiki 2023-09-18 18:43:48 +08:00
内核模块重新安装一下就好,具体要看你用的发行版。
我用 Gentoo 都是手动编译内核 |
22
0superx0 2023-09-18 22:04:54 +08:00 1
自编译内核说多都是泪,安装好像没报错,但运行虚拟机或者其它环境老报错,
版本不知道,现在 ubuntu 都是直接编译成 deb 再安装,这样遇上奇葩问题机率少很多. |
24
zzzkkk 2023-09-18 22:35:56 +08:00 via Android
宝贵的时间千万不要浪费在没回报的事上
|
25
deorth 2023-09-19 08:37:55 +08:00 via Android
微内核
|
26
limon 2023-09-20 10:00:51 +08:00
你可以全编进去,没有模块,升级只换个 vmlinuz
|
27
libook 2023-09-20 11:38:30 +08:00
include 存的是头文件吧,有的你只装预编译的内核不装头文件包也就不会有这一部分。
不管是库还是应用程序,都看是不是调用内核的特定版本才有的 API ,如果你换了一个 API 不兼容的内核,这些库和应用程序就会因为调用不到相应的 API 而无法正常工作。不过貌似这方面比较少见,绝大多数还是使用比较稳定的 API 的,很长时间里的内核版本都是兼容的。 如果遇到现有库和应用程序与新内核 API 不兼容的情况,就要看可不可以使用兼容版本的库和应用程序,或者看是不是编译过程支持按照新内核的特性来选择 API 编译。 现在很多发行版都支持同时安装多个内核,重启的时候可以在启动界面切换内核版本,如果一个版本的内核不能让系统正常工作,可以重启选择旧内核。 |