其实我不喜欢瞎折腾,可我的小霸王电脑光驱坏了,而且我想一边编译LFS一边聊qq翻网页,liveCD显然不行,只好在fedora10上编译LFS。古人有云:磨刀不误砍柴功,想编译的时候少出错准备工作就一定要做好做充足,相对出错回滚重新编译的时间,看资料这点时间就是九牛一毛。
在linux_sir的LFS论坛上,多看看置顶帖,那都是前辈们的精华,还有就是下载一个LFS官方稳定的中文翻译版本,目前最新翻译版本是LFS6.3,当然如果你英文牛B可以不用。
前戏准备工作做足了,下面开始编译LFS。首先说LFS的宿主系统,网上说最好别用gentoo由于做了优化编译的时候会出问题,至于其他主流的linux发行版:fedora,debin/ubuntu,mandrive,opensuse等应该都可以。
首先,在安装宿主系统(我的是fedora)在给系统分区的时候分一个5-10G的区给未来的LFS用,记得一定要安装编译环境。按照官方的说明文档,开始要格式化LFS这分区,要知道LFS具体的分区号可用命令# fdisk -l 我在硬盘上给LFS划分的分区设备号是/dev/sda8。在这里出来了第一个奇怪的问题:命名fdisk命令读取到LFS分区的设备文件号了,可在/dev目录死活见不到sda8这个文件,最后reboot重启下系统/dev/sda8文件就出来了,怪得很。
我是懒人,为了避免以后中断编译了老要手动挂载LFS分区,可以在宿主系统的/etc/fstab文件末尾添加一行命令,让系统开机自动挂载LFS分区:
/dev/sda8 /mnt/lfs ext3 defaults 0 0
确认分区挂载无误以后,就可以按照官方的文档一步一步弄了,对第一编译LFS的同志们我推荐使用复制/粘贴大法,;不推荐全手工输入的六脉神剑,我第一次编译LFS就是复制粘贴都出了好几次错误,要是手工打的话估计错误有如过江之鲫。
由于我赶新潮编译LFS6.4,官方文档没用中文翻译版本,只能是LFS6.4官方英文文档/LFS6.2中文翻译文档/论坛上LFS速成手册(也是6.3版本) 三份一起对着看,很是折磨人。求稳妥最好编译翻译很完整的LFS6.3,有现成的liveCD下载,不用自己到处到网络上下载编译包。
开始编译了唯一要说的就是官方文档省略了每个包的解压命令 tar -xvf ooxx.tar.gz 和进入到解压文件的命令cd ooxx 在编译完成一个包以后还省略了删除命令rm -rf ooxx 如果第一次编译只看官方文档的话十有八九会被这个小细节弄迷糊。
在编译的过程中或多或少会出现一些问题,第一次编译能一个错误没有火速通过的话基本不可能。我在第五章编译glibc的时候就忘记了make install,结果后面出问题,回头发现重新编译glibc会出另外的问题,最后无奈只好全部删除重新编译第五章。
在编译第六章的时候也出了两次问题,都是make的时候报错:找不到ooxx头文件,造成一堆变量没用定义,结果在狗狗上一搜索两次错误分别是Berkeley DB和 Ncurses两个包没编译安装好,回头重新解压编译安装一次就OK了。狗狗永远是我们最好的老师,只要把报的错误一放上去然后加个LFS肯定能搜索到答案,当然答案是鸟语的开个星际译王看几句简单的鸟语还是不成问题。
弄到最后设置引导启动了,没用必要再setup一次grub,直接使用宿主系统的grub修改一下menu.lst文件就行,具体来说就是多加一个启动项:
title LFS 6.4
root (hd0,7) (这里要在fdisk -l命令得到设备号的基础上减1)
kernel /boot/lfskernel-2.6.27.4 root=/dev/sda8 (这里改成你的lfs分区设备号fdisk -l命令得到)
如果设备好填写不正确的话,LFS启动就会报类似 kernel panic之类的错误,我就是手抖把sda8打成hda8品尝了一回恶果。
前前后后花了我接近半个月时间,总算第一次把LFS编译好,编译成功很有成就感。这个LFS只是一个最基本的系统,万里长征的第一步,什么东西都没,后面还有BLFS等着你安装xorg等软件,长征路漫漫………………
时间:2009-06-08 16:32
来源:Linuxeden
作者:mgqw
原文链接