Chroot 后编译Glibc-2.16.0 bash出错

发布于: 2013年01月16日

九九八十一难之三

LFS-7.2 Chapter 6.9 Glibc-2.16.0

make时出错:

/bin/sh:command substitution: line3:syntax error near unexpected token’)’

Google 一下容易发现很多人碰到同样问题,比如这位这位,解决方案都是将bash-4.2降级到bash-4.1

我则没有贸然行动,于是在原chroot之前的环境下,bash-4.2源码目录执行了一次test

lfs@host$ make tests

果然发现了一堆错误,其中包含上面的这个。

我尝试按照LFS Book-7.2,Chapter 5.15 重新编译bash-4.2,但不打补丁bash-4.2-fixes-8.patch

编译后执行make tests,错误消失。make install后重新编译Glibc进行正常。

不知道不打补丁的bash-4.2后续会不会再出现问题。

Will good luck be with me!

gcc: error trying to exec ‘as’: execvp: No such file or directory

发布于: 2013年01月15日

九九八十一难之二:

第七章:6.7.1. Installation of Linux API Headers

make header_check

CHK include/linux/version.h
HOSTCC scripts/basic/fixdep
gcc: error trying to exec ‘as’: execvp: No such file or directory
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2

Google到了最接近答案的内容:

 

http://www.linuxquestions.org/questions/linux-from-scratch-13/failed-on-chapter-6-7-1-installation-of-linux-api-headers-make-headers_check-928113/

 

 

除了对方使用LFS-7.0,而我使用LFS-7.2以外,诊断完全一致。

 

可执行文件 as 来自软件包Binutils-2.22,在/tools/bin里面并没有as文件,但存在i686-lfs-linux-gnu-as

在host 环境下执行:

# /tools/bin/i686-lfs-linux-gnu-ld -v

GNU ld (GNU Binutils) 2.22

chroot 到LFS之后执行:

# ./i686-lfs-linux-gnu-ld -v
bash: ./i686-lfs-linux-gnu-ld: No such file or directory

根据上面链接的最终解决方案是从第五章重新开始。无奈….

如果前面那里错了的话,那么应该是 Binutils-2.22 Pass 2

存档,Restart over again.

 

Day-2 跟进:

/tools 目录下可以搜索到连个相关文件:

/tools/bin/i686-lfs-linux-gnu-as

/tools/i686-lfs-linux-gnu/bin/as

但实际上这两个并非二进制文件,而是shell命令。

进入 Binutils-2.22 Pass 2重新make install 一次,发现/tools/bin目录下出现as文件。

结论:严重怀疑5.33. Stripping章节中的下面这行命令删除了不该删的东西:

strip –strip-unneeded /tools/{,s}bin/*

强烈建议同道人士跳过5.33. Stripping章节

Glibc-2.16.0 编译错误 -z relro 支持问题

发布于: 2013年01月11日

前一篇文章提到找点乐子,Linux From Scratch。我并没有食言。

LFS is starting…

Version 7.2

Debian 6.0 Host

编译到Glibc时出现第一个问题,configure 时出现-z relro支持问题,错误代码如下:

checking for -z nodelete option… yes
checking for -z nodlopen option… yes
checking for -z initfirst option… yes
checking for -z relro option… no
configure: error: linker with -z relro support required

gmane.org上的邮件列表日志认为是awk指向了mawk造成的。但只答对了一半,我google到的结果似乎是这样的:

awk要么指向mawk,要么指向gawk,已经没有原始版本的awk了。

mawk version:

mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

gawk version:

GNU Awk 3.1.7
Copyright (C) 1989, 1991-2009 Free Software Foundation.

安装gawk看起来更新一些。

解决方法:apt-get install gawk

安装完成后awk会自动指向gawk,重新configure即可通过。

了无生趣?No!

发布于: 2013年01月06日

又到一年总结时。

2012年,文章少产到了一定的程度。总共9篇博文,有6个月0产出。

网站上的了无生趣,并不代表现实生活一样无趣。相反,已过而立之年的男人,在龙年收货了龙女一枚,算是丰富多彩的一个顶峰。

2013年,真实的生活会是相当tough的一年,也很有可能会是一个转折。好的,或者坏的,都有可能。但无论如何,我都会是一个坚定的反战分子。

好吧,那都跟网站无关。新的一年,我打算在自己的兴趣上找点乐子。

一个闲置的上网本,挤出来一点闲暇的时间,Linux From Scratch

1个月?2个月?不管多久会有成果,或者说不管有没有成果。

Will good luck be with me!

Win7 rsync 同步出现权限不足的问题

发布于: 2013年01月05日

rsync 是一款很好的开源文件同步工具,本站以前也撰文介绍过,博主我也一直在用。

最近发现Win7系统下同步时,会出现权限不足的错误( Permission Denied (13)),即使哪些文件夹是rsync上次同步时自己建立的。

解决方案如下:

在rsync的命令辅助参数中增加忽略权限的参数:–chmod=ugo=rwX

比如原来命令:

C:\Program Files\ICW\bin\rsync.exe -vazu –progress –delete 192.168.1.100::work .\work

改为:

C:\Program Files\ICW\bin\rsync.exe -vazu –chmod=ugo=rwX  –progress –delete 192.168.1.100::work .\work

完毕!Good luck!

何时才能放下?一个Copy来的故事

发布于: 2012年08月26日

下面这个Copy来的故事早已知晓,牢记于心,常常引用。可是自己又到何时才能如此放得下?

有一个美国商人坐在墨西哥海边一个小渔村的码头上,看着一个墨西哥渔夫划着一艘小船靠岸,小船上有好几尾大黄鳍鲔鱼。这个美国商人对墨西哥渔夫能抓这么高档的鱼恭维了一番,还问要多少时间才能抓这么多?墨西哥渔夫说,才一会儿功夫就抓到了。美国人再问,你为什么不待久一点,好多抓一些鱼?墨西哥渔夫觉得不以为然:这些鱼已经足够我一家人生活所需啦!

美国人又问:那么你一天剩下那么多时间都在干什么?

墨西哥渔夫解释:我呀?我每天睡到自然醒,出海抓几条鱼,回来后跟孩子们玩一玩;再跟老婆睡个午觉,黄昏时晃到村子里喝点小酒,跟哥儿们玩玩吉他。我的日子可过得充满又忙碌呢!

美国人不以为然,帮他出主意,他说:我是美国哈佛大学企管硕士,我倒是可以帮你忙!你应该每天多花一些时间去抓鱼,到时候你就有钱去买条大一点的船。自然你就可以抓更多鱼,在买更多渔船。然后你就可以拥有一个渔船队。
到时候你就不必把鱼卖给鱼贩子,而是直接卖给加工厂。然后你可以自己开一家罐头工厂。如此你就可以控制整个生产、加工处理和行销。然后你可以离开这个小渔村,搬到墨西哥城,再搬到洛杉矶,最后到纽约,在那经营你不断扩充的企业。

墨西哥渔夫问:这又花多少时间呢?

美国人回答:十五到二十年。

墨西哥渔夫问:然后呢?

美国人大笑着说:然后你就可以在家当皇帝啦!时机一到,你就可以宣布股票上
市,把你的公司股份卖给投资大众;到时候你就发啦!你可以几亿几亿地赚!

然后呢?

美国人说:到那个时候你就可以退休啦!你可以搬到海边的小渔村去住。每天睡到自然醒,出海随便抓几条鱼,跟孩子们玩一玩,再跟老婆睡个午觉,黄昏时,晃到村子里喝点小酒,跟哥儿们玩玩吉他。

墨西哥渔夫疑惑的说:我现在不就是这样了吗?

浙ICP备18056264号-1