我编译Fedora Kernel的经历


本文系原创,转载请注明:摘自BrantC博客的文章----http://blog.csdn.net/xkdcc/archive/2008/11/26/3381670.aspx


大家不要误会,我不是什么另辟蹊径找到什么独门秘方来编译,而是讲我自己根据http://fedoraproject.org/wiki/Docs/CustomKernel的步骤,如何解决遇到的问题的文章,重点是自己的解决问题的过程。
其实本来以为按照人家老外的文档编译一个核心不是什么问题,而且想起来感觉有点傻瓜式的,但是没想到啊没想到!第一步就遇到非常麻烦的问题,搞得我感觉要写篇文章来记录自己解决这些问题的过程和方法,并怀着宽广的胸怀与尔同享:)

请大家注意哈,因为目前我还没有编译成功,并且遇到了问题,所以这是第一篇文章。如何后面进行很顺利的话,我又没有遇到什么问题,这就是终结篇了:)
我好像说得有点多了...现在开始正文:

在http://fedoraproject.org/wiki/Docs/CustomKernel的第一步是:su -c 'yum install yum-utils rpmdevtools'
靠!直接提示出错!我然后分开执行 su -c  'yum install yum-utils' 和 su -c  'yum install rpmdevtools'。结果是后者没有过。

1. 遇到错误:
# yum install rpmdevtools
......
Error: --> Processing Dependency: elfutils-libelf = 0.123-1.fc6 package: elfutils-libelf-devel
--> Finished Dependency Resolution
Error: elfutils-libelf conflicts with elfutils > 0.123-1.fc6
Error: elfutils-libelf conflicts with elfutils-libs > 0.123-1.fc6
Error: Missing Dependency: elfutils-libelf = 0.123-1.fc6 is needed by package elfutils-libelf-devel

2. 改为执行:
yum install elfutlis-libs

3. 再执行 yum install rpmdevtools
结果又出错,显示:
Running transaction check
Error: Unable to satisfy dependencies
Error: Package rpm-libs needs rpm = 4.4.2-32, this is not available.

4. 为此,手动从http://fedora.ifc.unam.mx/core/updates/6/x86_64/?C=M;O=D 下载 popt-1.10.2.1-2.fc6.x86_64.rpm (幸好能下载,yum下载的有些mirro速度之慢!),进行手动安装。

5. 安装结果仍然报错:(
Preparing...
file /usr/include/popt.h from install of popt-1.10.2.1-2.fc6 conflict with file from package popt-1.10.2-32
...

6. 无奈只好尝试卸载popt,然后重新安装popt最新的版本,执行...
结果,yum remove 会提示需要卸载掉所有依赖的包,这还算了。要命的是有三百多个包依赖popt!我靠!
忍了!继续看man yum

7. 忽然看到怎么好像有两个update......咦,仔细一看,有一个是upgrade!咦!这个选项好像明显有戏嘛!
马上执行:
yum upgrade popt
......

8. 哈哈,upgrade成功:)执行的结果是把rpm等相应的包也升级了!O(∩_∩)O哈哈~ 兴奋之情真是溢于言表:)

9. 重新执行 yum install rpmdevtools 看看结果如何:
哈哈,这次只有需要安装两个包了:)相当棒哦:)
选择Yes继续:)胜利在望啊~~~~
飞快地成功料:)

10. 总算大功告成!可以继续Build Fedora Kernel啦:)

(搞定这个问题好恼火!其实我原来已经尝试编译过两遍了,都在这里失败!今天终于耐着性子仔细看man才发现了关系的upgrad参数!希望不会再遇到这种问题了,还有一定看man pages要仔细点!......不过TMD那么多,再仔细也仔细不到哪去啊,唉,鸟文还得再提高)

你可能感兴趣的:(Linux)