+ -
当前位置:首页 → 问答吧 → 写给刚刚开始LFS的朋友们的一些建议

写给刚刚开始LFS的朋友们的一些建议

时间:2006-01-03

来源:互联网

  首先我想先说明的是,下面的内容全部都是我个人的一些经验,不能算是指导性的内容,只是希望能够给刚刚开始制作LFS系统的朋友们的一些建议。有一点需要说明的是我不是什么资深的LFS用户,从接触LFS到现在也才1年半不到,所以如果你不同意我的观点可以提出来大家讨论一下。
  LFS很“烦琐”,但它也非常的高效,他可能让你很郁闷,也可能让你很兴奋,如果你想彻底的了解Linux的世界,LFS非常的有用,虽然它不是唯一的路线,但它绝对是非常有效用的路线,所以是否选择LFS看你目的了,因为用LFS做成和其它一些发行版本的最基础的状态也可能花去你数个月的时间,但同时你将得到对Linux前所未有的清晰感。
  如果你是刚刚开始LFS的“新手”,你有可能曾经用过多年的其它发行版本,或者从来没有接触过LFS,那么首先应该弄清楚的就是LFS从严格的意义上来说根本不是什么Linux的发行版本,它没有发行版需要的任何重要的要素,它可以说纯粹就是一篇指导性的参考手册,所有的源代码包都是从网上下的,当然LFS的安装LiveCD中包含手册中提到的源码包和补丁,但当你渐渐进入LFS的世界后是不能跳过下载源码包的过程的。
  LFS是个烦琐的系统,如果你没有足够的耐性可能很难继续下去,所以如果你只是想随便用用Linux或者只是为了用Linux架设一个普通的服务器那么建议你不要使用LFS,因为它不适合你,你可能花了大量的编译时间也可能完全达不到你的要求,选择一个适合的发行版本来的更直接有效。
  如果你是一个从来都没碰过Linux的人,那么也建议你先不要制作LFS,因为LFS手册默认是对有一定的Linux使用经验的人更加容易理解,但并不是说没接触过LFS的人都不能做LFS,只是如果想少点郁闷,还是先装一个流行的发行版用一下可能效果会好些。
  耐心+细心是对每一个安装LFS的人都需要的,我为了做LFS,在一两个月中前前后后编译LFS十几次,几乎每2、3天就会从头开始编译一次,而且是按照手册上的命令一条一条的输入,在前几个月的安装中从来没有用粘贴复制的方式进行编译,而且在最初的几次是输入完一条命令要核对一下后才回车的,虽然我知道有ALFS这样的东西,但我觉得既然选择了LFS,那么就要彻彻底底的手工来几次,否则用Gentoo就好了(不过说实话,我当时只是看到过有Gentoo这个东西,还真不知道它是怎么安装的),其它人编写的脚本我觉得对于一个刚开始LFS的人是有害无益的,当你靠脚本完成安装的时候你什么也没得到,不要指望看LFS手册就能学到东西,计算机是一个动手实践的学科,没有实际的操作是很难真正掌握关键的知识的。当你有一定的安装经验后基本上你也能自己动手写一个自动安装脚本了(我相信基本上有一定的LFS制作经历的人都有自己的LFS脚本,只是这些脚本更适合他个人),这时候别人的脚本对你来说也没有什么作用,不过看看人家的脚本倒是可以学习一下SHELL编程了,不过这已经到了另外一个专题中了。
  关于LFS手册,手册的开头几章看上去没有什么实际的内容,但这些内容对后面的内容却非常的重要,主要是指出了一些默认的状况,所以很多朋友在编译的时候会出现一些问题主要都是跟没仔细了解这几章内容有一定的关系。
  主系统的选择和你将要制作的LFS很有关系,总的来说LFS LiveCD是最适合做Host系统的,但也不排除LFS的LiveCD会不能驱动某些磁盘而导致无法制作。如果你不想下LiveCD来做,那么你就要选择一个合适的发行版本来完成,其关键就是要制作的目标系统的内核版本于Host的内核版本比较接近,如果你想制作一个基于2.4内核的LFS5来说RedHat 9.0的默认状态就可以胜任,但如果你要制作的是基于2.6内核的LFS6.x的话,就绝对不能在RedHat 9.0的初始状态下完成的,这时候你可以选择升级RedHat9.0的内核,不过用FC的版本可能更好些。
  关于FC4,有些人在上面编译无法进行,我特地在FC4上进行了一次,我自己都没想到的是十分的顺利完全正常的进行到了编译工具链中binutils和GCC4的第二编结束,没有出现错误,所以我分析是binutils版本的问题,建议大家在制作LFS的时候使用binutils-2.16.1这个版本不要再使用binutils-2.15.94.0.x.x这样的版本。
  LFS的手册虽然是一篇指导性的文章,你可以按照上面的顺序和软件来安装,也可以不按照上面的顺序和软件安装,但对于一个“新手”来讲,完全按照上面的内容制作一两遍是完全必要的,在对LFS的方法和手段有了一定理解的基础上在按照自己的要求定制系统才会比较顺利。
  感觉和理解,这两点对深入LFS有很大的帮助,不要以为输入命令是浪费时间,如果你一边输入一边对输入的内容进行理解那么这对你理解LFS是很有用处的,即使是机械的输入同样能够带来你对LFS的感觉,这种感觉非常微妙,平时也很难察觉,但当积累到一定程度的时候你会发现有一种豁然开朗的微妙感觉,所以正确对待输入命令上是非常重要的。
  关于虚拟机,对于刚刚开始接触LFS,特别是对Linux没什么了解的朋友在制作LFS的时候其实使用虚拟机是非常方便的,即使把系统搞的乱七八糟也不会对你实际使用的机器造成影响,但也有一个算大也不算大的问题就是速度比较慢,一般是非虚拟机一半不到的速度,所以一台性能不错的机器对刚开始学习LFS是有很大的帮助的。
  Linux下的各种应用软件包的更新都非常的快,你可以使用最新的版本来编译LFS,但如果你是一个新手我建议你不要这样做,在没按照LFS上的对应的包完整的编译一两次系统的情况下,可能会出现你一些摸不着头脑的问题,但如果确实在LFS上的包在编译过程中无法编译通过也不要死抱着不放,毅然使用比较新的版本来进行,比如上面提到的binutils的问题,可能在一些特定的情况下会有问题,使用最新的版本问题就有可能得到解决。等熟悉了后都用最新的也没问题。
  说了不少,也都是想到哪说到哪,可能没什么上下的逻辑关系,不过不打紧,只要看的人理解就成,基本上可以概括成三句话:LFS手册仔细看决不是浪费时间,效果远比出了问题胡思乱想来的有用;细心+耐性是成功实现LFS的不可缺少的因素;LFS决不是免费的现成的大餐,只有有心制作LFS的人才能真正享受到它与众不同的滋味。

  (青橄榄在入口的时候是苦的,过了一会你就可以长久的品位那淡淡而又清爽的甜味。)

