《Linux From Scratch》第四部分:附录- 附录 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
可供选择依赖:
相关文章
|
7月前
|
Linux 编译器 vr&ar
linux交叉编译一些常用依赖库util-linux,zlib,sqlite3,eudev ,openssl,libpng,glibc
linux交叉编译一些常用依赖库util-linux,zlib,sqlite3,eudev ,openssl,libpng,glibc
305 1
|
7月前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
【Shell 命令集合 系统设置 】Linux 生成并更新内核模块的依赖 depmod命令 使用指南
151 0
|
3月前
|
安全 Linux
Linux中ldd命令的依赖复制技巧
`ldd`命令的依赖复制技巧在特定的场合下非常有用,但它也需要细心的处理和充分的测试,以确保在新环境中的稳定运行。此外,这种做法虽然方便,但在长期维护和安全更新方面可能会带来额外的负担。
101 0
|
4月前
|
缓存 安全 Linux
本地YUM源大揭秘:搭建您自己的Linux软件宝库,从此告别网络依赖!一文掌握服务器自给自足的终极技能!
【8月更文挑战第13天】在Linux中,YUM是一款强大的软件包管理工具,可自动处理依赖关系。为适应离线或特定安全需求,本指南教你搭建本地YUM源。首先创建存放软件包的`localrepo`目录,复制`.rpm`文件至其中。接着,安装并运用`createrepo`生成仓库元数据。随后配置新的`.repo`文件指向该目录,并禁用GPG检查。最后,清理并重建YUM缓存,即可启用本地YUM源进行软件搜索与安装,适用于网络受限环境。
274 3
|
4月前
|
Linux Python
Linux离线安装Python依赖包
本文介绍了在Linux环境下离线安装Python依赖包的方法,包括从Python依赖包检索网站下载所需依赖包的压缩文件,上传到Linux服务器,然后通过解压、编译和安装步骤完成依赖包的安装。
153 0
|
6月前
|
Linux 编译器 C语言
Linux中的pkg-config:简化库依赖管理的利器
**pkg-config**是Linux下管理库依赖的工具,它通过读取库的`.pc`文件提供编译和链接参数。使用`pkg-config --cflags --libs <library>`获取编译和链接选项,例如`gcc -o test test.c $(pkg-config --cflags --libs glib-2.0)`。能进行版本检查、参数提取、依赖管理和路径搜索。列出所有包用`pkg-config --list-all`。最佳实践包括确保库正确安装、检查版本、配置`PKG_CONFIG_PATH`及使用构建工具。
|
Linux 编译器 开发工具
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
57 0
【看表情包学Linux】探讨项目构建问题 | Makefile | 依赖关系与依赖方法 | 伪目标 PHONY
|
6月前
|
Linux 数据处理 开发者
Linux命令ldd:深入解析动态链接器依赖关系
`ldd`是Linux下分析可执行文件动态依赖的工具,它揭示了程序运行所需的共享库。通过模拟动态链接过程,`ldd`列出库文件路径,帮助理解程序环境和解决运行时问题。主要参数包括`-d`、`-r`、`-u`和`-v`。例如,`ldd my_program`展示`my_program`的依赖关系。注意,`ldd`不显示间接依赖,完整依赖树可能需借助其他工具。确保系统库完整且版本兼容是使用`ldd`时的关键。
|
7月前
|
SQL Ubuntu Linux
Linux(30)Rockchip RK3568 Ubuntu 20.04上解决常见的库依赖问题
Linux(30)Rockchip RK3568 Ubuntu 20.04上解决常见的库依赖问题
202 1
|
7月前
|
Linux C语言 开发者
Damn!linux想做单细胞想下载Seurat,依赖包stringi要怎么安装
**摘要:** 《R包stringi安装挑战与解决方案》 `stringi`是R中的关键字符串处理包,基于ICU库,常用于生物信息学和统计分析。安装时常遇到问题,特别是在Linux上,因平台依赖和C库版本而复杂。解决办法包括检查GCC版本、网络和环境。当常规方法失败时,可尝试手动下载ICUDT,设置`configure.vars`或通过源码安装:下载zip,构建,然后使用R CMD安装。遇到类似问题的开发者可参考提供的链接和步骤。安装问题多样,需灵活应对。
88 2