5.12. Expect-5.45

Expect 软件包包含一个实现用脚本和其他交互式程序进行对话的程序。

大概编译时间: 0.1 SBU
所需磁盘空间: 4.6 MB

5.12.1. 安装 Expect

首先,强制 Expect 的 configure 配置脚本使用 /bin/stty 替代宿主机系统里可能存在的 /usr/local/bin/stty。这样可以保证我们的测试套件工具在工具链的最后一次构建能够正常。

cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure

现在配置 Expect 准备编译:

./configure --prefix=/tools       \
            --with-tcl=/tools/lib \
            --with-tclinclude=/tools/include

配置脚本参数的含义:

--with-tcl=/tools/lib

这个选项可以保证 configure 配置脚本会从临时工具目录里找 Tcl 的安装位置, 而不是在宿主机系统中寻找。

--with-tclinclude=/tools/include

这个选项会给 Expect 显式地指定 Tcl 内部头文件的位置。通过这个选项可以避免 configure 脚本不能自动发现 Tcl 头文件位置的情况。

编译软件包:

make

现在编译已经完成。之前说过,不要求为本章中所构建的临时工具运行测试套件。 不过你仍然要测试 Expect 的话可以用下面的命令:

make test

请注意 Expect 测试套件已知在某些宿主机特定情况下有过失败的情况, 我们还没有完全把握。不过,在这里测试套件运行失败并不奇怪,也不认为是关键问题。

安装软件包:

make SCRIPTS="" install

make参数的含义:

SCRIPTS=""

这个变量可以避免安装额外的 Expect 脚本,没有必要。

5.12.2. Expect 软件包内容

安装的程序: expect
安装的库: libexpect-5.45.so

简要介绍

expect

基于脚本和其他交互式程序通信。

libexpect-5.45.so

包含一些函数允许 Expect 用作 Tcl 扩展或直接用于 C/C++(不用 Tcl)。