作者: youbest   发布时间: 2006-01-03

good
ding !

作者: qeming   发布时间: 2006-01-03

关于FC4,有些人在上面编译无法进行,我特地在FC4上进行了一次,我自己都没想到的是十分的顺利完全正常的进行到了编译工具链中binutils和 GCC4的第二编结束,没有出现错误,所以我分析是binutils版本的问题,建议大家在制作LFS的时候使用binutils-2.16.1这个版本不要再使用binutils-2.15.94.0.x.x这样的版本

Good point!

作者: tram   发布时间: 2006-01-04

我也是个新手,前前后后玩了约半年LFS了,呵呵,说一下我的一点点建议吧:
1\我觉得在gentoo下装lfs是最方便,当然.LFS-livecd,也是不错的.
2\在gcc.glibc时,我遇到的错误,现在回想起来,一般(感觉),是perl有些问题

呵呵,就这么多了
大家多努力呀~!

作者: bend   发布时间: 2006-01-04

用自动安装脚本的有多种人,可能是新手,还有可能是急于使用LFS的人等等。

我做LFS是用LIVECD,大半天全部都完成了。第二天万全搞定X+fvwm
不过后来对fvwm做汉化和对fvwm-crystal进行微调花了好几天。

作者: wangyb   发布时间: 2006-01-04

支持楼主
顶!

作者: highness   发布时间: 2006-01-04

FC4的第一个包binutils就打击了我,多谢楼主。。

作者: foryouonly   发布时间: 2006-01-05

引用:
作者: youbest
  说了不少,也都是想到哪说到哪,可能没什么上下的逻辑关系,不过不打紧,只要看的人理解就成,基本上可以概括成三句话:LFS手册仔细看决不是浪费时间,效果远比出了问题胡思乱想来的有用;细心+耐性是成功实现LFS的不可缺少的因素;LFS决不是免费的现成的大餐,只有有心制作LFS的人才能真正享受到它与众不同的滋味。

  (青橄榄在入口的时候是苦的,过了一会你就可以长久的品位那淡淡而又清爽的甜味。)
Cool! Very good points and good suggestions to new comers!

作者: d00m3d   发布时间: 2006-01-05

lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls
../binutils-2.15.94.0.2.2/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.16.1/configure --prefix=/tools --disable-nls
../binutils-2.16.1/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ cat /proc/version
Linux version 2.6.11-1.1369_FC4 ([email protected]) (gcc version 4.0.0 20050525 (Red Hat 4.0.0-9)) #1 Thu Jun 2 22:55:56 EDT 2005

构件LFS系统,对宿主系统的要求只是kernel 和gcc 么?我刚重装,输入法都没装就来这个,,,惨..能说说这是什么原因么,,

ri~~~ri~

作者: foryouonly   发布时间: 2006-01-05

ls -l ../binutils-2.15.94.0.2.2/configure

是什么结果?

作者: 晨想   发布时间: 2006-01-05

lfs:/mnt/lfs/sources/binutils-build$ ls -l ../binutils-2.15.94.0.2.2/configure
-rwxr-xr-x 1 lfs lfs 170273 Dec 20 2004 ../binutils-2.15.94.0.2.2/configurere

lfs:/mnt/lfs/sources/binutils-build$ ls -l ../binutils-2.16.1/configure
-rwxr-xr-x 1 lfs lfs 170107 Feb 28 2005 ../binutils-2.16.1/configure

作者: foryouonly   发布时间: 2006-01-05

/mnt/lfs 你是不是有什么特殊的 mount 参数?

运行 mount 的结果是?

作者: 晨想   发布时间: 2006-01-05

lfs:~$ mount -t ext3 /dev/hda9 /mnt/lfs

Device Boot Start End Blocks Id System
/dev/hda1 1 25 200781 83 Linux
/dev/hda2 * 26 1937 15358140 a5 FreeBSD
/dev/hda3 1938 3849 15358140 83 Linux
/dev/hda4 3850 9964 49118737+ 5 Extended
/dev/hda5 3850 7036 25599546 83 Linux
/dev/hda6 7037 8311 10241406 83 Linux
/dev/hda7 8312 9586 10241406 83 Linux
/dev/hda8 9587 9650 514048+ 82 Linux swap / Solaris
/dev/hda9 9651 9964 2522173+ 83 Linux

作者: foryouonly   发布时间: 2006-01-05

把binutils-build和binutils-2.15.94.0.2.2都删除重新解压、建目录、编译试试。

你不看我写的东西。:(
引用:
作者: youbest
  关于FC4,有些人在上面编译无法进行,我特地在FC4上进行了一次,我自己都没想到的是十分的顺利完全正常的进行到了编译工具链中binutils和GCC4的第二编结束,没有出现错误,所以我分析是binutils版本的问题,建议大家在制作LFS的时候使用binutils-2.16.1这个版本不要再使用binutils-2.15.94.0.x.x这样的版本。

作者: youbest   发布时间: 2006-01-05

我看了你写的东西,你不看看我写的东西,我也知道肯定是我在什么地方搞错了,焖头焖脑的,越搞越胡涂,我现在把系统又重装了 RHEL AS4(kernel2.6.9, gcc-3.4.3),现在正常,正在gcc的编译中......fc4的慢慢来.^_^)&

俺才初学LFS,还望楼主和各位大虾多多不厌其烦的教导,在此谢过,

引用:
作者: foryouonly
lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls
../binutils-2.15.94.0.2.2/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.16.1/configure --prefix=/tools --disable-nls
../binutils-2.16.1/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ cat /proc/version
Linux version 2.6.11-1.1369_FC4 ([email protected]) (gcc version 4.0.0 20050525 (Red Hat 4.0.0-9)) #1 Thu Jun 2 22:55:56 EDT 2005

构件LFS系统,对宿主系统的要求只是kernel 和gcc 么?我刚重装,输入法都没装就来这个,,,惨..能说说这是什么原因么,,

ri~~~ri~

作者: foryouonly   发布时间: 2006-01-05

但是,为啥会是 permission denied 呢? 难道是2.15.9xxx的问题?
我没RHEL4,无法测试。

作者: 晨想   发布时间: 2006-01-05

妈妈的吻~~气死我也..

已经到了 安装系统基础软件 的binutils了,book上说这次一定得make check ,结果又不尽人意,

=== binutils tests ===

=== binutils Summary ===
# of expected passes 33

=== gas Summary ===
# of expected passes 94

=== ld Summary ===

# of expected passes 237
# of expected failures 4
/sources/binutils-build2/ld/ld-new 20041220

还可以继续下去么,...

作者: foryouonly   发布时间: 2006-01-06

有些包在测试的时候好象是会出现一些错误。

作者: youbest   发布时间: 2006-01-06

# of expected failures 4

