Chinaunix首页 | 论坛 | 博客
  • 博客访问: 54473
  • 博文数量: 27
  • 博客积分: 930
  • 博客等级: 准尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2010-02-22 14:30
文章存档

2010年(27)

我的朋友

分类: LINUX

2010-03-24 10:36:38

  完全按照孙前辈的指南<<手把手教你如何建立自己的Linux系统 第二版>>作者孙海勇,我依然花了不少的时间来从头定制一个系统。
  第一遍,使用虚拟机上的安装,可是安装到工具链安装成功之后,开始建立真正的LFS系统时,就发现glibc的make check错误百出,不知何故,因为只是照葫芦画瓢根本不知问题所在,于是我又找了一台测试机在非虚拟机环境下重新做一遍,我怀疑是我哪里将命令敲错了,可是安装到同样的地方又是一样的问题,这样我无奈之下,只能扒下来仔细查一查各处的链接及对文件的修改处有什么输入或其它的问题。因为我对流编辑器sed目前是一无所知,所以当前第一个问题就是学习一下sed编辑器的语法规则和使用等相关的事情,否则连命令都看不懂,不知做什么的,怎么知道怎样输入是正确的。(有时间时,我会在其它的博文里,总结一下我的学习心得吧!)经过恶补,终于搞清楚那么多\/@-的命令是什么意思了,于是我发现了在安装GCC-4.1.2-Pass 2时的这个命令,最尾部的\与>可能造成问题,如果它们之间有空格,无论空格是在\之后即行尾,还是>之前即行首都可以,若它们之间没有空格,则会扭曲了本应将文件gcc/Makefile.in.tmp使用编辑器修改后做重定向输出到文件gcc/Makefile.in的原意,所以在此处输入时应注意。当然,此处可以在输入时单行输入不必在行尾加\增加出错的可能性。
sed 's/^XCFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
> gcc/Makefile.in
   再重新在测试机上安装一遍,因为看懂了命令之后,在输入时会格外的注意命令正确性,另外对文件的安装路径也格外小心,终于迎来了在建立真正的LFS系统阶段中Glibc安装正确通过的好消息。在安装的第三遍时,能换得如此进步,已来之不易了啊,(呵呵,我对自己一项很宽容),当然还要感谢孙前辈的指南!
  继续安装下去,出现了如下问题以下软件包测试不通过 make test 出错,也谁有关,怎样看哪个部分出错是谁想起的?
coreutils-6.9安装测试时,提示如下错误:
coreutils
--------------------------
> 1996
> 1997
> 1998
> 1999
> 2000
FAIL: sort-compress
PASS: sort-merge
PASS: sort-rand
PASS: split-a
PASS: split-fail
PASS: split-l
PASS: stat-fmt
PASS: stat-printf
./tac-continue: FULL_PARTITION_TMPDIR not defined; skipping this test
SKIP: tac-continue
PASS: test-diag
tty-eof: this script requires Perl's Expect package >=1.11
SKIP: tty-eof
======================================
1 of 43 tests failed
(3 tests were not run)
Please report to bug-coreutils@gnu.org
======================================
make[3]: *** [check-TESTS] Error 1
make[3]: Leaving directory `/sources/coreutils-6.9/tests/misc'
make[2]: *** [check-am] Error 2
make[2]: Leaving directory `/sources/coreutils-6.9/tests/misc'
make[1]: *** [check-recursive] Error 1
make[1]: Leaving directory `/sources/coreutils-6.9/tests'
make: *** [check-recursive] Error 1
在不知如何处理的情况下,下载了coreutils-5.97,因为我原系统就是这个版本,应该不会是与内核的冲突问题吧,可是又出现如下错误:
        then mv -f ".deps/tee.Tpo" ".deps/tee.Po"; else rm -f ".deps/tee.Tpo"; exit 1; fi
tee.c:34: error: conflicting types for 'tee'
/usr/include/bits/fcntl.h:233: error: previous declaration of 'tee' was here
make[3]: *** [tee.o] Error 1
make[3]: Leaving directory `/sources/coreutils-5.96/src'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/sources/coreutils-5.96/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/sources/coreutils-5.96'
make: *** [all] Error 2
  彻底无奈,没办法,我就继续向下安装其它的软件,其中只有安装sysklogd时,出现了/usr/bin/install不存在的错误无法继续,我也猜想这可能与coreutils软件包未安装有关,最后无奈下,只好把coreutils-6.9即使检查出错误仍然安装了上,目前我的想法就是先从头到尾安装一遍,熟悉整个过程,但愿下面的过程不要出错,否则我会多一项怀疑,那就是可能与这个软件有关,呵呵,无论如何先装上再说。安装上coreutils之后,sysklogd也正常安装上了。
  然后,进入了下一个阶段,写相应的系统配置文件,安装内核2.6.22,继续照葫芦画瓢,OK,一切顺利。
  最后,安装grub,并相应的启动配置,进行系统引导。于是一个更大的问题挡在了面前,不解决是无法继续向前了,在使用grub命令进入之后,应输入root (...) setup(...),使安装grub成功,结果发现根本不能root进任何值,提示分区不存在,后来经过多次尝试,终于想明白了,我的系统LVM,又怎么能用普通的分区什么的写上就行呢,看样子麻烦来了。。。
  进入查到相关的lvm的文章,这篇我先收了即在上的作者为AUTHOR: Wee Teck 的文章。按照文章内容,照搬安装device-mapper和lvm2,安装完成可以看见分区了,再进入grub,进行安装root(hd0,0)setup(hd0)成功,但想用vgdisplay查看系统lvm逻辑郑情况时,发现不能正常显示,提示相关版本的错误信息,呵呵,不管了先重启看看情形,搞不好这样也行呢,我非常渴望看到我的LFS系统,(当然,这样就重启,要是最糟糕的情况可能原系统的分区都会找不到了),备份了重要数据,重启。
  等待--,grub出现了,嗯?还是原系统的grub选项,继续进入,果然是原系统,哎--宣告失败。
  关机,,
  明天继续努力!

阅读(552) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~