|
|
发表于 2006-5-6 18:18:48
|
显示全部楼层
阶段性胜利, 证明了这个是完全可行的, 而且并不复杂, 甚至比 clfs 简单
装好 glibc-2.4 了 , 具体步骤,
1. 在 /tools 里多装的软件:
m4 bison flex : 高版本的 binutils 需要, 如果用 2.16.1 可以不要
python python-fchksum zlib wget : portage 需要
rsync 暂时可以不要, 不用 emerge -sync, 用 emerge-websync 调用 wget .
安装 portage 只能根据 ebuild 脚本手动安装. 里面有许多硬编码, 有些程序需要软连接到 /usr/bin 里 portage 才能用.
2. 按 lfs 的要求安装 linux-headers,自己定一个差不多的版本, 然后满足 emerge 的要求, 这里还多了 linux kernel
echo "sys-kernel/linux-headers-2.6.16" >> /etc/portage/profile/package.provided
echo "sys-kernel/vanilla-sources-2.6.16.13" >> /etc/portage/profile/package.provided
echo "virtual/alsa sys-kernel/vanilla-sources" >> /etc/portage/profile/virtuals
echo "virtual/linux-sources sys-kernel/vanilla-sources" >> /etc/portage/profile/virtuals
echo "virtual/os-headers sys-kernel/linux-headers" >> /etc/portage/profile/virtuals
3. emerge glibc --pretend
如果 glibc-2.4 被 mask , 自己解决 gentoo 精华可以看, 看看有什么包被依赖, 先记下来.
emerge glibc --nodeps 一般都能装好,
还可以把依赖包放到 provided 里
也可以试试emerge 依赖包, 不过这样不太好,
然后, 很重要, 就是 lfs 的 adjust tool chain , 调整工具链.
- gcc -dumpspecs | \
- perl -p -e 's@/tools/lib/ld@/lib/ld@g;' \
- -e 's@\*startfile_prefix_spec:\n@$_/usr/lib/ @g;' > \
- `dirname $(gcc --print-libgcc-file-name)`/specs
复制代码 检查- echo 'main(){}' > dummy.c
- cc dummy.c
- readelf -l a.out | grep ': /lib'
- 输出
- [Requesting program interpreter: /lib/ld-linux.so.2]
复制代码
题外话, 老是这样, 是不是被人 dos 了?
- IN=ppp0 OUT= MAC= SRC=222.94.10.566 DST=222.94.83.57 LEN=48 TOS=0x00 PREC=0x00 TTL=123 ID=10658 DF PROTO=TCP SPT=2115 DPT=135 WINDOW=65044 RES=0x00 SYN URGP=0
- IN=ppp0 OUT= MAC= SRC=218.167.29.212 DST=222.94.83.57 LEN=48 TOS=0x00 PREC=0x00 TTL=111 ID=30905 DF PROTO=TCP SPT=3252 DPT=445 WINDOW=64800 RES=0x00 SYN URGP=0
- IN=ppp0 OUT= MAC= SRC=218.167.29.212 DST=222.94.83.57 LEN=48 TOS=0x00 PREC=0x00 TTL=111 ID=31483 DF PROTO=TCP SPT=3252 DPT=445 WINDOW=64800 RES=0x00 SYN URGP=0
复制代码 |
|