安装内核源码
Fedora内核源码经过长时间的发展,很多用户对Fedora 12 都很了解了,这里我发表一下个人理解,和大家讨论讨论。目前也有中文版本的Linux,如REDHAT(红帽子),红旗Linux等。在国内得到了用户充分的肯定,主要体现在它的安全性和稳定性方面,它与Unix有许多类似之处。但目前这类操作系统目前使仍主要应用于中、高档服务器中。
安装Kernel Headers(头文件)
这个包提供Kernel Headers和makefiles足以应付kernel包中的模块编译。如果你需要安装驱动和某些第三方软件,你应该很需要Kernel Headers。如果一个驱动要求内核源码,那么也许安装Kernel Headers就已经足够了。Kernel Headers通过安装kernel-devel RPM包就可以得到。这个包可能没有被Fedora自动安装。这个软件包可以从你的Fedora DVD安装或者通过FTP和YUM在线安装。在Fedora软件仓库和Update软件仓库中在线查找同时确保他们与你的系统相匹配,使用uname命令。示例:
[wisfern@Wisfern ~]$ uname -rm
2.6.32.11-99.fc12.i686.PAE i686
如果你已经升级过你的kernel(使用yum),那么建议你使用yum来安装这个软件包。
[wisfern@Wisfern ~]$ sudo yum install kernel-PAE-devel
安装Kernel Source(内核源码)
一般来说无须安装Kernel Source除非你有一些特别的原因想要重新编译你的内核源码。无论如何Kernel hesders都是必须的。
围绕Kernel Sourcede的安装有三个基本步骤。
1.准备相关的环境
2.下载你想要的内核源码(与你当前的kernel想匹配如果需要)
3.安装SRC.RPM包
4.使用rpmbuild将源码转换成可用状态
NOTE: 以下的步骤将消耗至少400MB磁盘空间!
准备相关的环境
在开始安装之前,必须安装两个必要的软件包,分别是:rpmdevtools 和yum-utils,可以使用如下命令安装:
su -c ‘yum install yum-utils rpmdevtools’
安装你之前选择和下载的kernel.src.rpm,这个过程不能在root这个用户下进行!!
设置目录
rpmdev-setuptree
这个命令在当前的用户目录下生成了rpmbuild目录。
下载内核源码
通过’yum’来获得内核源码(对于最新的Fedora内核源码)
yum工具可以下载最新的内核源代码。如果没有找到,那么这里(还)没有任何更新,那就使用默认的Fedora内核源码。
[wisfern@Wisfern Desktop]# yumdownloader –source kernel
(source选项前是两个-)
安装内核源码
安装依赖性软件
su -c ‘yum-builddep kernel-version>.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 – using root
warning: group mockbuild does not exist – using root
新建一个组和一个帐号就好了。
#gourpadd mockbuild
#useradd mockbuild -g mockbuild
然后再重新安装
准备内核源码
将源码转成可用状态:
进入SPECS目录
cd ~/rpmbuild/SPECS
执行以下命令
rpmbuild -bp –target=$(uname -m) kernel.spec
(target选项前是两个-)
源文件可以在~/rpmbuild/BUILD/kernel-2.6.32目录中找到。这里有两个有用的目录。
1.linux-2.6.32.i686/arch
这里有包含了Fedora 补丁和更新的标准kernel.org内核源码。系统架构与uname -m的输出相匹配,一般来说是i686 ,如果你想,你可以让–target=选项使用noarch参数。
2.vanilla-2.6.32/
这里只包含标准的kernel.org的kernel(没有补丁和更新).
NOTE: Fedora编译和配置内核源码的详细过程可以在Fedora Wiki中找到。
删除旧内核
由于Fedora更新升级非常的频繁, 所以, 非常有必要清除陈旧的内核,方法如下:
1. 查看当前系统中已安装的内核相关包:
[root@www.jb51.net ~]# 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
2. 查看当前使用的内核:
[root@www.jb51.net ~]# uname -r
2.6.32.12-115.fc12.i686.PAE
3. 确定要删除的内核:
这里为:kernel-PAE-2.6.32.11-99.fc12.i686[/code]
4. 删除内核:
[root@www.jb51.net ~]# yum remove kernel-PAE-2.6.32.11-99.fc12.i686
说明:
不推荐网上到处抄来抄去的,直接使用: rpm -e 的方法删除内核包, 而是使用 yum remove 进行删除,
因为使用yum remove删除, yum 会自动移除 : /boot/grub/menu.lst 中的相关启动项。