<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>

<sect1 id="ch-partitioning-aboutlfs">
  <?dbhtml filename="aboutlfs.html"?>

  <title>设置 $LFS 环境变量</title>

  <!--para>Throughout this book, the environment variable <envar>LFS</envar> will
  be used several times. You should ensure that this variable is always defined
  throughout the LFS build process. It should be set to the name of the
  directory where you will be building your LFS system - we will use
  <filename class="directory">/mnt/lfs</filename> as an example, but the
  directory choice is up to you. If you are building LFS on a separate
  partition, this directory will be the mount point for the partition.
  Choose a directory location and set the variable with the
  following command:</para-->
  <para>在本书中，我们经常使用环境变量 <envar>LFS</envar> 。您应该保证，
	  在构建 LFS 的全过程中，该变量都被定义且设置为您构建 LFS 使用的目录
	  —— 我们使用 <filename class="directory">/mnt/lfs</filename> 作为例子，
	  但您可以选择其他目录。如果您在一个独立的分区上构建 LFS ，
	  那么这个目录将成为该分区的挂载点。选择一个目录，
	  然后用以下命令设置环境变量：</para>

<screen role="nodump"><userinput>export LFS=<replaceable>/mnt/lfs</replaceable></userinput></screen>

  <!--para>Having this variable set is beneficial in that commands such as
  <command>mkdir -v $LFS/tools</command> can be typed literally. The shell
  will automatically replace <quote>$LFS</quote> with
  <quote>/mnt/lfs</quote> (or whatever the variable was set to) when it
  processes the command line.</para-->
  <para>设置该环境变量的好处是，我们可以直接输入书中的命令，例如
	  <command>mkdir -v $LFS/tools</command> 。
	  Shell 在解析命令时会自动将 <quote>$LFS</quote> 替换成
	  <quote>/mnt/lfs</quote>（或是您设置的其他值）。</para>

  <caution>
  <!--para>Do not forget to check that <envar>LFS</envar> is set whenever
  you leave and reenter the current working environment (such as when doing a
  <command>su</command> to <systemitem class="username">root</systemitem> or
  another user). Check that the <envar>LFS</envar> variable is set up
  properly with:</para-->
  <para> 如果您离开并重新进入了工作环境 (例如使用 <command>su</command>
  切换到 <systemitem class="username">root</systemitem> 或者其他用户)，
  请执行以下命令，检查 <envar>LFS</envar> 的设置是否正确：</para>

<screen role="nodump"><userinput>echo $LFS</userinput></screen>

  <!--para>Make sure the output shows the path to your LFS system's build
  location, which is <filename class="directory">/mnt/lfs</filename> if the
  provided example was followed. If the output is incorrect, use the command
  given earlier on this  page to set <envar>$LFS</envar> to the correct
  directory name.</para-->
  <para>确认该命令的输出是您构建 LFS 的位置，如果您使用本书提供的例子，
	  那么输出应该是 <filename class="directory">/mnt/lfs</filename>。
	  如果输出不正确，使用前文给出的命令，将 <envar>$LFS</envar>
	  设置成正确的目录名。</para>
  </caution>

  <note><!--para>One way to ensure that the <envar>LFS</envar> variable is always
  set is to edit the <filename>.bash_profile</filename> file in both your
  personal home directory and in  <filename>/root/.bash_profile</filename> and
  enter the export command above.  In addition, the shell specified in the
  <filename>/etc/passwd</filename> file for all users that need the
  <envar>LFS</envar> variable needs to be bash to ensure that the
  <filename>/root/.bash_profile</filename> file is incorporated as a part of
  the login process.</para-->
  <para>确保 <envar>LFS</envar> 始终正确的一种方法是：编辑您的主目录中的
	  <filename>.bash_profile</filename> 以及
	  <systemitem class="username">root</systemitem> 用户的
	  <filename>/root/.bash_profile</filename>，为它们加入上述设置并导出
	  <envar>LFS</envar> 变量的 <command>export</command> 命令。还要确认
	  <filename>/etc/passwd</filename> 中为每个需要使用 <envar>LFS</envar>
	  变量的用户指定的 shell 都是 bash，以保证每次登录时都执行
	  <filename>.bash_profile</filename> 中的命令。</para>
  
  <!--para>Another consideration is the method that is used to log into the
  host system.  If logging in through a graphical display manager, the
  user's <filename>.bash_profile</filename> is not normally used when
  a virtual terminal is started.  In this case, add the export command to
  the <filename>.bashrc</filename> file for the user and root.  In addition, 
  some distributions have instructions to not run the <filename>.bashrc</filename> 
  instructions in a non-interactive bash invocation.  Be sure to add the
  export command before the test for non-interactive use.</para-->
  <para>另外还要考虑登录宿主系统的方式，如果您使用图形显示管理器登录，
	  再启动虚拟终端，那么 <filename>.bash_profile</filename>
	  一般不会被虚拟终端执行。此时，应该将 <command>export</command>
	  命令加入到您使用的用户和
	  <systemitem class="username">root</systemitem> 的
	  <filename>.bashrc</filename> 文件中。另外，如果以非交互模式启动 bash，
	  有的发行版不会执行 <filename>.bashrc</filename> 中的指令。
	  此时一定要在使用环境变量前添加 <command>export</command> 命令。</para>
  </note>

</sect1>
