Fedora系统内核安装及旧内核删除教程
在Linux运维和开发工作中,内核相关组件的安装常常成为一道门槛——尤其是Fedora这类快速迭代的发行版,内核源码和头文件的处理方式跟Ubuntu有很大差异。不少新手照着网上的零散教程折腾半天,结果要么版本不对,要么编译失败。其实只要理清三个核心概念:Kernel Headers(头文件)、Ker
在Linux运维和开发工作中,内核相关组件的安装常常成为一道门槛——尤其是Fedora这类快速迭代的发行版,内核源码和头文件的处理方式跟Ubuntu有很大差异。不少新手照着网上的零散教程折腾半天,结果要么版本不对,要么编译失败。其实只要理清三个核心概念:Kernel Headers(头文件)、Kernel Source(内核源码)以及它们的安装路径,整个过程就能清晰很多。
安装Kernel Headers(头文件)
这个包提供的是编译内核模块所需的最小集——头文件和必要的Makefile。如果你只是想装个驱动或者某些第三方软件,通常情况下Kernel Headers就足够了,不一定非得把完整的源码拉下来。
Kernel Headers通过安装kernel-devel RPM包获得。Fedora默认安装可能不会带它,你可以从DVD、FTP或者YUM在线安装。关键是要确保版本与当前运行的内核匹配,用uname命令先确认一下:
[wisfern@Wisfern ~]$ uname -rm 2.6.32.11-99.fc12.i686.PAE i686
如果你已经通过yum升级过内核,那最好也用yum来安装这个包,省去手动匹配版本的麻烦:
[wisfern@Wisfern ~]$ sudo yum install kernel-PAE-devel
安装Kernel Source(内核源码)
除非你有特别的需求——比如要重新编译整个内核、打自定义补丁,或者深入研究内核代码——否则一般用不到完整的Kernel Source。不过话说回来,即便只是编译模块,Kernel Headers也是必需的,这一点一定要分清。
安装Kernel Source大致分为四个步骤:准备好编译环境、下载目标版本的内核源码(最好与当前内核匹配)、安装SRC.RPM包、用rpmbuild把源码解压成可用的目录结构。注意,整个过程至少需要400MB磁盘空间,提前清理一下。
准备相关的环境
开始之前先装两个工具:rpmdevtools和yum-utils。命令很简单:
su -c 'yum install yum-utils rpmdevtools'
这里有个关键点:安装kernel.src.rpm的过程绝对不能在root用户下进行,否则后面会遇到权限问题。
设置目录
执行以下命令会在当前用户目录下生成rpmbuild目录结构:
rpmdev-setuptree
下载内核源码
利用yum工具可以下载最新的内核源代码。如果仓库里没有更新版本,那就用Fedora默认的内核源码即可:
[wisfern@Wisfern Desktop]# yumdownloader --source kernel
注意--source前面是两个短横线。
安装内核源码
先安装依赖软件:
su -c 'yum-builddep kernel-.src.rpm'
再安装.src.rpm包:
[wisfern@Wisfern Desktop]# sudo rpm -ivh kernel-2.6.32.11-99.fc12.src.rpm 1:kernel ########################################### [100%]
如果安装过程中间出现类似warning: user mockbuild does not exist的错误,说明缺少mockbuild用户和组,手动创建即可:
# groupadd mockbuild # useradd mockbuild -g mockbuild
然后重新安装。
准备内核源码
接下来进入SPECS目录,用rpmbuild将源码解压成可用的状态:
cd ~/rpmbuild/SPECS rpmbuild -bp --target=$(uname -m) kernel.spec
执行完之后,源码会出现在~/rpmbuild/BUILD/kernel-2.6.32目录下。这里有两个重要的子目录:
linux-2.6.32.i686/arch—— 包含了标准kernel.org内核以及Fedora补丁和更新,系统架构与uname -m输出一致(通常是i686)。如果不需要特定架构,也可以让--target=使用noarch。vanilla-2.6.32/—— 只包含标准kernel.org内核,没有Fedora补丁。
Fedora编译和配置内核源码的完整流程,可以在Fedora Wiki中找到更详细的说明。
删除旧内核
Fedora更新频繁,旧内核会越积越多,不仅占用/boot空间,还可能干扰grub启动菜单。清理时千万别图省事直接rpm -e,推荐用yum remove,这样yum会自动帮你更新/boot/grub/menu.lst中的启动项,避免手动修改出错。
操作方法很直观:先查看当前已安装的内核相关包:
[root@localhost ~]# rpm -qa | grep kernel kernel-headers-2.6.32.12-115.fc12.i686 kernel-firmware-2.6.32.12-115.fc12.noarch kernel-PAE-devel-2.6.32.11-99.fc12.i686 kernel-devel-2.6.32.12-115.fc12.i686 kernel-PAE-2.6.32.11-99.fc12.i686 kernel-PAE-devel-2.6.32.12-115.fc12.i686 kernel-PAE-2.6.32.12-115.fc12.i686 kernel-devel-2.6.32.11-99.fc12.i686 abrt-addon-kerneloops-1.0.9-2.fc12.i686
再确认当前使用的内核版本:
[root@localhost ~]# uname -r 2.6.32.12-115.fc12.i686.PAE
比如要删除旧内核kernel-PAE-2.6.32.11-99.fc12.i686,直接执行:
[root@localhost ~]# yum remove kernel-PAE-2.6.32.11-99.fc12.i686
这样就干净利落地清掉了,grub菜单也会同步更新。
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
同类文章
如何用Linux查看网络数据包在内核的流向
tcpdump在链路层入口后、IP层解析前捕获,可看到MAC地址等头部;perf配合kprobe可跟踪skb在内核中的函数调用路径; proc net snmp等文件通过协议栈丢包计数反映流向瓶颈;iptablesTRACE仅在netfilter钩子打日志,不适合追踪真实流向。需交叉验证多种工具。
如何在CentOS 7中修改文件系统配额的具体操作步骤
修改XFS文件系统配额时,需先在 etc fstab挂载点启用uquota或gquota选项,然后重新挂载文件系统使配额生效。之后以xfs_quota-x专家模式为用户或组设置软硬限制。修改后务必执行report命令验证,并检查输出确保限制值已写入且用量被正确统计。
Linux查看具体硬件驱动列表的命令
在Linux系统中,查看硬件驱动列表,可使用lsmod命令查看已加载模块(但内置驱动不显示),使用lspci-k命令查看PCI设备当前驱动,使用lsusb-t命令查看USB设备驱动。需特别注意驱动与固件缺失问题,使用dmesg|grepfirmware命令可辅助排查驱动和固件缺失。
电脑0x800401f3无效类字符串系统底层报错解决
错误0x800401f3无效的类字符串,因系统找不到COM组件注册信息或权限不足导致。需先定位出错组件的ProgID,检查注册表HKEY_CLASSES_ROOT下对应项是否存在,若缺失则使用regsvr32命令重新注册对应的DLL文件,再修改ProgID及CLSID子项的权限,赋予Everyone完全控制,最后重启IIS服务或相关应用程序池使更改生效。
统信UOS更换系统图标包详细教程
统信UOS更换系统图标包可通过三种途径实现:控制中心直接切换已安装主题、手动复制图标包至用户目录并更新缓存、使用深度商店一键安装。三种方式分别适合不同技术能力的用户,均能即时生效,提升操作效率与视觉体验。
- 热门数据榜
相关攻略
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:19
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
2026-07-10 07:18
热门教程
- 游戏攻略
- 安卓教程
- 苹果教程
- 电脑教程

