附录 C. 依赖关系

LFS 中构建或安装的每一个包或多或少都会依赖于其它的包,甚至有些包甚至是循环依赖关系:第一个包依赖于第二个包,反过来,第二个包的生成或者是安装又需要第 一个包。因为存在这些依赖关系,所以在构建 LFS 系统的时候,软件包的编译或安装的顺序是十分重要的。本章的目的就是告知用户在构建 LFS 时每一个包的依赖项。

对于所有需要编译的软件包,我们列举出三种或者四种类型的依赖。第一种类型是 “安装必选依赖”,否则在编译和安装的时候会出现问题。第二类是 “测试套件依赖”,假如运行一些测试套件,除了第一类的必须安装外,第二类也需要安装。第三类是 “必须之前安装”,此类需要在编译和安装之前就安装。在大多数情况下,是因为它们软件包中的脚本包含有到二进制文件的硬编码。如果不按照顺序编译它们,将会导致 /tools/bin/[binary] 路径变为真实路径写入脚本,然后安装到最终系统中去,这显然是不合适的。 (译者注:这句话写的不是太清楚,大概解释一下:在真实系统中,可能会在某些脚本 中出现这样的路径信息:/usr/bin/vi,但是假如因为安装顺序的问题,这个路径就有可能变成 /tools/usr/bin/vi,最终导致脚本不能正常的运行,这显然是错误的。)

最后一类提及的 “可供选择依赖”,安装方法在此文档类并没有提及,但是这些程序往往对用户来说又都是极其有用。这些软件包可能又有属于自己的 “安装必选依赖” 或者是 “可用选择依赖”。对于这些依赖关系,推荐的做法是在学习完本书之后回到重建 LFS 包。在大多数情况下,重新安装的问题都记录在 BLFS 中。

acl

安装必选依赖: Attr, Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make, Perl, Sed 和 Texinfo
测试套件依赖: Automake, Diffutils, Findutils 和 Libtool
必须之前安装:Coreutils, Sed, Systemd, Tar, Vim
可供选择依赖:

attr

安装必选依赖:Bash, Binutils, Coreutils, GCC, Gettext, Grep, M4, Make, Perl, Sed 和 Texinfo
测试套件依赖:Automake, Diffutils, Findutils 和  Libtool
必须之前安装:Acl, Libcap, Systemd
可供选择依赖:

Autoconf

安装必选依赖: Bash, Coreutils, Grep, M4, Make, Perl, Sed 和 Texinfo
测试套件依赖:Automake, Diffutils, Findutils, GCC 和 Libtool
必须之前安装: Automake
可供选择依赖:Emacs

Automake

安装必选依赖: Autoconf, Bash, Coreutils, Gettext, Grep, M4, Make, Perl, Sed 和 Texinfo
测试套件依赖: Binutils, Bison, Bzip2, DejaGNU, Diffutils, Expect, Findutils, Flex, GCC, Gettext, Gzip, Libtool 和 Tar.
必须之前安装:
可供选择依赖:

Bash

安装必选依赖: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Readline, Sed 和 Texinfo
测试套件依赖: Shadow
必须之前安装:
可供选择依赖: Xorg

Bc

安装必选依赖: Bash, Binutils, Bison, Coreutils, GCC, Glibc, Grep, Make 和 Readline
测试套件依赖: Gawk
必须之前安装: Linux Kernel
可供选择依赖:

Binutils

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, File, Gawk, GCC, Glibc, Grep, Make, Perl, Sed, Texinfo 和 Zlib
测试套件依赖: DejaGNU 和 Expect
必须之前安装:
可供选择依赖:

Bison

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make, Perl 和 Sed
测试套件依赖: Diffutils, Findutils 和 Flex
必须之前安装: Kbd 和 Tar
可供选择依赖: Doxygen (测试套件)

Bzip2

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make 和 Patch
测试套件依赖:
必须之前安装:
可供选择依赖:

Check

安装必选依赖: GCC, Grep, Make, Sed 和 Texinfo
测试套件依赖:
必须之前安装:
可供选择依赖:

Coreutils

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, GMP, Grep, Make, Patch, Perl, Sed 和 Texinfo
测试套件依赖: Diffutils, E2fsprogs, Findutils, Shadow 和 Util-linux
必须之前安装: Bash, Diffutils, Findutils, Man-DB 和 Udev
可供选择依赖: Perl Expect 和 IO:Tty 模块 (测试套件要用)

D-Bus

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed 和 Util-linux
测试套件依赖:
必须之前安装:
可供选择依赖: Xorg Libs

