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 ![]() 自编译内核说多都是泪,安装好像没报错,但运行虚拟机或者其它环境老报错, 版本不知道,现在 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 编译。 现在很多发行版都支持同时安装多个内核,重启的时候可以在启动界面切换内核版本,如果一个版本的内核不能让系统正常工作,可以重启选择旧内核。 |