summaryrefslogtreecommitdiff
path: root/lfs-12.2-sysv/chapter08/expect.html
diff options
context:
space:
mode:
Diffstat (limited to 'lfs-12.2-sysv/chapter08/expect.html')
-rw-r--r--lfs-12.2-sysv/chapter08/expect.html260
1 files changed, 260 insertions, 0 deletions
diff --git a/lfs-12.2-sysv/chapter08/expect.html b/lfs-12.2-sysv/chapter08/expect.html
new file mode 100644
index 0000000..5c02507
--- /dev/null
+++ b/lfs-12.2-sysv/chapter08/expect.html
@@ -0,0 +1,260 @@
+<!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>
+ 8.17. Expect-5.45.4
+ </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>
+ Глава 8. Установка базового системного программного обеспечения
+ </h3>
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="tcl.html" title="Tcl-8.6.14">Пред.</a>
+ <p>
+ Tcl-8.6.14
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="dejagnu.html" title=
+ "DejaGNU-1.6.3">След.</a>
+ <p>
+ DejaGNU-1.6.3
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.2">Начало</a>
+ </li>
+ </ul>
+ </div>
+ <h1 class="sect1">
+ <a id="ch-system-expect" name="ch-system-expect"></a>8.17.
+ Expect-5.45.4
+ </h1>
+ <div class="wrap" lang="ru" xml:lang="ru">
+ <div class="package" lang="ru" xml:lang="ru">
+ <p>
+ Пакет <span class="application">Expect</span> содержит инструменты
+ для автоматизации работы интерактивных приложений, таких как
+ <span class="command"><strong>telnet</strong></span>, <span class=
+ "command"><strong>ftp</strong></span>, <span class=
+ "command"><strong>passwd</strong></span>, <span class=
+ "command"><strong>fsck</strong></span>, <span class=
+ "command"><strong>rlogin</strong></span> и <span class=
+ "command"><strong>tip</strong></span>, с помощью скриптовых
+ диалогов и макросов. Кроме того <span class=
+ "application">Expect</span> полезен для тестирования перечисленных
+ выше приложений, а также для решения сложных задач взаимодействия с
+ другими средствами. Фреймворк <span class=
+ "application">DejaGnu</span> написан на языке <span class=
+ "application">Expect</span>.
+ </p>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Приблизительное время сборки:</strong>
+ <span class="segbody">0.2 SBU</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Требуемое дисковое
+ пространство:</strong> <span class="segbody">3.9 MB</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="installation" lang="ru" xml:lang="ru">
+ <h2 class="sect2">
+ 8.17.1. Установка пакета Expect
+ </h2>
+ <p>
+ Expect для работы необходим псевдотерминал(PTY). Убедитесь, что PTY
+ работают правильно в среде chroot, выполнив простой тест:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">python3 -c 'from pty import spawn; spawn(["echo", "ok"])'</kbd></pre>
+ <p>
+ Эта команда должна вывести <code class="computeroutput">ok</code>.
+ Если вместо этого вывод содержит <code class=
+ "computeroutput">OSError: out of pty devices</code>, то среда не
+ настроена для правильной работы PTY. Вам необходимо выйти из среды
+ chroot, ещё раз прочитать <a class="xref" href=
+ "../chapter07/kernfs.html" title=
+ "7.3. Подготовка виртуальных файловых систем ядра">Раздел&nbsp;7.3,
+ «Подготовка виртуальных файловых систем ядра»</a> и убедиться, что
+ файловая система <code class="systemitem">devpts</code> (и другие
+ файловые системы виртуального ядра) смонтирована правильно. Затем
+ повторно войдите в среду chroot, следуя инструкции <a class="xref"
+ href="../chapter07/chroot.html" title=
+ "7.4. Вход в окружение Chroot">Раздел&nbsp;7.4, «Вход в окружение
+ Chroot»</a>. Эту проблему необходимо решить, прежде чем вы
+ продолжите, иначе наборы тестов, зависимые от Expect (например,
+ наборы тестов Bash, Binutils, GCC, GDBM и, конечно, самого Expect),
+ потерпят фатальный сбой, а также могут произойти другие
+ незначительные сбои.
+ </p>
+ <p>
+ Теперь внесите некоторые изменения, чтобы разрешить использование
+ пакета с gcc-14.1 или более поздней версией:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">patch -Np1 -i ../expect-5.45.4-gcc14-1.patch</kbd></pre>
+ <p>
+ Подготовьте Expect к компиляции:
+ </p>
+ <pre class="userinput"><kbd class=
+ "command">./configure --prefix=/usr \
+ --with-tcl=/usr/lib \
+ --enable-shared \
+ --disable-rpath \
+ --mandir=/usr/share/man \
+ --with-tclinclude=/usr/include</kbd></pre>
+ <div class="variablelist">
+ <p class="title">
+ <strong>Значение параметров настройки:</strong>
+ </p>
+ <dl class="variablelist">
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--with-tcl=/usr/lib</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр необходим для указания <span class=
+ "command"><strong>configure</strong></span> где находится
+ скрипт <span class=
+ "command"><strong>tclConfig.sh</strong></span>.
+ </p>
+ </dd>
+ <dt>
+ <span class="term"><em class=
+ "parameter"><code>--with-tclinclude=/usr/include</code></em></span>
+ </dt>
+ <dd>
+ <p>
+ Этот параметр явно указывает Expect, где искать внутренние
+ заголовки Tcl.
+ </p>
+ </dd>
+ </dl>
+ </div>
+ <p>
+ Соберите пакет:
+ </p>
+ <pre class="userinput"><kbd class="command">make</kbd></pre>
+ <p>
+ Чтобы протестировать пакет, выполните:
+ </p>
+ <pre class="userinput"><kbd class="command">make test</kbd></pre>
+ <p>
+ Установите пакет:
+ </p>
+ <pre class="userinput"><kbd class="command">make install
+ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib</kbd></pre>
+ </div>
+ <div class="content" lang="ru" xml:lang="ru">
+ <h2 class="sect2">
+ <a id="contents-expect" name="contents-expect"></a>8.17.2.
+ Содержимое пакета Expect
+ </h2>
+ <div class="segmentedlist">
+ <div class="seglistitem">
+ <div class="seg">
+ <strong class="segtitle">Установленные программы:</strong>
+ <span class="segbody">expect</span>
+ </div>
+ <div class="seg">
+ <strong class="segtitle">Установленные библиотеки:</strong>
+ <span class="segbody">libexpect5.45.4.so</span>
+ </div>
+ </div>
+ </div>
+ <div class="variablelist">
+ <h3>
+ Краткое описание
+ </h3>
+ <table border="0" class="variablelist">
+ <colgroup>
+ <col align="left" valign="top" />
+ <col />
+ </colgroup>
+ <tbody>
+ <tr>
+ <td>
+ <p>
+ <a id="expect" name="expect"></a><span class=
+ "term"><span class=
+ "command"><strong>expect</strong></span></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ Взаимодействует с другими интерактивными программами в
+ соответствии со сценарием
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ <p>
+ <a id="libexpect" name="libexpect"></a><span class=
+ "term"><code class=
+ "filename">libexpect-5.45.4.so</code></span>
+ </p>
+ </td>
+ <td>
+ <p>
+ Содержит функции, которые позволяют использовать Expect в
+ качестве расширения Tcl или непосредственно из C или C++
+ (без Tcl).
+ </p>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ </div>
+ </div>
+ <div class="navfooter">
+ <ul>
+ <li class="prev">
+ <a accesskey="p" href="tcl.html" title="Tcl-8.6.14">Пред.</a>
+ <p>
+ Tcl-8.6.14
+ </p>
+ </li>
+ <li class="next">
+ <a accesskey="n" href="dejagnu.html" title=
+ "DejaGNU-1.6.3">След.</a>
+ <p>
+ DejaGNU-1.6.3
+ </p>
+ </li>
+ <li class="up">
+ <a accesskey="u" href="chapter08.html" title=
+ "Глава 8. Установка базового системного программного обеспечения">Наверх</a>
+ </li>
+ <li class="home">
+ <a accesskey="h" href="../index.html" title=
+ "Линукс с нуля - Версия 12.2">Начало</a>
+ </li>
+ </ul>
+ </div>
+ </body>
+</html>