1.文本交互函数库 ncurses-5.6
- 安装原因:命令交互环境 bash 需要 ncurses 提供的功能,因此在编译 bash 前需要先将 ncurses 编译好
tar xvf /lfs-sources/ncurses-5.6.tar.gz cd ncurses-5.6 ./configure --prefix=/tools --with-shared --without-debug --without-ada --enable-overwrite make make install cd .. rm -rf ncurses-5.6
- --without-ada 该参数告诉 ncurses 即使主系统存在 ada 语言编译器的情况下也不要编译 ada 语言的支持函数库,因为脱离主系统后临时系统中没有 ada 语言的编译器
- --enable-overwrite 该参数使 ncurses 的头文件安装到 ${prefix}/include 中,也就是 /tools/include ,而不是 /tools/include/ncurses ,以保证其他程序可以顺利找到其头文件
2.用户交互环境 bash-3.2
- 安装原因:后续的编译工作都是使用控制台来进行的,这里准备一个可以和用户进行命令交互的平台
tar xvf /lfs-sources/bash-3.2.tar.gz cd bash-3.2 patch -Np1 -i /lfs-sources/bash-3.2-fixes-5.patch ./configure --prefix=/tools --without-bash-malloc make make install ln -vs bash /tools/bin/sh cd .. rm -rf bash-3.2
- --without-bash-malloc bash 自带的 malloc 函数会导致段错误,该参数设置 bash 使用 glibc 中更为稳定的 malloc 函数
- ln -vs bash /tools/bin/sh 设置 bash 为默认的 shell ,许多程序在调用 shell 的时候都是用 sh 命令,所以建立该链接文件
3.压缩工具 bzip2-1.0.4
- 安装 bzip2 软件包后能正确的解开 bzip2 格式压缩的源代码包
tar xvf /lfs-sources/bzip2-1.0.4.tar.gz cd bzip2-1.0.4 make make PREFIX=/tools install cd .. rm -rf bzip2-1.0.4
- bzip2 软件包安装中没有配置过程,默认会安装到 /usr/local 中,使用 PREFIX 指定安装到目录 /tools
4.常用命令工具集 coreutils-6.9
- 制作系统过程中肯定会用到各种常用命令,比如复制和移动文件, coreutils 软件包中包含了这些命令,将其安装到临时系统中
tar xvf /lfs-sources/coreutils-6.9.tar.bz2 cd coreutils-6.9 ./configure --prefix=/tools make make install cp -v src/su /tools/bin/su-tools cd .. rm -rf coreutils-6.9
- cp -v src/su /tools/bin/su-tools 安装 su 命令,su 命令不能被一个非特权用户安装并将其属性设置为 root 所有,需要手动安装它,以便能作为非特权用户在制作目标系统时测试软件包
5.文件比较工具 diffutils-2.8.1
- 某些软件包的测试脚本里会使用 diff 命令,该命令包含在 diffutils 软件包中,将其安装到临时系统中
tar xvf /lfs-sources/diffutils-2.8.1.tar.gz cd diffutils-2.8.1 ./configure --prefix=/tools make make install cd .. rm -rf diffutils-2.8.1
- findutils 软件包中的 find 命令属于 linux 常用命令,在某些软件包的安装测试时也用到,将其安装到临时系统中
tar xvf /lfs-sources/findutils-4.2.31.tar.gz cd findutils-4.2.31 ./configure --prefix=/tools make make install cd .. rm -rf findutils-4.2.31
7.文本处理工具 gawk-3.1.5
- gawk 软件包中包含了 awk 命令,该命令是 unix 及 linux 下都最为常用的文本处理命令之一,我们需要安装该软件包来辅助完成目标系统的制作
tar xvf /lfs-sources/gawk-3.1.5.tar.bz2 cd gawk-3.1.5 ./configure --prefix=/tools cat >> config.h << "EOF" #define HAVE_LANGINFO_CODESET 1 #define HAVE_LC_MESSAGES 1 EOF make make install cd .. rm -rf gawk-3.1.5