1.chroot后不要再打开新的终端了,没法用,还可能使系统崩溃。另外如果需要去睡觉,重启后要再次挂载并填充/dev和挂载虚拟内核文件系统,并再次运行chroot,可以将下列命令保存为脚本,重启后一次运行

mount /dev/sda9 /mnt/lfs
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
if [ -h $LFS/dev/shm ]; then
link=$(readlink $LFS/dev/shm)
mkdir -p $LFS/$link
mount -vt tmpfs shm $LFS/$link
unset link
else
mount -vt tmpfs shm $LFS/dev/shm
fi chroot "$LFS" /tools/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h

2,安装Linux api头文件,执行 make mrproper出错:

make: /bin/sh: Command not found
Makefile:579: /sources/linux-3.10/arch//Makefile: No such file or directory make: gcc: Command not found

添加链接:

ln -sf /bin/bash /bin/sh
ln -sv /tools/lib/ld-linux.so.2 /lib/ld-linux.so.2

3. 该中文版文档提供的Man-pages包下载地址失效了,之前没下到这个包,到 这里可以下载。别把Man-pages和Man-DB当成一个了。

4.glibc测试之后执行grep Error glibc-check-log ,显示如下错误:

make[2]: [/sources/glibc-build/posix/annexc.out] Error 1 (ignored)
make[2]: *** [/sources/glibc-build/nptl/tst-cancel4.out] Error 1
make[2]: *** [/sources/glibc-build/nptl/tst-cancel5.out] Error 1
make[2]: *** [/sources/glibc-build/nptl/tst-cancelx4.out] Error 1
make[2]: *** [/sources/glibc-build/nptl/tst-cancelx5.out] Error 1
make[1]: *** [nptl/tests] Error 2
make[2]: [/sources/glibc-build/conform/run-conformtest.out] Error 1 (ignored)

和文档声明的可忽略错误不大一致,但忽略之后也没遇到问题

常用中文区域数据   :

localedef -i zh_CN -f GB18030 zh_CN
localedef -i zh_CN -f GBK zh_CN
localedef -i zh_CN -f UTF-8 zh_CN
localedef -i zh_CN -f GB2312 zh_CN
localedef -i zh_HK -f UTF-8 zh_CN
localedef -i zh_HK -f BIG5-HKSCS zh_CN
localedef -i zh_TW -f EUC-TW zh_CN
localedef -i zh_TW -f UTF-8 zh_CN
localedef -i zh_TW -f BIG5 zh_CN

5.binutils包,make出错:

make[2]: *** [info-recursive] Error 1
make[2]: Leaving directory `/sources/binutils-build/bfd'
make[1]: *** [all-bfd] Error 2
make[1]: Leaving directory `/sources/binutils-build'
make: *** [all] Error 2

make clean, make distclean,重来一遍,居然好了

6.安装gcc,安装测试成功后有个:

echo 'main(){}' > dummy.c
cc dummy.c -v -Wl,--verbose &> dummy.log
readelf -l a.out | grep ': /lib'

应该有输出,可我这没有。不过后面几个检查都正常

7.coreutils,make出错:

help2man: can't get '--help' info from man/expr.td/expr
make[2]: *** [man/expr.1] Error 127
make[2]: Leaving directory `/sources/coreutils-8.21'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/sources/coreutils-8.21'
make: *** [all] Error 2

这个有点麻烦,出错原因可能在上面gcc那里,dummy函数测试没有输出,可要是重新从gcc那开始也太麻烦了。参照这里的一个帖子,我拼凑出了个解决办法,有可能不对:

执行

expr --help

输出大概是

./expr: error while loading shared libraries: libgmp.so.10: cannot open shared object file: No such file or directory

说明加载libgmp.so.10这个共享库时出错了,在coreutls-8.21目录下执行

ldd src/expr

输出类似下面:

linux-vdso.so.1 (0x00007fffad9a9000)

libgmp.so.10 => not found

libc.so.6 => /tools/lib/libc.so.6

我仿照前面的章节自己给它添加了链接

mv -v /usr/lib/libgmp.so.10* /lib/
ln -sfv /lib/libgmp.so.10 /usr/lib/libgmp.so.10

之后make就通过了。

但执行ldconfig -v 检查还有问题,还带出来前面的一个(据情况而定):

ldconfig: Cannot stat /usr/lib/libncursesw.so: No such file or directory
ldconfig: Cannot stat /usr/lib/libgmp.so: No such file or directory

以下两条命令修复:

ln -sfv /lib/libncursesw.so.5 /usr/lib/libncursesw.so
ln -sfv /lib/libgmp.so.10 /usr/lib/libgmp.so

8.安装bash,make出错:

/bin/sh: error while loading shared libraries: libncursesw.so.5: cannot open shared object file: No such file or directory
make: [install] Error 127 (ignored)

又是动态库的问题

ln -sv /lib/libncursesw.so.5 /tools/lib/libncursesw.so.5

9. gettext-0.18.3,make出错:

make[4]: Entering directory `/sources/gettext-0.18.1.3/gettext-tools/src'
/bin/sh ../libtool --tag=CC --mode=link gcc -std=gnu99 -g -O2 -o msgcmp msgcmp-msgcmp.o msgcmp-msgl-fsearch.o libgettextsrc.la -lm
libtool: link: cannot find the library `/mnt/lfs/sources/gettext-0.18.1.3/gettext-tools/gnulib-lib/libgettextlib.la' or unhandled argument `/mnt/lfs/sources/gettext-0.18.1.3/gettext-tools/gnulib-lib/libgettextlib.la'
make[4]: *** [msgcmp] Error 1
make[4]: Leaving directory `/sources/gettext-0.18.1.3/gettext-tools/src'

这是个令人伤感的问题,它让我认识到了先前做了好多错事……说来话长,看看这 可恶的教训。在lfs准备阶段,曾编译过这个包,当时没把它删除,这次再用,出问题了。删掉源码包,重新解压编译。

10.编译iproute2-3.9.0,make出错:

lnstat.c: In function 'build_hdr_string':
lnstat.c:169:30: error: argument to 'sizeof' in 'memset' call is the same expression as the destination; did you mean to provide an explicit length? [-Werror=sizeof-pointer-memaccess]
memset(th.hdr[i], 0, sizeof(th.hdr[i]));

源码问题, 点此下载patch。 参考

lfs遇到的一些问题--编制LFS的更多相关文章

  1. LFS初次成功+如何粘贴复制LFS命令

    搞了几次LFS,终于成功了,总算舒了一口气. 这次搞LFS用到的资料:LFS文档:http://www.ha97.com/book/lfs-book-6.6/index.html  一份简单的指导文章 ...

  2. lfs遇到的一些问题--准备阶段

    本机宿主系统archlinux,lfs SVN-20130711,参考文档 1.在离开或重新进入当前工作环境 (比如 su 成为 root 或者其他用户) 时不要忘记检查 $LFS 是否设置好. ec ...

  3. 《从LFS到自己的Linux发行版》系列教程:一步到位体验LFS11.0

    ​​ 目录 前言 第一节:LFS 准备工作 第二节:一步完成你的 LFS11.0 第三节:开启你的 LFS 系统 结语 前言 如果你把从源代码开始编译构建一个操作系统的工作当成厨师做一桌菜的话,Lin ...

  4. 从头开始构建LINUX [LFS 脚本]

    脚本共享在这 http://pan.baidu.com/s/1nt6yiH7 version-check.sh : 这个是检查HOST机器的软件依赖情况 host-dep.sh:针对ubuntu10_ ...

  5. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(二)

    七. 构建临时系统 1. 通用编译指南 a. 确认是否正确设置了 LFS 环境变量 echo $LFS b. 假定你已经正确地设置了宿主系统的符号链接: 1)shell 使用的是 bash. 2)sh ...

  6. Linux From Scratch(从零开始构建Linux系统,简称LFS)- Version 7.7(一)

    一. 准备工作 1. 需要一个Linux宿主系统,例如早先版本的 LFS,Ubuntu/Fedora,SuSE 或者是在你的架构上可以运行的其它发行版 如果想实现Win7与Linux双系统,可参考我的 ...

  7. LFS 中文版手册发布:如何打造自己的 Linux 发行版

    您是否想过打造您自己的 Linux 发行版?每个 Linux 用户在他们使用 Linux 的过程中都想过做一个他们自己的发行版,至少一次.我也不例外,作为一个 Linux 菜鸟,我也考虑过开发一个自己 ...

  8. LFS,编译自己的Linux系统 - 完成准备工作

    $LFS 确保环境变量$LFS已被定义. 定义:export LFS=/mnt/lfs 检查:echo $LFS 建立目录 $LFS/tools $LFS/tools目录用于存放和编译一些临时使用的工 ...

  9. alfs学习笔记-自动化构建lfs系统

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 一名linux爱好者,记录构建Linux From Scratch的过程 经博客园-骏马金龙前辈介绍,开始接触学习lfs,用博客 ...

随机推荐

  1. 暑假集训(1)第七弹 -----Oil Deposits(Poj1562)

    Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...

  2. 通过 OpenNI 建立 Kinect 3D Point Cloud

    這篇還是算延續前一篇的<透過 OpneNI 合併 Kinect 深度以及彩色影像資料>.在可以透過 OpenNI 讀取到 Kinect 的深度.色彩資訊之後,其實就可以試著用這些資訊,來重 ...

  3. 利用php获取图片完整Exif信息类 获取图片详细完整信息类

    <?php /** * @Author: TonyLevid * @Copyright: TonyLevid.com * @Name: Image Exif Class * @Version: ...

  4. 检测 IE 版本 in Javascript

    点击打开链接http://stackoverflow.com/questions/10964966/detect-ie-version-in-javascript <!doctype html& ...

  5. qt 5 基础知识 2(控件篇)

    QVBoxLayout *lay = new QVBoxLayout(this); // 创建一个竖直的盒子 lebel 篇 lay->addWidget(label = new QLabel( ...

  6. iOS Copy 和 MutableCopy的区别 深浅拷贝的区别-供参考

    概述 对于系统的非容器类对象,对一不可变对象复制,copy是指针复制(浅拷贝)和mutableCopy就是对象复制(深拷贝).如果是对可变对象复制,都是深拷贝,但是copy返回的对象是不可变的. 对于 ...

  7. Android入门教程之我见

    真正的从安卓入门学习到实际工作也差不多一年时间了,也做了几个项目.在这期间经历了一开始学习Android的基本知识后仍旧无从下手,不知道如何开始开发一个app,到现在也开始学会注意Android架构的 ...

  8. BZOJ 1639: [Usaco2007 Mar]Monthly Expense 月度开支

    Description Farmer John是一个令人惊讶的会计学天才,他已经明白了他可能会花光他的钱,这些钱本来是要维持农场每个月的正常运转的.他已经计算了他以后N(1<=N<=100 ...

  9. 快速搭建PHP开发环境(PhpStorm+EasyPHP)

    写在开头,何为PHP(拍黄片)? P HP是一种开源的通用计算机脚本语言,尤其适用于网络开发并可嵌入HTML中使用(维基百科). 从上我们得出,何为PHP? 1.开源脚本语言. 2.用于网络开发可嵌入 ...

  10. PS命令删除所有EXCHANGE2013内用户邮件

    因为在测试的时间产生了大量测试邮件,所以在正式上线前,要删除所有用户的邮件. 命令如下: Get-Mailbox | Search-Mailbox  -DeleteContent