关于安装LFS的几点疑问
时间:2009-01-21
来源:互联网
按照手册进行到建立交叉编译环境 5.12 的时候glibc编译出错
聚焦深空 推荐的两个帖子
http://www.linuxsir.org/bbs/thread331921.html
http://www.linuxsir.org/bbs/thread326858.html
我发现他们在编译静态GCC的时候和官方手册上不一样
make all-gcc make all-target-libgcc make install-gcc make install-target-libgcc
而官方手册上只是
make && make install
请问哪一种是标准的?
按照官方的手册做也会出错,我只能认为是我自己宿主的原因。。
毕竟每台机器的情况都不一样
请各位前辈推荐一个宿主系统
我的目标系统是 x86_64 Pure64 .宿主系统用什么版本的比较好?
我手头有Debian x86_64 arch x86_64 gentoo x86_64
三种光盘。。
作者: kimux 发布时间: 2009-01-21
作者: kimux
我是按照http://cross-lfs.org/view/svn/x86_64-64/ 安装的
按照手册进行到建立交叉编译环境 5.12 的时候glibc编译出错 聚焦深空 推荐的两个帖子 http://www.linuxsir.org/bbs/thread331921.html http://www.linuxsir.org/bbs/thread326858.html 我发现他们在编译静态GCC的时候和官方手册上不一样 |
作者: kimux
也没有找到编译 glibc-header 的步骤
|
作者: kimux
而官方手册上只是
代码:
make && make install |
作者: kimux
宿主系统用什么版本的比较好
|
理论上来说host中只要装有这里列出的软件就能满足要求,但是这个页面写得似乎有些矛盾:
You should be able to build a CLFS system from just about any Unix-type operating system.
从这句话来看任何Unix-type的系统都能做host,可是
下面又要求需要Linux 2.6.22,不过这是最近加上的,是为了满足coreutils的要求,具体请看changelog。
我还是推荐用lfslivecd http://www.linuxfromscratch.org/livecd/download.html
作者: newper 发布时间: 2009-01-21
作者: newper
gcc4.2与gcc4.3是有区别的,4.3的libgcc在编译时独立了出来,不再放在gcc一起,所以命令有所改变。
CLFS手册中在编译gcc-static时加了两个参数--without-headers --with-newlib 使gcc不依赖于glibc-headers而使用'newlib'。 |
我的glibc编译过不去就是这个原因吧?EN。。这个不能乱猜,我下午试验一下
如果我编译glibc-headers ,就按照上面两个帖子的方法就可以了吧?
然后去掉这两个参数
作者: kimux 发布时间: 2009-01-21
作者: newper
请你看清楚,这是装kernel-headers的步骤,手册中已经去掉了glibc-headers的步骤。
|
http://cross-lfs.org/view/svn/x86_64...cc-static.html
这里用的就是make && make install 啊
作者: kimux 发布时间: 2009-01-21
作者: kimux
那就是说手册上的命令是错误的?
我的glibc编译过不去就是这个原因吧?EN。。这个不能乱猜,我下午试验一下 如果我编译glibc-headers ,就按照上面两个帖子的方法就可以了吧? 然后去掉这两个参数 |
http://www.linuxfromscratch.org/lfs/view/development/
http://www.linuxfromscratch.org/~jhu.../lfs-multilib/
作者: newper 发布时间: 2009-01-21
作者: newper
CLFS手册上的命令是正确的,你两次编译glibc过不去都不是这个原因,第二次是我的问题(再次道歉),而第一次是因为lfs-6.4不支持64bit,不过最新的lfs-svn似乎可以(我没试过,也没仔细看,你也可以去看看)
http://www.linuxfromscratch.org/lfs/view/development/ http://www.linuxfromscratch.org/~jhu.../lfs-multilib/ |
学习阶段总要走点弯路
这两个地址我先研究一下。。
作者: kimux 发布时间: 2009-01-21
作者: newper
我还是推荐用lfslivecd http://www.linuxfromscratch.org/livecd/download.html
|
我听从你的建议,用LIVECD。。
没有空白CD了。。只好浪费一张DVD。

