"6.10 再次调整工具链"中的检查出错,希望大家帮忙看看哪里有问题!(已解决)
时间:2007-04-07
来源:互联网
我回头仔细的检查之前的各个步骤都没问题,手册中提到的容易出错的specs文件也没事!最后查到了2处错误:一是6.9 Glibc-2.3.6中配置Glibc时,建立/etc/nsswitch.conf文件中的
hosts: files dns时,写成hosts: files,忘了后面的dns;另一处就是
“6.6. 创建必需的文件与符号连接”时,建立/etc/group文件时,把里面的tty:x:4:写成了ttv:x:4:。修正了这2个错误后,reboot系统并按“制作LFS过程中各个阶段恢复工作状态的方法”这篇文章中提到的“6.9 Linux-Libc-Headers-2.6.11.2~6.37 Bash-3.0”阶段的方法恢复工作状态!但问题还是存在!我实在想不出什么其他的原因,所以希望大家帮帮忙,看看哪里会有问题!还有,我想问一下,就是在LFS的过程中,一旦发现之前的某一步骤出错了,一般应该怎么办?能不能直接reboot,然后恢复到出错步骤那个阶段的工作状态,然后重新安装,是否要先删掉安装出错的软件包!希望大家能帮帮忙,这里先谢谢大家了,在这里我学到了很多东西:)
作者: harryand 发布时间: 2007-04-07
无语~~~~~~~~~~真希望哪位高人出来解惑释疑一下!
好象还有人说是版本的事,我是按6.2手册里说的版本,也是liveCD x86-6.2.4上的软件包!
分别是Binutils-2.16.1 GCC-4.0.3 Glibc-2.3.6,大家看看是怎么回事,帮忙解决一下这个问题,好让后面的“疑惑者”们有个参考!在这里再次谢过了
作者: harryand 发布时间: 2007-04-07
作者: 晨想 发布时间: 2007-04-07
“5.9. Expect-5.43.0”中的patch -Np1 -i ../expect-5.43.0-spawn-1.patch
“5.11. GCC-4.0.3 - 第二遍”中的patch -Np1 -i ../gcc-4.0.3-specs-1.patch
“5.14. Bash-3.1”中的patch -Np1 -i ../bash-3.1-fixes-8.patch
“5.26. Perl-5.8.8”中的patch -Np1 -i ../perl-5.8.8-libc-2.patch
“5.28. Tar-1.15.1”中的patch -Np1 -i ../tar-1.15.1-gcc4_fix_tests-1.patch
"6.7. Linux-Libc-Headers-2.6.12.0"中的patch -Np1 -i ../linux-libc-headers-2.6.12.0-inotify-3.patch
最后是“6.9. Glibc-2.3.6”中的patch -Np1 -i ../glibc-2.3.6-linux_types-1.patch和patch -Np1 -i ../glibc-2.3.6-inotify-1.patch!
下午又重头做了一次,这次也很小心,每一个细节都确认通过,“5.12. Binutils-2.16.1 - 第二遍”中的make -C ld LIB_PATH=/usr/lib:/lib也确认无误,最后的glibc的make -k check也没有任何error,不过失望的是,问题照样存在!真是无语!现在就剩下换版本的方法没试了!
还有,我想问一下, 手册中提到对于新手第5章里的make check可以跳过,所以我直接跳过第5章里的那些测试,不知道这会不会可能是引起这个问题的原因?make check是怎么样的一个作用,它只是告诉我们软件包有错误,我们自己去修复,还是说它发现错误的同时,也会去修复错误呢?
作者: harryand 发布时间: 2007-04-08
作者: 晨想 发布时间: 2007-04-08
作者: knut 发布时间: 2007-04-08
make -C ld LIB_PATH=/usr/lib:/lib抄成make -C ld LIB_PATH=/usr/bin:/lib了,所以才会出现这种情况!
对于这个问题,我总结了一下,在这里我想说一点个人的小想法,好让其他象我一样的初学者在遇到这种情况时,有个参照,不要一片茫然:
在整个LFS过程中,binutils软件包一共编译了3次,分别是:“5.3. Binutils-2.16.1 - 第一遍”“5.12. Binutils-2.16.1 - 第二遍”“6.11. Binutils-2.16.1”!最后一次,即6.11是最终LFS系统的组成部分,我们可以只当它和其他软件包一样去安装!而前两次则是临时工具链里的组成部分,一旦编译出错,将影响后面的操作无法继续下去!在我看来,binutils的前两次编译安装分别对应于2次调整工具链!
就象“5.3. Binutils-2.16.1 - 第一遍”中的
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin
是为后面"调整工具链"步骤准备连接器!
而“5.12. Binutils-2.16.1 - 第二遍”中的
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin
是为第六章的"再次调整工具链"阶段配置连接器!
事实上,我们在编译安装完binutils后,先不rm掉"binutils-2.16.1"和"binutils-build"这2个目录,在这个前提下,我们完全可以将
make -C ld clean
make -C ld LIB_PATH=/tools/lib
cp -v ld/ld-new /tools/bin
这3个命令放到“5.7. 调整工具链”这里来执行,对应的
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin
这3个命令放到“6.10. 再次调整工具链”这里来执行,即在执行“6.10. 再次调整工具链”里的mv -v /tools/bin/{ld,ld-old}之前,先cd /sources/binutils-build后,
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin
最后才mv -v /tools/bin/{ld,ld-old}!这样才使命令看起来象一个“整体”,完成一个步骤!这样一来,对于那些对系统,对LFS命令的含义,作用还不是很理解的新手们来说,能一目了然的知道那3句命令是干什么的,一旦出错了,也能“就近”的检查到出错的地方!
而6.2手册中将这3句命令分开,放到相距很远的章节中去执行,同样是出于对新手的照顾,使操作统一,即tar一个软件包后,编译安装完后就可以rm掉,以防后面要编译到同一软件包时因没删除之前编译过的源码目录而出错!
但我想说的是,将原本一体的命令分开执行,对于新手的我们来说,事实上是增加了理解命令含义,用途的难度,而且查错时也难了很多!最简单的例子:就象我一样“5.12. Binutils-2.16.1 - 第二遍”中的make -C ld LIB_PATH=/usr/lib:/lib出错了,但不会有什么提示,且这句命令生成的ld程序,得到“6.10. 再次调整工具链”才用到,这个时候你才会发现问题,如果象我一样没什么经验,或对系统理解不深,是不可能想到是在“5.12. Binutils-2.16.1 - 第二遍”中出的问题的,所以只能重来!(在这个问题上,我重新LFS了4次)不过,幸运的是由于这样才加深了我对这个问题的看法:)
以上是我个人的理解,做为LFS新手,很多理解都有局限性的,希望各位高手们能帮着纠正,多给点意见,提示:)
在这里再次感谢晨想版主以及hans_yu大侠的帮助!
作者: harryand 发布时间: 2007-04-08
作者: moonbird2007 发布时间: 2007-07-06
作者: happy1123 发布时间: 2008-11-20
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28