DejaGNU

安装必选依赖: Bash, Coreutils, Diffutils, GCC, Grep, Make 和 Sed
测试套件依赖:
必须之前安装:
可供选择依赖:

Diffutils

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Diffutils, Perl
必须之前安装:
可供选择依赖:

Expat

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make 和 Sed
测试套件依赖:
必须之前安装: XML::Parser
可供选择依赖:

Expect

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Patch, Sed 和 Tcl
测试套件依赖:
必须之前安装:
可供选择依赖:

E2fsprogs

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Gzip, Make, Sed, Texinfo 和  Util-linux
测试套件依赖: Procps-ng,Psmisc
必须之前安装:
可供选择依赖:

File

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed 和 Zlib
测试套件依赖:
必须之前安装:
可供选择依赖:

Findutils

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: DejaGNU, Diffutils 和 Expect
必须之前安装:
可供选择依赖:

Flex

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, M4, Make, Patch, Sed 和 Texinfo
测试套件依赖: Bison (suppressed) 和 Gawk
必须之前安装: IPRoute2, Kbd 和  Man-DB
可供选择依赖:

Gawk

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Patch, Sed 和 Texinfo
测试套件依赖: Diffutils
必须之前安装:
可供选择依赖:

Gcc

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, GMP, Grep, M4, Make, MPC, MPFR, Patch, Perl, Sed, Tar 和 Texinfo
测试套件依赖: DejaGNU 和 Expect
必须之前安装:
可供选择依赖: CLooG-PPL, GNATPPL

GDBM

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Grep, Make 和 Sed
测试套件依赖:
必须之前安装:
可供选择依赖:

Gettext

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Diffutils, Perl 和 Tcl
必须之前安装: Automake
可供选择依赖:

Glibc

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Gzip, Linux API Headers, Make, Perl, Sed 和 Texinfo
测试套件依赖: File
必须之前安装:
可供选择依赖:

GMP

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, M4, Make, Sed 和 Texinfo
测试套件依赖:
必须之前安装: MPFR, GCC
可供选择依赖:

Gperf

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Make
测试套件依赖: Diffutils, Expect
必须之前安装:
可供选择依赖:

Grep

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Patch, Sed 和 Texinfo
测试套件依赖: Gawk
必须之前安装: Man-DB
可供选择依赖: Pcre, Xorg 和 CUPS

Groff

安装必选依赖: Bash, Binutils, Bison, Coreutils, Gawk, GCC, Glibc, Grep, Make, Patch, Sed 和 Texinfo
测试套件依赖: 没有可用的测试套件
必须之前安装: Man-DB 和 Perl
可供选择依赖: GPL Ghostscript

GRUB

安装必选依赖: Bash, Binutils, Bison, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Texinfo 和 Xz
测试套件依赖:
必须之前安装:
可供选择依赖:

Gzip

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Diffutils, Less
必须之前安装: Man-DB
可供选择依赖:

Iana-Etc

安装必选依赖: Coreutils, Gawk 和 Make
测试套件依赖: 没有可用的测试套件
必须之前安装: Perl
可供选择依赖:

Inetutils

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, Ncurses, Patch, Sed, Texinfo 和 Zlib
测试套件依赖: 没有可用的测试套件
必须之前安装: Tar
可供选择依赖:

Intltool

安装必选依赖: Bash, Gawk, Glibc, Make, Perl, Sed 和  XML::Parser
测试套件依赖: Perl
必须之前安装:
可供选择依赖:

IProute2

安装必选依赖: Bash, Bison, Coreutils, Flex, GCC, Glibc, Make 和 Linux API Headers
测试套件依赖: 没有可用的测试套件
必须之前安装:
可供选择依赖:

Kbd

安装必选依赖: Bash, Binutils, Bison, Check, Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Patch 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装:
可供选择依赖:

Kmod

安装必选依赖: Bash, Binutils, Bison, Coreutils, Flex, GCC, Gettext, Glibc, Gzip, Make, Sed, Xz-Utils, Zlib
测试套件依赖: 没有可用的测试套件
必须之前安装: Udev
可供选择依赖:

Less

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装: Gzip
可供选择依赖: Pcre

Libcap

安装必选依赖: Attr, Bash, Binutils, Coreutils, GCC, Glibc, Perl, Make 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装: Systemd
可供选择依赖: Linux-PAM

Libpipeline

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Check
必须之前安装: Man-DB
可供选择依赖:

Libtool

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Autoconf, Automake, Findutils
必须之前安装:
可供选择依赖:

Linux Kernel

