LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 911|回复: 8

CLFS based Gentoo 新问题

[复制链接]
发表于 2006-5-5 10:21:56 | 显示全部楼层 |阅读模式
CLFS 部分 /cross-tools 和 /tools 完成,, /cross-tools 已经没用了.

现在已经 chroot 到 clfs 里了. 编译安装 glibc 是没有问题的.

目前所有软件都在 /tools, /bin 和 /usr 等决定使用 emerge 安装.

多装的软件:
m4 bison flex : 高版本的 binutils 需要, 如果用 2.16.1 可以不要
python python-fchksum zlib wget : portage 需要

rsync 暂时可以不要, 不用 emerge -sync, 用 emerge-websync 调用 wget .

安装 portage 只能根据 ebuild 脚本手动安装. 里面有许多硬编码, 有些程序需要软连接到 /usr/bin 里 portage 才能用.

先装4个基础包, kernel-header glibc binutils gcc ( lfs 的顺序)

安装时的依赖包大都可以
echo needed/package >> /etc/make.profile/package.provided
以后再去掉, 重装.

问题:
1. kernel-header 对应的 gentoo 包是什么? virtual/os-headers ? 可这是虚拟包, 对应有 ebuild 的真实的包呢? sys-kernel/linux-headers ? 这个包找不到对应最新内核的, 2.6.16 的非要下载 linux-2.6.16.tar.bz2, 2.6.16.13 都不行.

2. 有些包放到 /etc/make.profile/package.provided 里也不行, 还是要下载, 结果, 循环依赖了( 基本上, 所有软件都依赖 glibc ). 怎么解决? 有办法让 gentoo 认为已经装了吗?
 楼主| 发表于 2006-5-5 11:05:15 | 显示全部楼层
1.
/usr/include/linux/* /usr/include/asm/* 这些文件是那个包的.
有了这个, 就可以 emerge --nodeps glibc 了.

2.
sys-kernel/linux-headers 是不是对应 linux-headers ?
/usr/include/linux/* /usr/include/asm/* 这些文件?
到底是怎么产生的? 是一个写好的包, 还是从 内核源码 用脚本生成的?
此包要下载的文件, gentoo-headers-2.6.16-2.tar.bz2 好像只是 patch 而已.
而且这个包 emerge 时要下载 linux-2.6.16.tar.bz2.

3.
sys-kernel/gentoo-sources 对应  内核源码 , 比如 linux-2.6.16.tar.bz2 + genpatches-2.6.16-8.base.tar.bz2 + genpatches-2.6.16-8.extra.tar.bz2 但
Each patchset is based on the initial stable release of the kernel's released at kernel.org (e.g. 2.6.10, 2.6.11, 2.6.12).
只支持到比如 2.6.16 , 2.6.16.13 它就不认了.
有办法直接支持 2.6.16.13 吗? 或者第三方的 ebuild ?
我对 gentoo-sources-2.6.16-r6.ebuild 读不太懂, 不会改.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 11:27:11 | 显示全部楼层
或者这样问:

有没有办法, 在没有装这个包的时候, 没有下载, 没有编译, 就知道这个包将会装什么内容.
比如, glibc 里有 /lib/libc.so

有没有办法知道, 一个文件, 是哪个包的内容. 比如, /usr/include/linux/* 是哪个包会装.

rpm 系统这个问题很好办, rpmfind.net 就能解决, 有时非 rpm 系统, 我也会查, 至少知道大概的包名和文件名.

而 gentoo 中现在不好查, packages.gentoo.org 不能查文件.

除了麻烦哪位装好 gentoo 的朋友帮忙查一下以外, 还有什么办法?
回复 支持 反对

使用道具 举报

发表于 2006-5-5 11:52:29 | 显示全部楼层
equery b your-filename
没装的就不知道怎么查了,以前midx给了个查询的网站,找不倒了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 11:59:41 | 显示全部楼层
那就只能请 Lolita 帮我查一下, /usr/include/linux/里随便哪个文件, 是哪个包会装.
回复 支持 反对

使用道具 举报

发表于 2006-5-5 12:11:22 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 12:12:07 | 显示全部楼层
谢谢, 找到那个网站了
http://www.rommel.stw.uni-erlangen.de/~fejf/pfs/

/usr/include/linux/ 确实是 sys-kernel/linux-headers 的, 我还是不懂怎么生成的.

不能用 2.6.16.13 也是很麻烦.
回复 支持 反对

使用道具 举报

发表于 2006-5-5 12:44:11 | 显示全部楼层
你装一下不就知道了
就是下载一个kernel source把include里的linux asm拷过去
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-5 22:39:06 | 显示全部楼层
Å好 glibc-2.4 了 ,

1. 按 lfs 的¹ÕÅ linux-headers, 然后á³ emerge 的要求
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

2. emerge glibc --pretend
如œ glibc-2.4 « mask , êñã³, 看看有À么包«赖, 先°下来.
emerge glibc --nodeps 一般都能装好,
还可以把依赖包放到 provided 里
也可以试试emerge 依赖包, 不过这样不太好,
然后, 很重要, 就是 lfs 的 adjust tool chain , 调整工具链.
  1. gcc -dumpspecs | \
  2. perl -p -e 's@/tools/lib/ld@/lib/ld@g;' \
  3.      -e 's@\*startfile_prefix_spec:\n@$_/usr/lib/ @g;' > \
  4.      `dirname $(gcc --print-libgcc-file-name)`/specs
复制代码
检查
  1. echo 'main(){}' > dummy.c
  2. cc dummy.c
  3. readelf -l a.out | grep ': /lib'
  4. 输出
  5. [Requesting program interpreter: /lib/ld-linux.so.2]
复制代码


题外话, 老是这样, 是不是被人 dos 了?
IN=ppp0 OUT= MAC= SRC=222.94.105.66 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
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表