5.12. Expect-5.43.0

Expect 软件包包含一个通过执行脚本对话框与其它交互式程序通信的工具。

预计编译时间: 0.1 SBU
所需磁盘空间: 4.1 MB

5.12.1. 安装 Expect

先修正一个可能导致 GCC 测试程序假失败的 bug :

patch -Np1 -i ../expect-5.43.0-spawn-1.patch

接着,再修复一个bug ,这是最近Tcl改变造成的:

patch -Np1 -i ../expect-5.43.0-tcl_8.5.5_fix-1.patch

然后,强制 Expect的配置脚本使用 /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-x=no

配置选项的含义:

--with-tcl=/tools/lib

这个选项确保配置脚本找到的是安装在临时工具目录下的 Tcl ,而不是宿主系统里的。

--with-tclinclude=/tools/include

这个选项告诉 Expect 到哪里寻找 Tcl 的内部头文件。使用这个选项可以避免 configure 脚本因为找不到 Tcl 的源代码目录而导致的失败。

--with-x=no

这个选项告诉 configure 脚本不要搜索 Tk(Tcl的图形界面组件)或者 X Window 系统的库,这两者都可能位于宿主系统上,而不在临时环境中。

编译这个软件包:

make

现在编译完成了。和前面讨论的一样,在本章,因为是临时工具,我们不强制您运行测试组件。 如 果一定要运行Expect 测试系统, 可执行下面的命令:

make test

请注意, 已知 Expect 的测试程序会在某些不在我们控制范围内的宿主系统下出现测试失败。 因此, 如果您运行这里的测试程序失败了也没关系,因为这并不关键。

安装这个软件包:

make SCRIPTS="" install

make 参数的含义:

SCRIPTS=""

这个选项防止安装 Expect 所补充的一些并不需要的脚本。

5.12.2. Expect 的内容

安装的程序: expect
安装的库: libexpect-5.43.a

简要描述

expect

按照一个脚本与其它交互式程序通信

libexpect-5.43.a

包含的函数可以让 Expect 作为 Tcl 的扩展来使用,或者直接被 C 或 C++ 使用(不需要 Tcl)