是期待的错误,没问题的啊。。。。

作者: 晨想   发布时间: 2006-01-06

LFS真讓人興奮那!

作者: zbl16   发布时间: 2006-01-06

走过,路过,不能错过。
我也是新手,请多指教。

作者: pokerface   发布时间: 2006-04-13

果然很烦琐,不过兴趣很浓厚,虽然重头编了好几遍了,但是错误都被一一解决,这种心情无法用言语表达出来的,继续加油!!

作者: deargodzw   发布时间: 2007-12-15

问下楼主是在虚拟机上做的实验还是真实机子

作者: 181697013   发布时间: 2007-12-21

谢谢!
我是新手,刚了解LSF就注册,并依次看到你这个帖子。
我还需要储备一段时间才能着手,但有兴趣和信心,因为有你们。
再次谢谢!

作者: tpengoe   发布时间: 2008-02-24

不错,顶一个

作者: tgnq   发布时间: 2008-02-24

我也刚了解了点lfs就注册了,今天已经学着在虚拟机上编译了,感觉确实有点繁琐,有点头大(英语水平有限),不过我会坚持的~!

作者: 枫舞潇湘   发布时间: 2008-06-24

我是菜鸟,想学LFS。不过由于条件限制,不能一直开机,请教各位大虾装LFS能够装一些内容,然后关机,下次再接着装吗?我看有些帖子说一个编译也可能要花几天...

作者: thewangj   发布时间: 2008-07-06

引用:
作者: thewangj
我是菜鸟,想学LFS。不过由于条件限制,不能一直开机,请教各位大虾装LFS能够装一些内容,然后关机,下次再接着装吗?我看有些帖子说一个编译也可能要花几天...
請詳細閱讀 youbest 斑竹的精華帖

作者: d00m3d   发布时间: 2008-07-06

谢谢!
学习ing

作者: thewangj   发布时间: 2008-07-07

灌水先,以示支持。

作者: zhanglong71   发布时间: 2008-07-08

刚才把 LFS BOOK 提到的所有包的 SBU 相加,发现总共在 85~95 SBU 之间;我的笔记本 SBU约3分钟,所以编译一遍的直接时间大约在270分钟左右。

作者: linux001   发布时间: 2008-07-09

楼主好样的~~ 我的第一次LFS编译就是照着楼主的文章编成的~~

作者: jokehua   发布时间: 2008-09-26

看了楼主的文章,写的很好,很适合我这样的菜鸟,之前也看过金步国先生翻译的6.2的版本的文章,但是一直有一个问题没有弄明白,进行完最后一个步骤的时候,也就是我们安装新的操作系统完成了,就像安装其他的发行版的一样的效果吗?还有就是做了这么多的工作,在完成后能不能做成iso文件,像发行版一样的东西?

感谢给予回复

作者: xliu   发布时间: 2008-09-30

写得很好,Linux需要的就是动手精神

作者: vrlinux   发布时间: 2008-12-23

引用:
作者: foryouonly
lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.15.94.0.2.2/configure --prefix=/tools --disable-nls
../binutils-2.15.94.0.2.2/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ ../binutils-2.16.1/configure --prefix=/tools --disable-nls
../binutils-2.16.1/configure: line 436: ./config.log: Permission denied

lfs:/mnt/lfs/sources/binutils-build$ cat /proc/version
Linux version 2.6.11-1.1369_FC4 ([email protected]) (gcc version 4.0.0 20050525 (Red Hat 4.0.0-9)) #1 Thu Jun 2 22:55:56 EDT 2005

构件LFS系统,对宿主系统的要求只是kernel 和gcc 么?我刚重装,输入法都没装就来这个,,,惨..能说说这是什么原因么,,

ri~~~ri~
这个我知道 因为你用tar解包时使的是root用户 而你去./configure时又换成了lfs用户 所以才会这样的

作者: zh4zhao   发布时间: 2009-01-23

太同意了,我就是在用虚拟机,没编译一次都要花费将近一天半的时间,痛苦呀

作者: 浩海蓝天   发布时间: 2009-02-28

我才重新开始做第三遍,看来还得加油啊……呵呵……

作者: yujia0214   发布时间: 2009-03-17

顶,我是一个初学者,刚开始接触LFS,正没头绪呢

作者: ayk1985   发布时间: 2009-06-16

这个贴子又起来了哈:)

制作LFS的过程确实有趣;不过把它作为工作用系统也不错。

作者: linux001   发布时间: 2009-06-16

好的
不错

作者: lovewenhao   发布时间: 2009-10-22

看了这个,感觉有启发,顶了

作者: indianwolf   发布时间: 2009-11-04