Official LFS LiveCD Documentation Version: x86-6.3-r2160 PACKAGES Available packages on this CD for your use: * Xorg (X Window System Environment) * Xfce desktop environment * Web Tools o wget (command line file retriever) o curl (command line file retriever) o lynx (text web browser) o w3m (text web browser) o irssi (console irc client) o seamonkey (graphical web browser, mail and news reader and irc client) o xchat (x-based irc client) o pidgin (multiprotocol x-based chat client) o finch (multiprotocol console chat client — works in UTF-8 locales only) o msmtp (SMTP client for use with mutt and tin) o mutt (console email client) o tin (console news reader) * Text Editors o vim o nano o joe * Network Tools o SSH server & client o NFS server & client o Samba server & client o Subversion o cvs o pppd o rp-pppoe o pptp client o dhcpcd o ncftp o traceroute o rsync * Filesystem Programs o e2fsprogs o reiserfsprogs o reiser4progs o xfsprogs o dosfstools o ntfsprogs o jfsutils * Debugging Programs o strace * Boot Loaders o grub o lilo * Other Programs o distcc o gpm (console mouse) o pciutils o mdadm o LVM2 o dmraid o kpartx o hdparm o parted o xlockmore
作者: kimux 发布时间: 2009-01-21
作者: newper 发布时间: 2009-01-21
作者: newper
你现在决定做哪个手册?
|
先掌握基本的东西。。
LFS6.3的手册和LFS6.2 有什么重大的改变吗?
我是不是可以按照LFS6.2的中文手册安装
作者: kimux 发布时间: 2009-01-21
另外问一下你下的livecd是x86的还是x86_64的?
作者: newper 发布时间: 2009-01-21
作者: newper
6.2太老了,其实你用lfs-livecd去做CLFS-1.10 Pure64肯定没问题的
另外问一下你下的livecd是x86的还是x86_64的? |
查了一下论坛,准备在硬盘上挂载ISO,就不用刻盘了
。。。
如果照着CLFS-1.10 Pure64的话。。那就DOWN lfslivecd-x86_64-6.3-r2160-nosrc.iso
作者: kimux 发布时间: 2009-01-21
但是手册上给的下载地址根本就是错误的,那个目录里根本没有手册上说的版本。
我只好在红帽的PUB里DOWN了一个,是不是这个原因呢
作者: kimux 发布时间: 2009-01-21
作者: newper 发布时间: 2009-01-21
请有选择参考偶给出的帖子,方法不同(主要是工具链部分):上面手册方法是 CLFS-1.x(类似 LFS),偶用的是CLFS-Sysroot。
另,CLFS-Sysroot 方式中 glibc-header 不是必须的,可简化,参看偶帖子里最后一帖(38楼),过一段时间整理一下。
您已经开始 CLFS,LFS 没必要的,看看即可。
相对来说,CLFS 方法更具一般性,LFS 可看成 CLFS 方法特例。
作者: 聚焦深空 发布时间: 2009-01-22
等您熟悉后,进行伪交叉编译也是可以的。
比如,目标系统是 x86_64-unknown-linux-gnu,宿主可采用 i686-pc-linux-gnu,确保是进行真正的交叉编译,"native" 的两个手册是反例。
偶这里宿主用的是 debian etch i386。
CLFS 对宿主要求比 LFS 宽泛的多,您可以用 GNU/Linux、FreeBSD、*BSD、甚至是 M$ Windows,重要的是检测一下宿主系统基本需求是否满足。(相对您使用的手册 http://cross-lfs.org/view/svn/x86_64.../hostreqs.html)
作者: 聚焦深空 发布时间: 2009-01-22
作者: 聚焦深空
(相对您使用的手册 http://cross-lfs.org/view/svn/x86_64.../hostreqs.html)
|
或许是说用Linux的话要用2.6.22以上,而用其他类Unix系统就无关,不然的话,CLFS就有局限性了
另外想请教一个问题,编译静态的gcc时不会生成libgcc_eh.a这个库,而编译glibc却需要它,所以CLFS用了一个补丁让glibc不去找这个库,可是clfs-sysroot只编译了一遍glibc,也就没有链接到这个库,这样glibc会不会因为缺了这个库丧失了某些功能而在日后使用中出现问题?
作者: newper 发布时间: 2009-01-22
作者: newper
可是这一页上写着Linux 2.6.22,changelog中说是为了满足coreutils的要求。
|
http://www.freebsdsoftware.org/sysutils/coreutils.html
这个只是 svn 的开发版,没必要这么教条。
吼吼,看来您发现了一个 bug,您可以报告给 CLFS 官方。
请您参考一下稳定版 CLFS-1.1.0 相应页面没有 linux-kernel 的要求。
作者: newper
另外想请教一个问题,编译静态的gcc时不会生成libgcc_eh.a这个库,而编译glibc却需要它,所以CLFS用了一个补丁让glibc不去找这个库,可是clfs-sysroot只编译了一遍glibc,也就没有链接到这个库,这样glibc会不会因为缺了这个库丧失了某些功能而在日后使用中出现问题?
|
您要是不放心,可以在建立工具链阶段多编译一遍 glibc。
偶的做法是:用临时系统启动机器后,建立基本系统时,本地编译一遍工具链,包括 glibc,本地编译一遍交叉编译的各个软件包。
嵌入式环境下就不一定有这样的便利了。
请参考一下
http://www.diy-linux.org/pipermail/d...ne/000556.html
作者: 聚焦深空 发布时间: 2009-01-22
硬盘启动的LIVECD 6,3 用的是这个手册
http://cross-lfs.org/view/1.1.0/x86_64-64/
进行到第6.5节的时候 http://cross-lfs.org/view/1.1.0/x86_...m/ncurses.html
make install Ncurses 的时候,停在这个画面。。用TOP查看,一个tic程序占用100%的CPU
我没有找到Ncurses5.6的下载,用的是Ncurses5.7
srcdir=. \
datadir=/tools/share \
ticdir=/tools/share/terminfo \
source=terminfo.tmp \
THIS_CC="x86_64-unknown-linux-gnu-gcc -m64" \
THAT_CC="gcc" \
/bin/sh ./run_tic.sh
** Building terminfo database, please wait...
Running tic to install /tools/share/terminfo ...
You may see messages regarding extended capabilities, e.g., AX.
These are extended terminal capabilities which are compiled
using
tic -x
If you have ncurses 4.2 applications, you should read the INSTALL
document, and install the terminfo without the -x option.
我看了半天INSTALL。。 英文太差,看不明白
作者: kimux 发布时间: 2009-01-22
特别是看看有没有安装路径、环境变量、补丁与手册不一致的地方。
另,貌似有的 livecd 上有 sourcecode。
作者: 聚焦深空 发布时间: 2009-01-22
作者: 聚焦深空
您遇到的问题满奇怪的,建议先检查一下前面的步骤。
特别是看看有没有安装路径、环境变量、补丁与手册不一致的地方。 另,貌似有的 livecd 上有 sourcecode。 |
我下载的是nosrc的LIVECD..
我找个5.6版本的再试一下
作者: kimux 发布时间: 2009-01-22
livecd下载后,您有没有校验?
Ncurses-5.7 的补丁可以用一下 svn 的。
http://cross-lfs.org/view/svn/x86_64...m/ncurses.html
http://svn.cross-lfs.org/svn/repos/c...update-5.patch
作者: 聚焦深空 发布时间: 2009-01-22
作者: 聚焦深空
偶暂时也无法确定您的问题所在。
livecd下载后,您有没有校验? Ncurses-5.7 的补丁可以用一下 svn 的。 http://cross-lfs.org/view/svn/x86_64...m/ncurses.html http://svn.cross-lfs.org/svn/repos/c...update-5.patch |
全部文件下载后 都校验过
作者: kimux 发布时间: 2009-01-22
这个与您的情况类似 CLFS-1.0.0 的,解决方法偶认为是错误的。
这个是 伪交叉编译 的情况,x86_64-cross-linux-gnu -> x86_64-unknown-linux-gnu。
希望您不是这种情况,您使用的是 for i386 的 livecd 吗?
下面也是类似的情况 非CLFS
http://www.mailinglistarchive.com/lf.../msg26751.html
http://www.linuxsir.org/bbs/lastpostinthread310154.html
作者: 聚焦深空 发布时间: 2009-01-22
作者: newper 发布时间: 2009-01-22
作者: 聚焦深空
http://www.mail-archive.com/clfs-sup.../msg01051.html
这个与您的情况类似 CLFS-1.0.0 的,解决方法偶认为是错误的。 这个是 伪交叉编译 的情况,x86_64-cross-linux-gnu -> x86_64-unknown-linux-gnu。 希望您不是这种情况,您使用的是 for i386 的 livecd 吗? 下面也是类似的情况 非CLFS http://www.mailinglistarchive.com/lf.../msg26751.html http://www.linuxsir.org/bbs/lastpostinthread310154.html |
没有任何错误提示,光标停留在最后一行 ,CPU 100%
OK,5.6通过
作者: kimux 发布时间: 2009-01-22
作者: newper
我注意到svn的手册在cross-tools部分编译了一次tic不知与此有无关系,另外请问您有没有打5.7的bash-fix补丁?
|
换成ncurses5.6通过
作者: kimux 发布时间: 2009-01-22
作者: newper 发布时间: 2009-01-22
作者: newper
提醒一下:您做Pure64的话grub-0.97就不能用了,CLFS手册上用的是lilo,如果您对lilo不熟,再加上您的livecd是硬盘启动,如果lilo配置错误,那么可能需要找张livecd去修改。
|
我手里有SYSTEM的LIVECD
作者: kimux 发布时间: 2009-01-22
作者: 聚焦深空
http://www.mail-archive.com/clfs-sup.../msg01051.html
这个与您的情况类似 CLFS-1.0.0 的,解决方法偶认为是错误的。 这个是 伪交叉编译 的情况,x86_64-cross-linux-gnu -> x86_64-unknown-linux-gnu。 希望您不是这种情况,您使用的是 for i386 的 livecd 吗? |
看来伪交叉编译确实会出很多问题,可是diy-linux早就开始用这种方法,lfs-svn也引入了diy-linux的方法,CLFS也弄出个CLFS-native。而这些手册现在都是cvs/svn版,到以后正式版了或许会有一大堆patch/sed命令,还要设定LDFLAGS,累啊……
当初clfs-sysroot刚开始时也是这样,几乎编译一个软件就要打一个补丁,现在好些了
作者: newper 发布时间: 2009-01-22
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28