为什么要通过“--prefix=/usr”来从 Scratch 构建 Linux 中配置脚本?

为什么要通过“--prefix=/usr”来从 Scratch 构建 Linux 中配置脚本?

为什么在 Linux 中从头开始它们要传递--prefix=/usr给配置脚本?例如,这是glibc配置脚本

../configure                             \
      --prefix=/usr                      \
      --host=$LFS_TGT                    \
      --build=$(../scripts/config.guess) \
      --enable-kernel=3.2                \
      --with-headers=$LFS/usr/include    \
      libc_cv_slibdir=/usr/lib

难道不应该是--prefix=$LFS/usr这样它安装在那里而不是在主机系统中吗/usr

答案1

参数--prefix决定configure编译的程序应该在哪里预计待安装。最终目标是拥有一个/usr包含正在构建的程序的系统,因此它们的配置预期将从/usr.

/usr从主机系统的角度来看,安装本身并不一定要发生。在 LFS 中,构建和安装无论如何都是在 chroot 中完成的;在其他情况下,安装本身是通过前缀(例如 使用DESTDIR)。

相关内容