![为什么从头开始构建 Linux 需要临时系统?](https://linux22.com/image/42518/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BB%8E%E5%A4%B4%E5%BC%80%E5%A7%8B%E6%9E%84%E5%BB%BA%20Linux%20%E9%9C%80%E8%A6%81%E4%B8%B4%E6%97%B6%E7%B3%BB%E7%BB%9F%EF%BC%9F.png)
我刚刚快速阅读了Linux 从头开始书并发现它很有趣。
但是我不明白临时系统的作用(第5章)。它是从一个工作发行版构建的,然后我们用它来构建最终的系统。
难道我们不能只创建一个分区并在其上构建一个系统吗?
答案1
您可以使用现有 Linux 系统上的分区。这与使用临时系统相同。但是,假设您正在使用空的系统,您将需要一些东西来构建 LFS 软件和。您不能只是将编译器放在某个分区上并开始进行修改。你需要的还不止这些。例如,一个内核和大量库:)
答案2
我没有那本书的副本,但我可以解释为什么如果您正在构建一个完整的发行版,那么两步过程可能是可取的。
构建包时,有时会发生构建系统的属性渗透到您构建的二进制文件中的情况。其中包括库路径、配置变量等。在 Sun/Oracle,构建 Solaris 的标准流程是您需要在运行双周 16 的系统上构建双周构建 17(例如)。
例如,头文件中有许多字段和结构,您需要确保使用将在系统上交付的头文件构建二进制文件。但您正在构建的某些包会提供自己的头文件。这些标头被其他包使用。
希望我已经让您了解您正在构建的系统如何巧妙地依赖于用于构建它的系统。因此,您通常希望构建一个与您正在构建的系统尽可能接近的系统。