summaryrefslogtreecommitdiff
path: root/lfs-12.2-sysv/chapter07/chroot.html
blob: e02272c443c0015367ace19a579f7264c2f89c50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
<!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=utf-8" />
    <title>
      7.4. Вход в окружение Chroot
    </title>
    <link rel="stylesheet" type="text/css" href="../stylesheets/lfs.css" />
    <meta name="generator" content="DocBook XSL Stylesheets Vsnapshot" />
    <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
    "text/css" media="print" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  </head>
  <body class="lfs" id="lfs-12.2">
    <div class="navheader">
      <h4>
        Линукс с нуля - Версия 12.2
      </h4>
      <h3>
        Глава 7. Вход в окружение Chroot и создание дополнительных временных
        инструментов
      </h3>
      <ul>
        <li class="prev">
          <a accesskey="p" href="kernfs.html" title=
          "Подготовка виртуальных файловых систем ядра">Пред.</a>
          <p>
            Подготовка виртуальных файловых систем ядра
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="creatingdirs.html" title=
          "Создание каталогов">След.</a>
          <p>
            Создание каталогов
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter07.html" title=
          "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
          Наверх</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Линукс с нуля - Версия 12.2">Начало</a>
        </li>
      </ul>
    </div>
    <h1 class="sect1">
      <a id="ch-tools-chroot" name="ch-tools-chroot"></a>7.4. Вход в
      окружение Chroot
    </h1>
    <div class="sect1" lang="ru" xml:lang="ru">
      <p>
        Теперь, когда все пакеты, необходимые для сборки остальных
        инструментов установлены в системе, пришло время войти в окружение
        chroot и завершить установку временных инструментов. Эта среда также
        будет использоваться для установки конечной системы. От имени
        пользователя <code class="systemitem">root</code> выполните следующую
        команду для входа в chroot, в которой на данный момент нет ничего,
        кроме временных инструментов:
      </p>
      <pre class="userinput"><kbd class=
      "command">chroot "$LFS" /usr/bin/env -i   \
    HOME=/root                  \
    TERM="$TERM"                \
    PS1='(lfs chroot) \u:\w\$ ' \
    PATH=/usr/bin:/usr/sbin     \
    MAKEFLAGS="-j<em class="replaceable"><code>$(nproc)</code></em>"      \
    TESTSUITEFLAGS="-j<em class="replaceable"><code>$(nproc)</code></em>" \
    /bin/bash --login</kbd></pre>
      <p>
        Если вы не хотите использовать все доступные логические ядра,
        замените параметр <em class="replaceable"><code>$(nproc)</code></em>
        количеством логических ядер, которые вы хотите использовать для
        сборки пакетов в этой и последующих главах. На наборы тестов
        некоторых пакетов (в частности Autoconf, Libtool и Tar) в <a class=
        "xref" href="../chapter08/chapter08.html" title=
        "Глава 8. Установка базового системного программного обеспечения">Глава&nbsp;8</a>
        не влияет установка переменной <code class="envar">MAKEFLAGS</code>,
        вместо этого они используют переменную среды <code class=
        "envar">TESTSUITEFLAGS</code>. Мы также установили её здесь для
        запуска тестов с поддержкой нескольких ядер.
      </p>
      <p>
        Параметр <em class="parameter"><code>-i</code></em> команды
        <span class="command"><strong>env</strong></span>, очистит все
        переменные в среде chroot. После этого переменные <code class=
        "envar">HOME</code>, <code class="envar">TERM</code>, <code class=
        "envar">PS1</code> и <code class="envar">PATH</code> будут
        установлены заново. Конструкция <em class=
        "parameter"><code>TERM=$TERM</code></em> установит переменную TERM
        внутри chroot в то же значение, что и вне chroot. Эта переменная
        необходима для корректной работы таких программ как <span class=
        "command"><strong>vim</strong></span> и <span class=
        "command"><strong>less</strong></span>. Если понадобятся другие
        переменные окружения, такие как <code class="envar">CFLAGS</code> или
        <code class="envar">CXXFLAGS</code>, то это подходящее место для их
        установки.
      </p>
      <p>
        С этого момента больше нет необходимости использовать переменную
        <code class="envar">LFS</code>, поскольку вся работа будет ограничена
        файловой системой LFS; команда <span class=
        "command"><strong>chroot</strong></span> запускает оболочку Bash с
        корневым каталогом (<code class="filename">/</code>), установленным в
        <code class="filename">$LFS</code>.
      </p>
      <p>
        Обратите внимание, что каталог <code class=
        "filename">/tools/bin</code> не указан в переменной окружения
        <code class="envar">PATH</code>. Это означает, что кросс-тулчейн
        больше не будет использоваться.
      </p>
      <p>
        Также обратите внимание, что в командной строке <span class=
        "command"><strong>bash</strong></span> будет указано <code class=
        "computeroutput">I have no name!</code>. Это нормально, поскольку
        файл <code class="filename">/etc/passwd</code> еще не создан.
      </p>
      <div class="admon note">
        <img alt="[Примечание]" src="../images/note.png" />
        <h3>
          Примечание
        </h3>
        <p>
          Важно, чтобы все команды в оставшейся части этой главы и следующих
          главах выполнялись из среды chroot. Если вы покидаете эту среду по
          какой-либо причине (например, при перезагрузке), убедитесь, что
          файловые системы виртуального ядра смонтированы, как описано в
          <a class="xref" href="kernfs.html#ch-tools-bindmount" title=
          "7.3.1. Монтирование и заполнение /dev">Раздел&nbsp;7.3.1,
          «Монтирование и заполнение /dev»</a> и <a class="xref" href=
          "kernfs.html#ch-tools-kernfsmount" title=
          "7.3.2. Монтирование виртуальных файловых систем ядра">Раздел&nbsp;7.3.2,
          «Монтирование виртуальных файловых систем ядра»</a>, а затем
          войдите в среду chroot для продолжения установки.
        </p>
      </div>
    </div>
    <div class="navfooter">
      <ul>
        <li class="prev">
          <a accesskey="p" href="kernfs.html" title=
          "Подготовка виртуальных файловых систем ядра">Пред.</a>
          <p>
            Подготовка виртуальных файловых систем ядра
          </p>
        </li>
        <li class="next">
          <a accesskey="n" href="creatingdirs.html" title=
          "Создание каталогов">След.</a>
          <p>
            Создание каталогов
          </p>
        </li>
        <li class="up">
          <a accesskey="u" href="chapter07.html" title=
          "Глава 7. Вход в окружение Chroot и создание дополнительных временных инструментов">
          Наверх</a>
        </li>
        <li class="home">
          <a accesskey="h" href="../index.html" title=
          "Линукс с нуля - Версия 12.2">Начало</a>
        </li>
      </ul>
    </div>
  </body>
</html>