OSDN Git Service

GIT-20170514.
[clfsja/cross-lfs-ja.git] / src / final-preps / common / settingenviron.ch
1 %
2 % This is part of CLFSja package.
3 %
4 % This is a CTIE change file for the original XML source of the CLFSbook.
5 %
6 @x
7 <?xml version="1.0" encoding="ISO-8859-1"?>
8 @y
9 <?xml version="1.0" encoding="UTF-8"?>
10 @z
11
12 @x
13   <title>Setting Up the Environment</title>
14 @y
15   <title>環境設定</title>
16 @z
17
18 @x
19   <para os="a">Set up a good working environment by creating two new startup
20   files for the <command>bash</command> shell. While logged in as user
21   <systemitem class="username">clfs</systemitem>, issue the following
22   command to create a new <filename>.bash_profile</filename>:</para>
23 @y
24   <para>
25   作業しやすい動作環境とするために <command>bash</command> シェルに対するスタートアップファイルを二つ作成します。
26   <systemitem class="username">clfs</systemitem> ユーザーでログインして、以下のコマンドによって <filename>.bash_profile</filename> ファイルを生成します。
27   </para>
28 @z
29
30 @x
31   <para os="c">When logged on as user <systemitem class="username">clfs</systemitem>,
32   the initial shell is usually a <emphasis>login</emphasis> shell which
33   reads the <filename>/etc/profile</filename> of the host (probably
34   containing some settings and environment variables) and then
35   <filename>.bash_profile</filename>. The
36   <command>exec env -i.../bin/bash</command> command in the
37   <filename>.bash_profile</filename> file replaces the running shell with
38   a new one with a completely empty environment, except for the
39   <envar>HOME</envar>, <envar>TERM</envar>, and <envar>PS1</envar> variables.
40   This ensures that no unwanted and potentially hazardous environment
41   variables from the host system leak into the build environment. The
42   technique used here achieves the goal of ensuring a clean environment.</para>
43 @y
44   <para os="c">
45   <systemitem class="username">clfs</systemitem> ユーザーとしてログインした時、起動されるシェルは普通は<emphasis>ログイン</emphasis> シェルとなります。
46   この時、ホストシステムの <filename>/etc/profile</filename> ファイル (おそらく環境変数がいくつか定義されている) と <filename>.bash_profile</filename> が読み込まれます。
47   <filename>.bash_profile</filename> ファイル内の <command>exec env -i.../bin/bash</command> というコマンドが、起動しているシェルを全くの空の環境として起動し直し <envar>HOME</envar>、<envar>TERM</envar>、<envar>PS1</envar> という環境変数だけを設定します。
48   これはホストシステム内の不要な設定や危険をはらんだ設定を、ビルド環境に持ち込まないようにするためです。
49   このようにすることできれいな環境作りを実現できます。
50   </para>
51 @z
52
53 @x
54   <para os="d">The new instance of the shell is a <emphasis>non-login</emphasis>
55   shell, which does not read the <filename>/etc/profile</filename> or
56   <filename>.bash_profile</filename> files, but rather reads the
57   <filename>.bashrc</filename> file instead. Create the
58   <filename>.bashrc</filename> file now:</para>
59 @y
60   <para os="d">
61   新しく起動するシェルはログインシェルではなくなります。
62   したがってこのシェルは <filename>/etc/profile</filename> ファイルや <filename>.bash_profile</filename> ファイルは読み込まず、代わりに <filename>.bashrc</filename> ファイルを読み込みます。
63   そこで以下のようにして <filename>.bashrc</filename> ファイルを生成します。
64   </para>
65 @z
66
67 @x
68   <para os="f">The <command>set +h</command> command turns off
69   <command>bash</command>'s hash function. Hashing is ordinarily a useful
70   feature&mdash;<command>bash</command> uses a hash table to remember the
71   full path of executable files to avoid searching the <envar>PATH</envar>
72   time and again to find the same executable. However, the new tools should
73   be used as soon as they are installed. By switching off the hash function,
74   the shell will always search the <envar>PATH</envar> when a program is to
75   be run. As such, the shell will find the newly compiled tools in
76   <filename class="directory">/cross-tools</filename> as soon as they are
77   available without remembering a previous version of the same program in a
78   different location.</para>
79 @y
80   <para os="f">
81   <command>set +h</command> コマンドは <command>bash</command> のハッシュ機能を無効にします。
82   通常このハッシュ機能は有用なものです。
83   実行ファイルのフルパスをハッシュテーブルに記憶しておき、再度そのパスを探し出す際に <envar>PATH</envar> 変数の探査を省略します。
84   しかしこれより作り出すツール類はインストール直後にすぐ利用していきます。
85   ハッシュ機能を無効にすることで、プログラム実行が行われる際に、シェルは必ず <envar>PATH</envar> を探しにいきます。
86   つまり <filename class="directory">/cross-tools</filename> ディレクトリ以下に新たに構築したツール類は必ず実行されるようになるわけです。
87   そのツールの古いバージョンがどこか別のディレクトリにあったとしても、その場所を覚えていて実行されるということがなくなります。
88   </para>
89 @z
90
91 @x
92   <para os="g">Setting the user file-creation mask (umask) to 022 ensures that
93   newly created files and directories are only writable by their owner,
94   but are readable and executable by anyone (assuming default modes are
95   used by the open(2) system call, new files will end up with permission
96   mode 644 and directories with mode 755).</para>
97 @y
98   <para os="g">
99   ユーザーのファイル生成マスク (file-creation mask; umask) を 022 にセットするのは、新たなファイルやディレクトリの生成はその所有者にのみ許可し、他者は読み取りと実行を可能とするためです。
100   (システムコール <function>open(2)</function> にてデフォルトモードが適用される場合、新規生成ファイルのパーミッションモードは 644、同じくディレクトリは 755 となります。)
101   </para>
102 @z
103
104 @x
105   <para os="h">The <envar>CLFS</envar> variable should be set to the
106   chosen mount point.</para>
107 @y
108   <para os="h">
109   環境変数 <envar>CLFS</envar> は常に指定したマウントポイントを指し示すように設定します。
110   </para>
111 @z
112
113 @x
114   <para os="i">The <envar>LC_ALL</envar> variable controls the localization
115   of certain programs, making their messages follow the conventions of a
116   specified country. Setting <envar>LC_ALL</envar> to <quote>POSIX</quote>
117   or <quote>C</quote> (the two are equivalent) ensures that everything will
118   work as expected in the temporary build environment.</para>
119 @y
120   <para os="i">
121   <envar>LC_ALL</envar> 変数は特定のプログラムが扱う国情報を制御します。
122   そのプログラムが出力するメッセージを、指定された国情報に基づいて構成します。
123   <envar>LC_ALL</envar> 変数は<quote>POSIX</quote>か<quote>C</quote>にセットしてください。(両者は同じです。)
124   そのようにセットしておけば一時ビルド環境下での作業が問題なく進められます。
125   </para>
126 @z
127
128 @x
129   <para os="j">By putting <filename class="directory">/cross-tools/bin</filename>
130   at the beginning of the <envar>PATH</envar>, the cross-compiler
131   built in <xref linkend="chapter-cross-tools"/> will be picked up by
132   the build process for the temp-system packages before anything that
133   may be installed on the host. This, combined with turning off
134   hashing, helps to ensure that you will be using the cross-compile
135   tools to build the temp-system in /tools.</para>
136 @y
137   <para os="j">
138   <filename class="directory">/cross-tools/bin</filename> ディレクトリを <envar>PATH</envar> 変数の先頭に設定します。
139   こうすることで一時システムにおける各パッケージのビルド時には <xref linkend="chapter-cross-tools"/> において構築するクロスコンパイラーが利用されることになります。
140   つまりホストシステム内にあるコンパイラーが用いられないようにします。
141   この設定は、ハッシュ機能をオフとしたことと連携し、クロスコンパイルツールを用いて /tools ディレクトリ内に一時システムを構築していくものとなります。
142   </para>
143 @z
144
145 @x
146   <para os="k">The <envar>CFLAGS</envar>, <envar>CXXFLAGS</envar> and
147   <envar>PKG_CONFIG_PATH</envar> variables should not be set while building the
148   temporary system, so we unset them.</para>
149 @y
150   <para os="k">
151   <envar>CFLAGS</envar>、<envar>CXXFLAGS</envar>、<envar>PKG_CONFIG_PATH</envar> の各変数は、一時システムの構築時には設定すべきではありません。
152   そこでそれらは非設定とします。
153   </para>
154 @z
155
156 @x
157   <para os="l">Finally, to have the environment fully prepared for building the
158   temporary tools, source the just-created user profile:</para>
159 @y
160   <para os="l">
161   一時的なツールを構築する準備の最後として、今作り出したユーザープロファイルを source によって取り込みます。
162   </para>
163 @z