📄 chapter05.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=gb2312" />
<title>
Chapter 5. 构建临时编译环境
</title>
<link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1" />
<link rel="stylesheet" href="../stylesheets/lfs-print.css" type="text/css" media="print" />
</head>
<body id="lfs" class="6.1">
<div class="navheader">
<div class="headertitles">
<h4>
Linux From Scratch - Version 6.1
</h4>
<h3>
Part II. 构建前的准备工作
</h3>
</div>
<ul class="headerlinks">
<li class="prev">
<a accesskey="p" href="../chapter04/abouttestsuites.html" title="About the Test Suites">后退</a>
<p>
About the Test Suites
</p>
</li>
<li class="next">
<a accesskey="n" href="toolchaintechnotes.html" title="Toolchain Technical Notes">前进</a>
<p>
Toolchain Technical Notes
</p>
</li>
<li class="up">
<a accesskey="u" href="../part2.html" title="Part II. 构建前的准备工作">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>
</li>
</ul>
</div>
<div class="chapter" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<h1 class="chapter">
5. 构建临时编译环境
</h1>
</div>
<div class="sect1" lang="zh_cn" xml:lang="zh_cn">
<div class="titlepage">
<a id="ch-tools-introduction" name="ch-tools-introduction"></a>
<h2 class="sect1">
5.1. 简介
</h2>
</div>
<p>
本章介绍如何编译和安装一个小的 Linux 系统。这个系统将仅包含必要的工具,能够构建 <a href="../chapter06/chapter06.html">Chapter 6</a> 中最终的LFS系统。
</p>
<p>
构建这个小系统分两步进行,第一步是构建一个新的不依赖于宿主系统的工具链(编译器、汇编器、连接器、库文件以及一些有用的软件),第二个步骤是利用这个工具链去构建其它基本的工具。</p>
<p>
本章中编译的文件将安装在
<tt class="filename">$LFS/tools</tt> 目录下,这样可以与下一章将要安装的软件以及宿主系统的区分开来。这些软件包编译出来是起临时作用的,我们不希望这些软件和即将建立的 LFS 系统混杂在一起。
</p>
<p>
在运行一个软件包的编译指令之前,需要用 <span class="emphasis"><em>lfs</em></span> 用户解开这个软件包,并用 <span><strong class="command">cd</strong></span> 命令进入软件包解开后的目录。编译指令假定您使用的是
<span><strong class="command">bash</strong></span> shell 。
</p>
<p>
某些软件包编译之前需要打上补丁,但仅仅是需要补丁来解决某个问题的时候。一个补丁可能本章和下一章都会用到,也可能只在其中一章用到。因此,当某个软件包存在一个补丁,而在编译时并未让你使用这个补丁时,不要以为是我们忘记了。事实上,那个补丁只需要在另外一次编译中被用到。而应用某个补丁的时候,也可能会出现某些关于 <span class="emphasis"><em>offset</em></span> 或者 <span class="emphasis"><em>fuzz</em></span> 的警告信息,不要理会,这个补丁仍然会被成功的应用。 </p>
<p> 编译大多数软件包的过程中,屏幕上可能会滚过一些警告信息,这些是正常且可以被安全忽略的。这些警告就像显示的那样:警告的是不标准,却不是不正确的 C 或 C++ 语法。C 标准常常会变,而某些软件包仍然使用老的标准,这不是问题,仅仅导致一些警告信息而已。
</p>
<p> 在安装完每个软件包之后,删除其源文件和编译目录,除非另有特别的指令。删除源文件可以节省磁盘空间,并且可以在下次需要安装同一个软件包的时候不会有错误的配置。只有三个软件包需要保留源文件和编译目录,接下来的命令需要用到,请特别注意这些软件包的提示。
</p>
<p>
再次检查 <tt class="envar">LFS</tt> 环境变量是否设置正确:
</p>
<pre class="userinput"><kbd class="command">echo $LFS</kbd></pre>
<p>
请确认输出显示的是挂载 LFS 分区的路径,在我们的例子中,是 <tt class="filename">/mnt/lfs</tt>
</p>
</div>
</div>
<div class="navfooter">
<ul>
<li class="prev">
<a accesskey="p" href="../chapter04/abouttestsuites.html" title="About the Test Suites">后退</a>
<p>
About the Test Suites
</p>
</li>
<li class="next">
<a accesskey="n" href="toolchaintechnotes.html" title="Toolchain Technical Notes">前进</a>
<p>
Toolchain Technical Notes
</p>
</li>
<li class="up">
<a accesskey="u" href="../part2.html" title="Part II. 构建前的准备工作">上一级</a>.
</li>
<li class="home">
<a accesskey="h" href="../index.html" title="Linux From Scratch - Version 6.1">回首页</a>.
</li>
</ul>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -