LFS 学习日记(精读前言2)

(标记惯例: question: 疑问;todo: 需要以后完成的;translation: 翻译问题;)

/LFS6.6/LFS-BOOK-6.6-HTML/prologue/architecture.html

LFS book 主要针对的是32位 intel CPU。这也是为其教育目的而简化的。

对于64位系统:
需要一个已经安装在上面的宿主系统(question:不知是否一定要64位的系统?);
相对于把32位系统安装在64位系统上,在增加一点体积的情况可以增加一点速度;
在LFS中,默认编译的是纯64位系统,若要32位、64位都可用需要 "multi-lib",这个主题在Cross Linux From Scratch( http://trac.cross-lfs.org/ )中;
有些软件包不能用常规的方法在纯64位系统上编译。

http://www.linuxfromscratch.org/lfs/view/6.6/prologue/standards.html

translation: Since LFS is source based, the user has complete control over what packages are desired(用户可以完全控制想要安装的软件包) and many choose not to install some packages that are specified by the LSB.

LSB 标准的主要目的是为专有软件可以运行在一个 LSB 标准兼容的系统上;

question: Creating a complete LFS system capable of passing the LSB certifications tests is possible, but not without many additional packages that are beyond the scope of LFS. (but not without 翻译?)

http://www.linuxfromscratch.org/lfs/view/6.6/prologue/package-choices.html
question: This includes all packages needed to replicate itself while providing a relatively minimal base from which to customize a more complete system based on the choices of the user. (needed to replicate 翻译?)

question: It is often needed to rebuild a package after updates to the build procedures. (?)

todo: 鉴于 autoconf 和 automake 包的使用方法不明白,有必要在 Linux 下面写一个简单的练习程序来学习它们的使用(在首次编译成功 LFS 后有需要的时候)。

question: Expect This package contains a program for carrying out scripted dialogues with other interactive programs. (?)

question: Flex This package contains a utility for generating programs that recognize patterns in text. It is the GNU version of the lex (lexical analyzer) program. It is required to build several LFS packages.(?)

todo: 软件包: GMP Groff Iana-etc Inetutils MPFR Readline Tcl 的基本认识

translation: Iana-etc It is needed to enable proper networking capabilities(启用正确的网络功能需要它).

todo: 需要弄明白在此节中每个软件包的具体作用和使用方法,并能熟练使用其中的针对定制系统的关键性的一些软件包。

http://www.linuxfromscratch.org/lfs/view/6.6/prologue/hostreqs.html

cat > version-check.sh << "EOF" #将标准输入的内容重定向到文件 version-check.sh 中,当输入“EOF”时停止输入
#!/bin/bash
export LC_ALL=C

# Simple script to list version numbers of critical development tools

bash --version | head -n1 | cut -d" " -f2-4 # 先取 bash --version 命令输出的第一行,然后以空格“ ”为分隔符取这第一行中第2至第4字段
echo "/bin/sh -> `readlink -f /bin/sh`" #输出 /bin/sh 的符号链接值。question: readlink 的 -f -e -m 参数的区别不清楚
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- # 输出 ld --version 命令的首行,以空格为分隔符取第3至末尾字段的内容

在我现在的 Ubuntu 10.04 中,Binutils: (GNU Binutils for Ubuntu) 2.20.1-system.20100303,是 LFS 所指不推荐高于 2.20版本的范围,可能问题不大,试试(在#lfs-support@irc.linuxfromscratch.org问了人,应该是没有问题。littlebat 2010.06.03注:LFS6.6 勘误表已出: http://www.linuxfromscratch.org/lfs/errata/6.6/ ,系统最低要求为: http://www.linuxfromscratch.org/lfs/view/development/prologue/hostreqs.html Ubuntu 10.04 的 binutils 版本为 2.20.1 可以使用。)。

安装了 bison 后,检测脚本通过。