安装必选依赖: Bash, Bc, Binutils, Coreutils, Diffutils, Findutils, GCC, Glibc, Grep, Gzip, Kmod, Make, Ncurses, Perl 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装:
可供选择依赖:

M4

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Diffutils
必须之前安装: Autoconf 和 Bison
可供选择依赖: libsigsegv

Make

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Perl 和 Procps-ng
必须之前安装:
可供选择依赖:

Man-DB

安装必选依赖: Bash, Binutils, Bzip2, Coreutils, Flex, GCC, GDBM, Gettext, Glibc, Grep, Groff, Gzip, Less, Libpipeline, Make, Sed 和 Xz
测试套件依赖: Util-linux
必须之前安装:
可供选择依赖:

Man-Pages

安装必选依赖: Bash, Coreutils 和 Make
测试套件依赖: 没有可用的测试套件
必须之前安装:
可供选择依赖:

MPC

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, GMP, Make, MPFR, Sed 和 Texinfo
测试套件依赖:
必须之前安装: GCC
可供选择依赖:

MPFR

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, GMP, Make, Sed 和 Texinfo
测试套件依赖:
必须之前安装: GCC
可供选择依赖:

Ncurses

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Patch 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装: Bash, GRUB, Inetutils, Less, Procps-ng, Psmisc, Readline, Texinfo, Util-linux 和 Vim
可供选择依赖:

Patch

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Grep, Make 和 Sed
测试套件依赖: Diffutils
必须之前安装:
可供选择依赖: Ed

Perl

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, GDBM, Glibc, Grep, Groff, Make, Sed 和 Zlib
测试套件依赖: Iana-Etc 和 Procps-ng
必须之前安装: Autoconf
可供选择依赖:

Pkg-config

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make, Popt 和 Sed
测试套件依赖:
必须之前安装: Kmod
可供选择依赖:

Popt

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make
测试套件依赖: Diffutils 和 Sed
必须之前安装: Pkg-config
可供选择依赖:

Procps-ng

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Make 和 Ncurses
测试套件依赖: DejaGNU
必须之前安装:
可供选择依赖:

Psmisc

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Ncurses 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装:
可供选择依赖:

Readline

安装必选依赖: Bash, Binutils, Coreutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Patch, Sed 和 Texinfo
测试套件依赖: 没有可用的测试套件
必须之前安装: Bash
可供选择依赖:

Sed

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Sed 和 Texinfo
测试套件依赖: Diffutils 和 Gawk
必须之前安装: E2fsprogs, File, Libtool 和 Shadow
可供选择依赖: Cracklib

Shadow

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Make 和 Sed
测试套件依赖: 没有可用的测试套件
必须之前安装: Coreutils
可供选择依赖: Acl, Attr, Cracklib, PAM

Systemd

安装必选依赖: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, Expat, Gawk, GCC, Glibc, Gperf, Grep, Intltool, Libcap, Make, Sed 和 Util-linux
测试套件依赖:
必须之前安装:
可供选择依赖:

Tar

安装必选依赖: Acl, Attr, Bash, Binutils, Bison, Coreutils, GCC, Gettext, Glibc, Grep, Inetutils, Make, Sed 和 Texinfo
测试套件依赖: Autoconf, Diffutils, Findutils, Gawk 和  Gzip
必须之前安装:
可供选择依赖:

Tcl

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make 和 Sed
测试套件依赖:
必须之前安装:
可供选择依赖:

Texinfo

安装必选依赖: Bash, Binutils, Coreutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Patch 和 Sed
测试套件依赖:
必须之前安装:
可供选择依赖:

Util-linux

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed, Udev 和 Zlib
测试套件依赖:
必须之前安装:
可供选择依赖: libcap-ng

Vim

安装必选依赖: Acl, Attr, Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Ncurses 和 Sed
测试套件依赖:
必须之前安装:
可供选择依赖: Xorg, GTK+2, LessTif, Python, Tcl, Ruby 和 GPM

XML::Parser

安装必选依赖: Bash, Binutils, Coreutils, Expat, GCC, Glibc, Make 和 Perl
测试套件依赖: Perl
必须之前安装: Intltool
可供选择依赖:

Xz

安装必选依赖: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc 和 Make.
测试套件依赖:
必须之前安装: GRUB, Kmod, Man-DB, Udev
可供选择依赖:

Zlib

安装必选依赖: Bash, Binutils, Coreutils, GCC, Glibc, Make 和 Sed
测试套件依赖:
必须之前安装: File, Kmod, Perl 和 Util-linux
可供选择依赖: