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