8.17. Expect-5.45.4

Пакет Expect содержит инструменты для автоматизации работы интерактивных приложений, таких как telnet, ftp, passwd, fsck, rlogin и tip, с помощью скриптовых диалогов и макросов. Кроме того Expect полезен для тестирования перечисленных выше приложений, а также для решения сложных задач взаимодействия с другими средствами. Фреймворк DejaGnu написан на языке Expect.

Приблизительное время сборки: 0.2 SBU
Требуемое дисковое пространство: 3.9 MB

8.17.1. Установка пакета Expect

Expect для работы необходим псевдотерминал(PTY). Убедитесь, что PTY работают правильно в среде chroot, выполнив простой тест:

python3 -c 'from pty import spawn; spawn(["echo", "ok"])'

Эта команда должна вывести ok. Если вместо этого вывод содержит OSError: out of pty devices, то среда не настроена для правильной работы PTY. Вам необходимо выйти из среды chroot, ещё раз прочитать Раздел 7.3, «Подготовка виртуальных файловых систем ядра» и убедиться, что файловая система devpts (и другие файловые системы виртуального ядра) смонтирована правильно. Затем повторно войдите в среду chroot, следуя инструкции Раздел 7.4, «Вход в окружение Chroot». Эту проблему необходимо решить, прежде чем вы продолжите, иначе наборы тестов, зависимые от Expect (например, наборы тестов Bash, Binutils, GCC, GDBM и, конечно, самого Expect), потерпят фатальный сбой, а также могут произойти другие незначительные сбои.

Теперь внесите некоторые изменения, чтобы разрешить использование пакета с gcc-14.1 или более поздней версией:

patch -Np1 -i ../expect-5.45.4-gcc14-1.patch

Подготовьте Expect к компиляции:

./configure --prefix=/usr           \
            --with-tcl=/usr/lib     \
            --enable-shared         \
            --disable-rpath         \
            --mandir=/usr/share/man \
            --with-tclinclude=/usr/include

Значение параметров настройки:

--with-tcl=/usr/lib

Этот параметр необходим для указания configure где находится скрипт tclConfig.sh.

--with-tclinclude=/usr/include

Этот параметр явно указывает Expect, где искать внутренние заголовки Tcl.

Соберите пакет:

make

Чтобы протестировать пакет, выполните:

make test

Установите пакет:

make install
ln -svf expect5.45.4/libexpect5.45.4.so /usr/lib

8.17.2. Содержимое пакета Expect

Установленные программы: expect
Установленные библиотеки: libexpect5.45.4.so

Краткое описание

expect

Взаимодействует с другими интерактивными программами в соответствии со сценарием

libexpect-5.45.4.so

Содержит функции, которые позволяют использовать Expect в качестве расширения Tcl или непосредственно из C или C++ (без Tcl).