![为什么要通过“--prefix=/usr”来从 Scratch 构建 Linux 中配置脚本?](https://linux22.com/image/213213/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E9%80%9A%E8%BF%87%E2%80%9C--prefix%3D%2Fusr%E2%80%9D%E6%9D%A5%E4%BB%8E%20Scratch%20%E6%9E%84%E5%BB%BA%20Linux%20%E4%B8%AD%E9%85%8D%E7%BD%AE%E8%84%9A%E6%9C%AC%EF%BC%9F.png)
为什么在 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
)。